|
|
@ -275,13 +275,13 @@ class FCWFile:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@click.group()
|
|
|
|
@click.group()
|
|
|
|
def __cli():
|
|
|
|
def _cli():
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@__cli.command(name = 'topdf')
|
|
|
|
@_cli.command(name = 'topdf')
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('output', required = False, type = click.Path(exists = False, writable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('output', required = False, type = click.Path(exists = False, writable = True, file_okay = True, dir_okay = False))
|
|
|
|
def __fcw2pdf(input, output):
|
|
|
|
def _fcw2pdf(input, output):
|
|
|
|
|
|
|
|
|
|
|
|
input = pathlib.Path(input)
|
|
|
|
input = pathlib.Path(input)
|
|
|
|
if output is None:
|
|
|
|
if output is None:
|
|
|
@ -294,11 +294,11 @@ def __fcw2pdf(input, output):
|
|
|
|
with FCWFile(input) as fcw:
|
|
|
|
with FCWFile(input) as fcw:
|
|
|
|
fcw.export_pdf(output, interactive = True)
|
|
|
|
fcw.export_pdf(output, interactive = True)
|
|
|
|
|
|
|
|
|
|
|
|
@__cli.command(name = 'merge')
|
|
|
|
@_cli.command(name = 'merge')
|
|
|
|
@click.argument('input1', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('input1', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('input2', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('input2', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('output', type = click.Path(exists = False, writable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('output', type = click.Path(exists = False, writable = True, file_okay = True, dir_okay = False))
|
|
|
|
def __fcwmerge(input1, input2, output):
|
|
|
|
def _fcwmerge(input1, input2, output):
|
|
|
|
click.echo(":: Merging {} and {} into {}".format(input1, input2, output))
|
|
|
|
click.echo(":: Merging {} and {} into {}".format(input1, input2, output))
|
|
|
|
|
|
|
|
|
|
|
|
with FCWFile(input1) as fcw1, FCWFile(input2) as fcw2:
|
|
|
|
with FCWFile(input1) as fcw1, FCWFile(input2) as fcw2:
|
|
|
@ -318,9 +318,9 @@ def __fcwmerge(input1, input2, output):
|
|
|
|
# fcw.append_svg(svgfile)
|
|
|
|
# fcw.append_svg(svgfile)
|
|
|
|
# fcw.save(output)
|
|
|
|
# fcw.save(output)
|
|
|
|
|
|
|
|
|
|
|
|
@__cli.command(name = 'info')
|
|
|
|
@_cli.command(name = 'info')
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
def __fcwinfo(input):
|
|
|
|
def _fcwinfo(input):
|
|
|
|
with FCWFile(input) as fcw:
|
|
|
|
with FCWFile(input) as fcw:
|
|
|
|
click.echo("Manifest version: {}".format(fcw.manifest_version))
|
|
|
|
click.echo("Manifest version: {}".format(fcw.manifest_version))
|
|
|
|
click.echo("Creation datetime: {}".format(fcw.creationdatetime))
|
|
|
|
click.echo("Creation datetime: {}".format(fcw.creationdatetime))
|
|
|
@ -332,11 +332,11 @@ def __fcwinfo(input):
|
|
|
|
for resource in FCWResource:
|
|
|
|
for resource in FCWResource:
|
|
|
|
click.echo("#{}: {}".format(resource.value, len(list(fcw.get_resources(resource)))))
|
|
|
|
click.echo("#{}: {}".format(resource.value, len(list(fcw.get_resources(resource)))))
|
|
|
|
|
|
|
|
|
|
|
|
@__cli.command(name = 'set-startpage')
|
|
|
|
@_cli.command(name = 'set-startpage')
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('index', type = click.INT)
|
|
|
|
@click.argument('index', type = click.INT)
|
|
|
|
@click.argument('output', required = False, type = click.Path(exists = False, writable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('output', required = False, type = click.Path(exists = False, writable = True, file_okay = True, dir_okay = False))
|
|
|
|
def __fcwsetstartpage(input, index, output):
|
|
|
|
def _fcwsetstartpage(input, index, output):
|
|
|
|
print("WARNING: this function has never been tested!")
|
|
|
|
print("WARNING: this function has never been tested!")
|
|
|
|
if output is None:
|
|
|
|
if output is None:
|
|
|
|
output = input
|
|
|
|
output = input
|
|
|
@ -348,37 +348,19 @@ def __fcwsetstartpage(input, index, output):
|
|
|
|
|
|
|
|
|
|
|
|
print("New startpage index is {} (internal page name is {})".format(index, newstartpage))
|
|
|
|
print("New startpage index is {} (internal page name is {})".format(index, newstartpage))
|
|
|
|
|
|
|
|
|
|
|
|
@__cli.command(name = 'print-manifest')
|
|
|
|
@_cli.command(name = 'print-manifest')
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
@click.argument('input', type = click.Path(exists = True, readable = True, file_okay = True, dir_okay = False))
|
|
|
|
def __fcwmanifest(input):
|
|
|
|
def _fcwmanifest(input):
|
|
|
|
with FCWFile(input) as fcw:
|
|
|
|
with FCWFile(input) as fcw:
|
|
|
|
stream = io.BytesIO()
|
|
|
|
stream = io.BytesIO()
|
|
|
|
fcw.manifest.write(stream, encoding = 'utf-8', xml_declaration = True, standalone = True)
|
|
|
|
fcw.manifest.write(stream, encoding = 'utf-8', xml_declaration = True, standalone = True)
|
|
|
|
stream.seek(0)
|
|
|
|
stream.seek(0)
|
|
|
|
print(stream.read().decode('utf-8'))
|
|
|
|
print(stream.read().decode('utf-8'))
|
|
|
|
|
|
|
|
|
|
|
|
@__cli.command(name = 'license')
|
|
|
|
@_cli.command(name = 'license')
|
|
|
|
def __license():
|
|
|
|
def _license():
|
|
|
|
progname = pathlib.Path(sys.argv[0]).name
|
|
|
|
progname = pathlib.Path(sys.argv[0]).name
|
|
|
|
click.echo("{} Copyright (C) 2019 Christopher Spinrath <christopher.spinrath@tu-dortmund.de>".format(progname))
|
|
|
|
click.echo("{} Copyright (C) 2019 Christopher Spinrath <christopher.spinrath@tu-dortmund.de>".format(progname))
|
|
|
|
click.echo("This program comes with ABSOLUTELY NO WARRANTY.")
|
|
|
|
click.echo("This program comes with ABSOLUTELY NO WARRANTY.")
|
|
|
|
click.echo("This is free software, and you are welcome to redistribute it")
|
|
|
|
click.echo("This is free software, and you are welcome to redistribute it")
|
|
|
|
click.echo("under certain conditions; see the LICENSE file for details.")
|
|
|
|
click.echo("under certain conditions; see the LICENSE file for details.")
|
|
|
|
|
|
|
|
|
|
|
|
def __main():
|
|
|
|
|
|
|
|
progmap = {
|
|
|
|
|
|
|
|
'fcw2pdf': __fcw2pdf,
|
|
|
|
|
|
|
|
'fcwmerge': __fcwmerge,
|
|
|
|
|
|
|
|
'fcwinfo': __fcwinfo,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
progname = pathlib.Path(sys.argv[0]).name
|
|
|
|
|
|
|
|
if progname in progmap:
|
|
|
|
|
|
|
|
prog = progmap[progname]
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
prog = __cli()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
prog()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
|
|
__main()
|
|
|
|
|
|
|
|