31 lines
1.1 KiB
Python
31 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
|