2022-01-11 20:52:58 +00:00
|
|
|
# See "HOW TO ADD A COMMAND-LINE ARGUMENT" in README-maintainer.
|
2022-02-01 12:18:23 +00:00
|
|
|
|
|
|
|
# REMEMBER: if you add an optional_choices or optional_parameter, you
|
|
|
|
# have to explicitly remember to implement the overloaded config
|
|
|
|
# method that takes no arguments. Since no generated code will call it
|
|
|
|
# automatically, there is no automated reminder to do this. If you
|
|
|
|
# forget, it will be a link error if someone tries to call it.
|
|
|
|
|
2022-01-06 16:33:52 +00:00
|
|
|
choices:
|
|
|
|
yn:
|
|
|
|
- "y"
|
|
|
|
- "n"
|
|
|
|
password_mode:
|
|
|
|
- bytes
|
|
|
|
- hex-bytes
|
|
|
|
- unicode
|
|
|
|
- auto
|
|
|
|
stream_data:
|
|
|
|
- compress
|
|
|
|
- preserve
|
|
|
|
- uncompress
|
|
|
|
decode_level:
|
|
|
|
- none
|
|
|
|
- generalized
|
|
|
|
- specialized
|
|
|
|
- all
|
|
|
|
object_streams:
|
|
|
|
- disable
|
|
|
|
- preserve
|
|
|
|
- generate
|
|
|
|
remove_unref:
|
|
|
|
- auto
|
|
|
|
- "yes"
|
|
|
|
- "no"
|
|
|
|
flatten:
|
|
|
|
- all
|
|
|
|
- print
|
|
|
|
- screen
|
|
|
|
json_key:
|
2022-01-07 22:15:15 +00:00
|
|
|
# The list of selectable top-level keys id duplicated in the
|
|
|
|
# following places: job.yml, QPDFJob::json_schema, and
|
|
|
|
# QPDFJob::doJSON.
|
2022-01-06 16:33:52 +00:00
|
|
|
- acroform
|
|
|
|
- attachments
|
|
|
|
- encrypt
|
2022-05-07 17:33:45 +00:00
|
|
|
- objectinfo # only v1
|
2022-07-31 00:53:30 +00:00
|
|
|
- objects # only v1
|
2022-01-06 16:33:52 +00:00
|
|
|
- outlines
|
|
|
|
- pagelabels
|
|
|
|
- pages
|
2022-07-31 00:53:30 +00:00
|
|
|
- qpdf # only v2
|
2022-05-18 22:22:57 +00:00
|
|
|
json_output:
|
|
|
|
- 2
|
|
|
|
- latest
|
2022-05-07 17:33:45 +00:00
|
|
|
json_stream_data:
|
|
|
|
- none
|
|
|
|
- inline
|
|
|
|
- file
|
2022-05-18 22:22:57 +00:00
|
|
|
json_version:
|
|
|
|
- 1
|
|
|
|
- 2
|
|
|
|
- latest
|
2023-12-22 21:27:56 +00:00
|
|
|
enc_bits:
|
|
|
|
- 40
|
|
|
|
- 128
|
|
|
|
- 256
|
2022-01-06 16:33:52 +00:00
|
|
|
print128:
|
|
|
|
- full
|
|
|
|
- low
|
|
|
|
- none
|
|
|
|
modify128:
|
|
|
|
- all
|
|
|
|
- annotate
|
|
|
|
- form
|
|
|
|
- assembly
|
|
|
|
- none
|
|
|
|
options:
|
|
|
|
- table: help
|
|
|
|
bare:
|
|
|
|
- version
|
|
|
|
- copyright
|
|
|
|
- show-crypto
|
2022-01-22 21:29:13 +00:00
|
|
|
- job-json-help
|
2022-07-31 12:03:18 +00:00
|
|
|
optional_choices:
|
|
|
|
json-help: json_version
|
2022-01-06 16:33:52 +00:00
|
|
|
- table: main
|
2022-01-25 16:07:53 +00:00
|
|
|
config: c_main
|
2022-01-26 00:01:10 +00:00
|
|
|
manual:
|
|
|
|
- add-attachment
|
|
|
|
- copy-attachments-from
|
|
|
|
- encrypt
|
|
|
|
- overlay
|
|
|
|
- pages
|
|
|
|
- underlay
|
2022-01-26 18:39:22 +00:00
|
|
|
- empty
|
|
|
|
- replace-input
|
2022-01-06 16:33:52 +00:00
|
|
|
positional: true
|
|
|
|
bare:
|
|
|
|
- add-attachment
|
|
|
|
- allow-weak-crypto
|
|
|
|
- check
|
|
|
|
- check-linearization
|
|
|
|
- coalesce-contents
|
|
|
|
- copy-attachments-from
|
|
|
|
- decrypt
|
|
|
|
- deterministic-id
|
|
|
|
- empty
|
|
|
|
- encrypt
|
|
|
|
- externalize-inline-images
|
|
|
|
- filtered-stream-data
|
|
|
|
- flatten-rotation
|
|
|
|
- generate-appearances
|
|
|
|
- ignore-xref-streams
|
|
|
|
- is-encrypted
|
2022-05-18 22:22:57 +00:00
|
|
|
- json-input
|
2022-01-06 16:33:52 +00:00
|
|
|
- keep-inline-images
|
|
|
|
- linearize
|
|
|
|
- list-attachments
|
|
|
|
- newline-before-endstream
|
|
|
|
- no-original-object-ids
|
|
|
|
- no-warn
|
|
|
|
- optimize-images
|
|
|
|
- overlay
|
|
|
|
- pages
|
|
|
|
- password-is-hex-key
|
|
|
|
- preserve-unreferenced
|
|
|
|
- preserve-unreferenced-resources
|
|
|
|
- progress
|
|
|
|
- qdf
|
|
|
|
- raw-stream-data
|
|
|
|
- recompress-flate
|
|
|
|
- remove-page-labels
|
|
|
|
- replace-input
|
2022-09-01 20:40:06 +00:00
|
|
|
- report-memory-usage
|
2022-01-06 16:33:52 +00:00
|
|
|
- requires-password
|
2023-01-28 18:24:45 +00:00
|
|
|
- remove-restrictions
|
2022-01-06 16:33:52 +00:00
|
|
|
- show-encryption
|
|
|
|
- show-encryption-key
|
|
|
|
- show-linearization
|
|
|
|
- show-npages
|
|
|
|
- show-pages
|
|
|
|
- show-xref
|
|
|
|
- static-aes-iv
|
|
|
|
- static-id
|
|
|
|
- suppress-password-recovery
|
|
|
|
- suppress-recovery
|
2022-05-06 21:29:22 +00:00
|
|
|
- test-json-schema
|
2022-01-06 16:33:52 +00:00
|
|
|
- underlay
|
|
|
|
- verbose
|
|
|
|
- warning-exit-0
|
|
|
|
- with-images
|
|
|
|
optional_parameter:
|
|
|
|
- collate
|
|
|
|
- split-pages
|
|
|
|
required_parameter:
|
|
|
|
compression-level: level
|
|
|
|
copy-encryption: file
|
|
|
|
encryption-file-password: password
|
|
|
|
force-version: version
|
|
|
|
ii-min-bytes: minimum
|
2022-01-22 21:29:13 +00:00
|
|
|
job-json-file: file
|
2022-01-06 16:33:52 +00:00
|
|
|
json-object: trailer
|
|
|
|
keep-files-open-threshold: count
|
|
|
|
linearize-pass1: filename
|
|
|
|
min-version: version
|
|
|
|
oi-min-area: minimum
|
|
|
|
oi-min-height: minimum
|
|
|
|
oi-min-width: minimum
|
|
|
|
password: password
|
|
|
|
password-file: password
|
|
|
|
remove-attachment: attachment
|
|
|
|
rotate: "[+|-]angle"
|
|
|
|
show-attachment: attachment
|
|
|
|
show-object: trailer
|
2022-05-07 17:33:45 +00:00
|
|
|
json-stream-prefix: stream-file-prefix
|
2022-05-08 17:42:16 +00:00
|
|
|
update-from-json: qpdf-json file
|
2022-01-06 16:33:52 +00:00
|
|
|
required_choices:
|
|
|
|
compress-streams: yn
|
|
|
|
decode-level: decode_level
|
|
|
|
flatten-annotations: flatten
|
|
|
|
json-key: json_key
|
2022-05-18 22:22:57 +00:00
|
|
|
json-stream-data: json_stream_data
|
2022-01-06 16:33:52 +00:00
|
|
|
keep-files-open: yn
|
|
|
|
normalize-content: yn
|
|
|
|
object-streams: object_streams
|
|
|
|
password-mode: password_mode
|
|
|
|
remove-unreferenced-resources: remove_unref
|
|
|
|
stream-data: stream_data
|
2022-01-31 19:20:06 +00:00
|
|
|
optional_choices:
|
|
|
|
json: json_version
|
2022-05-20 11:25:54 +00:00
|
|
|
json-output: json_output
|
2022-01-06 16:33:52 +00:00
|
|
|
- table: pages
|
2022-01-26 00:01:10 +00:00
|
|
|
config: c_pages
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: Pages
|
2022-01-06 16:33:52 +00:00
|
|
|
positional: true
|
2022-01-26 00:01:10 +00:00
|
|
|
manual:
|
|
|
|
- password
|
2022-01-06 16:33:52 +00:00
|
|
|
required_parameter:
|
2022-01-06 18:23:15 +00:00
|
|
|
password: password
|
2022-01-06 16:33:52 +00:00
|
|
|
- table: encryption
|
2023-12-22 21:27:56 +00:00
|
|
|
config: c_main
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: Enc
|
2022-01-06 16:33:52 +00:00
|
|
|
positional: true
|
2023-12-22 21:27:56 +00:00
|
|
|
manual:
|
|
|
|
- user-password
|
|
|
|
- owner-password
|
|
|
|
- bits
|
|
|
|
required_parameter:
|
|
|
|
user-password: user_password
|
|
|
|
owner-password: owner_password
|
|
|
|
required_choices:
|
|
|
|
bits: enc_bits
|
2022-01-06 16:33:52 +00:00
|
|
|
- table: 40-bit encryption
|
2022-01-26 18:17:57 +00:00
|
|
|
config: c_enc
|
2022-01-26 22:02:30 +00:00
|
|
|
config_prefix: Enc
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: Enc40
|
2022-01-06 16:33:52 +00:00
|
|
|
required_choices:
|
|
|
|
extract: yn
|
|
|
|
annotate: yn
|
|
|
|
print: yn
|
|
|
|
modify: yn
|
|
|
|
- table: 128-bit encryption
|
2022-01-26 18:17:57 +00:00
|
|
|
config: c_enc
|
2022-01-26 22:02:30 +00:00
|
|
|
config_prefix: Enc
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: Enc128
|
2022-01-06 16:33:52 +00:00
|
|
|
bare:
|
|
|
|
- cleartext-metadata
|
|
|
|
- force-V4
|
|
|
|
required_choices:
|
|
|
|
accessibility: yn
|
|
|
|
extract: yn
|
2022-01-06 19:26:41 +00:00
|
|
|
print: print128
|
2022-01-06 16:33:52 +00:00
|
|
|
assemble: yn
|
|
|
|
annotate: yn
|
|
|
|
form: yn
|
|
|
|
modify-other: yn
|
2022-01-06 19:26:41 +00:00
|
|
|
modify: modify128
|
2022-01-06 16:33:52 +00:00
|
|
|
use-aes: yn
|
|
|
|
- table: 256-bit encryption
|
2022-01-26 18:17:57 +00:00
|
|
|
config: c_enc
|
2022-01-26 22:02:30 +00:00
|
|
|
config_prefix: Enc
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: Enc256
|
2022-01-06 16:33:52 +00:00
|
|
|
bare:
|
2022-01-26 18:17:57 +00:00
|
|
|
- cleartext-metadata
|
2022-01-06 16:33:52 +00:00
|
|
|
- force-R5
|
|
|
|
- allow-insecure
|
2022-01-26 18:17:57 +00:00
|
|
|
required_choices:
|
|
|
|
accessibility: yn
|
|
|
|
extract: yn
|
|
|
|
print: print128
|
|
|
|
assemble: yn
|
|
|
|
annotate: yn
|
|
|
|
form: yn
|
|
|
|
modify-other: yn
|
|
|
|
modify: modify128
|
2022-01-06 16:33:52 +00:00
|
|
|
- table: underlay/overlay
|
2022-01-26 14:38:34 +00:00
|
|
|
config: c_uo
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: UO
|
2022-01-06 16:33:52 +00:00
|
|
|
positional: true
|
|
|
|
required_parameter:
|
|
|
|
to: page-range
|
|
|
|
from: page-range
|
|
|
|
repeat: page-range
|
|
|
|
password: password
|
|
|
|
- table: attachment
|
2022-01-25 21:37:17 +00:00
|
|
|
config: c_att
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: Att
|
2022-01-06 16:33:52 +00:00
|
|
|
positional: true
|
|
|
|
bare:
|
|
|
|
- replace
|
|
|
|
required_parameter:
|
|
|
|
key: attachment-key
|
|
|
|
filename: filename
|
|
|
|
creationdate: creation-date
|
|
|
|
moddate: modification-date
|
|
|
|
mimetype: mime/type
|
|
|
|
description: description
|
|
|
|
- table: copy attachment
|
2022-01-25 16:07:53 +00:00
|
|
|
config: c_copy_att
|
2022-01-06 18:23:15 +00:00
|
|
|
prefix: CopyAtt
|
2022-01-06 16:33:52 +00:00
|
|
|
positional: true
|
|
|
|
required_parameter:
|
|
|
|
prefix: prefix
|
|
|
|
password: password
|
2022-01-22 16:25:55 +00:00
|
|
|
json:
|
|
|
|
# The structure of this section defines what the json input to
|
2022-01-31 18:07:19 +00:00
|
|
|
# QPDFJob looks like. If a key starts with underscore, it does not
|
|
|
|
# map to a command-line argument. If the value is a string, that is
|
|
|
|
# the help information. Otherwise, if the value is null, it has to
|
|
|
|
# match a command-line option, and its properties and help come from
|
|
|
|
# other information known by generate_auto_job. This information is
|
|
|
|
# used to construct a "schema" (as in JSON.hh) for the json input to
|
2023-12-22 21:27:56 +00:00
|
|
|
# QPDFJob. The leading underscore is removed. If a key starts with a
|
|
|
|
# double underscore, it corresponds to a command-line argument that
|
|
|
|
# does not have a counterpart in the JSON. This signals that the
|
|
|
|
# command-line argument was not forgotten, but it is otherwise
|
|
|
|
# ignored by the JSON. *NOTE*: all keys are converted to camelCase
|
|
|
|
# for the schema and must appear that way in the user-supplied json.
|
|
|
|
# This makes it more convenient to populate JSON objects in some
|
|
|
|
# languages.
|
2022-01-31 23:04:14 +00:00
|
|
|
|
|
|
|
# input
|
|
|
|
_inputFile: "input filename"
|
|
|
|
main.password:
|
|
|
|
password-file:
|
|
|
|
empty:
|
2022-05-18 22:22:57 +00:00
|
|
|
json-input:
|
2022-01-31 23:04:14 +00:00
|
|
|
# output
|
|
|
|
_outputFile: "output filename"
|
|
|
|
replace-input:
|
|
|
|
# output options
|
|
|
|
qdf:
|
|
|
|
preserve-unreferenced:
|
|
|
|
newline-before-endstream:
|
|
|
|
normalize-content:
|
|
|
|
stream-data:
|
|
|
|
compress-streams:
|
|
|
|
recompress-flate:
|
|
|
|
decode-level:
|
|
|
|
decrypt:
|
|
|
|
deterministic-id:
|
|
|
|
static-aes-iv:
|
|
|
|
static-id:
|
|
|
|
no-original-object-ids:
|
|
|
|
copy-encryption:
|
|
|
|
encryption-file-password:
|
|
|
|
linearize:
|
|
|
|
linearize-pass1:
|
|
|
|
object-streams:
|
|
|
|
min-version:
|
|
|
|
force-version:
|
|
|
|
progress:
|
|
|
|
split-pages:
|
2022-05-18 22:22:57 +00:00
|
|
|
json-output:
|
2023-01-28 18:24:45 +00:00
|
|
|
remove-restrictions:
|
2022-01-31 23:04:14 +00:00
|
|
|
encrypt:
|
2023-12-22 21:27:56 +00:00
|
|
|
user-password:
|
|
|
|
owner-password:
|
|
|
|
__bits:
|
2022-01-31 23:04:14 +00:00
|
|
|
_40bit:
|
|
|
|
Enc40.annotate:
|
|
|
|
Enc40.extract:
|
|
|
|
Enc40.modify:
|
|
|
|
Enc40.print:
|
|
|
|
_128bit:
|
|
|
|
Enc128.accessibility:
|
|
|
|
Enc128.annotate:
|
|
|
|
Enc128.assemble:
|
|
|
|
Enc128.cleartext-metadata:
|
|
|
|
Enc128.extract:
|
|
|
|
Enc128.form:
|
|
|
|
Enc128.modify-other:
|
|
|
|
Enc128.modify:
|
|
|
|
Enc128.print:
|
|
|
|
force-V4:
|
|
|
|
use-aes:
|
|
|
|
_256bit:
|
|
|
|
Enc256.accessibility:
|
|
|
|
Enc256.annotate:
|
|
|
|
Enc256.assemble:
|
|
|
|
Enc256.cleartext-metadata:
|
|
|
|
Enc256.extract:
|
|
|
|
Enc256.form:
|
|
|
|
Enc256.modify-other:
|
|
|
|
Enc256.modify:
|
|
|
|
Enc256.print:
|
|
|
|
allow-insecure:
|
|
|
|
force-R5:
|
|
|
|
# inspect
|
|
|
|
check:
|
|
|
|
check-linearization:
|
|
|
|
filtered-stream-data:
|
|
|
|
raw-stream-data:
|
|
|
|
show-encryption:
|
|
|
|
show-encryption-key:
|
|
|
|
show-linearization:
|
|
|
|
show-npages:
|
|
|
|
show-object:
|
|
|
|
show-pages:
|
|
|
|
show-xref:
|
|
|
|
with-images:
|
|
|
|
list-attachments:
|
|
|
|
show-attachment:
|
|
|
|
json:
|
|
|
|
json-key:
|
|
|
|
- null
|
|
|
|
json-object:
|
|
|
|
- null
|
2022-05-07 17:33:45 +00:00
|
|
|
json-stream-data:
|
|
|
|
json-stream-prefix:
|
2022-01-31 23:04:14 +00:00
|
|
|
# other options
|
2022-05-08 17:42:16 +00:00
|
|
|
update-from-json:
|
2022-01-31 23:04:14 +00:00
|
|
|
allow-weak-crypto:
|
|
|
|
keep-files-open:
|
|
|
|
keep-files-open-threshold:
|
|
|
|
no-warn:
|
|
|
|
verbose:
|
2022-05-06 21:29:22 +00:00
|
|
|
test-json-schema:
|
2022-01-31 23:04:14 +00:00
|
|
|
ignore-xref-streams:
|
|
|
|
password-is-hex-key:
|
|
|
|
password-mode:
|
|
|
|
suppress-password-recovery:
|
|
|
|
suppress-recovery:
|
|
|
|
coalesce-contents:
|
|
|
|
compression-level:
|
|
|
|
externalize-inline-images:
|
|
|
|
ii-min-bytes:
|
|
|
|
remove-unreferenced-resources:
|
|
|
|
add-attachment:
|
2022-01-31 23:24:44 +00:00
|
|
|
- _file: "file to attach"
|
2022-01-31 23:04:14 +00:00
|
|
|
creationdate:
|
|
|
|
description:
|
|
|
|
filename:
|
|
|
|
key:
|
|
|
|
mimetype:
|
|
|
|
moddate:
|
|
|
|
replace:
|
|
|
|
remove-attachment:
|
2022-04-24 16:47:24 +00:00
|
|
|
- null
|
2022-01-31 23:04:14 +00:00
|
|
|
copy-attachments-from:
|
2022-01-31 23:24:44 +00:00
|
|
|
- _file: "file to copy attachments from"
|
2022-01-31 23:04:14 +00:00
|
|
|
CopyAtt.password:
|
|
|
|
prefix:
|
|
|
|
collate:
|
|
|
|
flatten-annotations:
|
|
|
|
flatten-rotation:
|
|
|
|
generate-appearances:
|
|
|
|
keep-inline-images:
|
|
|
|
oi-min-area:
|
|
|
|
oi-min-height:
|
|
|
|
oi-min-width:
|
|
|
|
optimize-images:
|
|
|
|
pages:
|
|
|
|
- _file: "source for for pages"
|
|
|
|
Pages.password:
|
|
|
|
_range: "page range"
|
|
|
|
remove-page-labels:
|
2022-09-01 20:40:06 +00:00
|
|
|
report-memory-usage:
|
2022-01-31 23:04:14 +00:00
|
|
|
rotate:
|
|
|
|
overlay:
|
|
|
|
_file: "source file for overlay"
|
|
|
|
UO.password:
|
|
|
|
from:
|
|
|
|
repeat:
|
|
|
|
to:
|
|
|
|
underlay:
|
|
|
|
_file: "source file for underlay"
|
|
|
|
UO.password:
|
|
|
|
from:
|
|
|
|
repeat:
|
|
|
|
to:
|
|
|
|
warning-exit-0:
|
|
|
|
job-json-file:
|
|
|
|
preserve-unreferenced-resources:
|
|
|
|
requires-password:
|
|
|
|
is-encrypted:
|