aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Vilcans <martin@librador.com>2015-12-01 23:47:10 +0100
committerMartin Vilcans <martin@librador.com>2015-12-01 23:47:10 +0100
commit99abd9ad27b1c80909bb37e7cb21dedfc5046f40 (patch)
tree824905f4588f58a6131342ba9cc9ead9c56d7a51
parent73e442358e7f980adc98ccfe71c3d29c300e84be (diff)
downloadscreenplain-99abd9ad27b1c80909bb37e7cb21dedfc5046f40.tar.gz
Support writing PDF to stdout
-rw-r--r--screenplain/main.py56
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:])