29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from art_export import ArtExporter
|
|
|
|
class TextExporter(ArtExporter):
|
|
format_name = 'Plain text'
|
|
format_description = """
|
|
ASCII art in ordinary text format.
|
|
Assumes single frame, single layer document.
|
|
Current character set will be used; make sure it supports
|
|
any extended characters you want translated.
|
|
"""
|
|
file_extension = 'txt'
|
|
def run_export(self, out_filename, options):
|
|
# utf-8 is safest encoding to use here, but non-default on Windows
|
|
outfile = open(out_filename, 'w', encoding='utf-8')
|
|
for y in range(self.art.height):
|
|
for x in range(self.art.width):
|
|
char = self.art.get_char_index_at(0, 0, x, y)
|
|
found_char = False
|
|
for k,v in self.art.charset.char_mapping.items():
|
|
if v == char:
|
|
found_char = True
|
|
outfile.write(k)
|
|
break
|
|
# if char not found, just write a blank space
|
|
if not found_char:
|
|
outfile.write(' ')
|
|
outfile.write('\n')
|
|
outfile.close()
|
|
return True
|