diff options
author | Martin Vilcans <martin@librador.com> | 2015-12-01 23:47:10 +0100 |
---|---|---|
committer | Martin Vilcans <martin@librador.com> | 2015-12-01 23:47:10 +0100 |
commit | 99abd9ad27b1c80909bb37e7cb21dedfc5046f40 (patch) | |
tree | 824905f4588f58a6131342ba9cc9ead9c56d7a51 | |
parent | 73e442358e7f980adc98ccfe71c3d29c300e84be (diff) | |
download | screenplain-99abd9ad27b1c80909bb37e7cb21dedfc5046f40.tar.gz |
Support writing PDF to stdout
-rw-r--r-- | screenplain/main.py | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/screenplain/main.py b/screenplain/main.py index 4469489..770427c 100644 --- a/screenplain/main.py +++ b/screenplain/main.py @@ -98,32 +98,40 @@ def main(args): screenplay = fountain.parse(input) if format == 'pdf': - from screenplain.export.pdf import to_pdf - if not output_file: - sys.stderr.write("Can't write PDF to standard output") - sys.exit(2) - to_pdf(screenplay, output_file, is_strong=options.strong) + output_encoding = None else: - if output_file: - output = codecs.open(output_file, 'w', 'utf-8') + output_encoding = 'utf-8' + + if output_file: + if output_encoding: + output = codecs.open(output_file, 'w', output_encoding) + else: + output = open(output_file, 'wb') + else: + if output_encoding: + output = codecs.getwriter(output_encoding)(sys.stdout) else: - output = codecs.getwriter('utf-8')(sys.stdout) - try: - if format == 'text': - from screenplain.export.text import to_text - to_text(screenplay, output) - elif format == 'fdx': - from screenplain.export.fdx import to_fdx - to_fdx(screenplay, output) - elif format == 'html': - from screenplain.export.html import convert - convert( - screenplay, output, - css_file=options.css, bare=options.bare - ) - finally: - if output_file: - output.close() + output = sys.stdout + + try: + if format == 'text': + from screenplain.export.text import to_text + to_text(screenplay, output) + elif format == 'fdx': + from screenplain.export.fdx import to_fdx + to_fdx(screenplay, output) + elif format == 'html': + from screenplain.export.html import convert + convert( + screenplay, output, + css_file=options.css, bare=options.bare + ) + elif format == 'pdf': + from screenplain.export.pdf import to_pdf + to_pdf(screenplay, output, is_strong=options.strong) + finally: + if output_file: + output.close() if __name__ == '__main__': main(sys.argv[1:]) |