-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpdf_merger_ui.pyw
60 lines (46 loc) · 1.98 KB
/
pdf_merger_ui.pyw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import os
import json
from argparse import ArgumentParser, Namespace as APNamespace
import PySimpleGUI as sg
import pdf_merger as pm
def load_args() -> APNamespace:
parser = ArgumentParser(description=f"PDF Merger v{pm.VERSION}")
parser.add_argument("-l", "--lang", dest="lang", help="Language", metavar="[lang]",
default="en")
return parser.parse_args()
if __name__ == "__main__":
lang = {}
args = load_args()
if not os.path.isfile(f"./lang/{args.lang}.json"):
args.lang = "en"
with open(f"./lang/{args.lang}.json", encoding="utf8") as f:
lang = json.loads(f.read())
sg.theme("SystemDefaultForReal")
layout = [
[sg.Text(lang["inputFiles"])],
[sg.Input(), sg.FilesBrowse(button_text=lang["browse"],
file_types=((lang["PDFFiles"], "*.pdf"), (lang["ALLFiles"], "*.*")))],
[sg.Checkbox(lang["importBookmarks"], default=True),
sg.Checkbox(lang["fileNameBookmarks"], default=True)],
[sg.Text(lang["outputFile"])],
[sg.Input(), sg.FileSaveAs(button_text=lang["saveAs"],
file_types=((lang["PDFFiles"], "*.pdf"), (lang["ALLFiles"], "*.*")),
default_extension="pdf")],
[sg.OK(lang["create"]), sg.Quit(lang["quit"])]
]
window = sg.Window(lang["name"], layout, icon="./icon.ico")
while True:
val = window.read()
if val is None:
continue
event, values = val
if event == sg.WIN_CLOSED or event == lang["quit"]:
break
if event == lang["create"] and values[lang["saveAs"]] != "" and values[lang["browse"]] != "":
tmp_args = pm.Args(sorted(values[lang["browse"]].split(';')),
output_file_name=values[lang["saveAs"]],
file_name_bookmarks=values[2],
import_bookmarks=values[1],
quiet=True)
pm.create(tmp_args)
window.close()