Skip to content

Commit 75c7a6a

Browse files
authored
Extend with argparse features
1 parent 5bf158c commit 75c7a6a

File tree

1 file changed

+40
-27
lines changed

1 file changed

+40
-27
lines changed

examples/embedded-import.py

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,40 @@
1-
from __future__ import print_function
2-
import sys
3-
import fitz
4-
#------------------------------------------------------------------------------
5-
# Example program
6-
# License: GNU GPL V3
7-
# Imports a new file into an existing PDF
8-
# Command line:
9-
# python embedded-import.py out.pdf input.file
10-
#------------------------------------------------------------------------------
11-
pdffn = sys.argv[1]
12-
impfn = sys.argv[2]
13-
14-
doc = fitz.open(pdffn)
15-
16-
# to be on the safe side, always open as binary
17-
content = open(impfn, "rb").read() # read all file content in
18-
19-
# now some description of what is going to imported
20-
name = "import1" # mandatory: unique name inside the PDF
21-
filename = impfn # optional filename, need not be the original
22-
desc = "something documentary" # optional other comments
23-
24-
# import the file into the PDF
25-
doc.embeddedFileAdd(content, name, filename, desc)
26-
# save PDF (either incremental or to new PDF file)
27-
doc.saveIncr()
1+
from __future__ import print_function
2+
import fitz
3+
import argparse
4+
5+
#------------------------------------------------------------------------------
6+
# Example program
7+
# License: GNU GPL V3
8+
# Imports a new file into an existing PDF
9+
# Command line:
10+
# python embedded-import.py some.pdf embed.file
11+
#------------------------------------------------------------------------------
12+
13+
parser = argparse.ArgumentParser(description="Enter PDF, file to embed, and optional name, description and output pdf.")
14+
parser.add_argument('pdf', help='PDF filename')
15+
parser.add_argument('file', help='name of embedded file')
16+
parser.add_argument('-n', "--name", help='name for embedded file entry (default: file)')
17+
parser.add_argument('-d', "--desc", help='description (default: file)')
18+
parser.add_argument('-o', "--output", help = 'output PDF (default: modify pdf)')
19+
args = parser.parse_args()
20+
delim = args.desc # requested CSV delimiter character
21+
pdffn = args.pdf
22+
impfn = args.file
23+
24+
doc = fitz.open(pdffn)
25+
if not args.name:
26+
name = impfn
27+
desc = args.desc
28+
if not args.desc:
29+
desc = impfn
30+
31+
# to be on the safe side, always open as binary
32+
content = open(impfn, "rb").read() # read all file content in
33+
34+
# import the file into the PDF
35+
doc.embeddedFileAdd(content, name, impfn, desc)
36+
# save PDF (either incremental or to new PDF file)
37+
if not args.output:
38+
doc.saveIncr()
39+
else:
40+
doc.save(args.output, garbage = 4, deflate = True)

0 commit comments

Comments
 (0)