2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-11-18 02:25:08 +00:00
qpdf/job.yml

412 lines
8.9 KiB
YAML
Raw Normal View History

# 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
2022-01-31 19:20:06 +00:00
json_version:
- 1
- latest
2022-01-06 16:33:52 +00:00
json_key:
# 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
- objectinfo
- objects
- outlines
- pagelabels
- pages
print128:
- full
- low
- none
modify128:
- all
- annotate
- form
- assembly
- none
options:
- table: help
bare:
- version
- copyright
- json-help
- show-crypto
- job-json-help
2022-01-06 16:33:52 +00:00
- table: main
config: c_main
2022-01-26 00:01:10 +00:00
manual:
- add-attachment
- copy-attachments-from
- encrypt
- overlay
- pages
- underlay
- 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
- 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
- requires-password
- show-encryption
- show-encryption-key
- show-linearization
- show-npages
- show-pages
- show-xref
- static-aes-iv
- static-id
- suppress-password-recovery
- suppress-recovery
- 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
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
required_choices:
compress-streams: yn
decode-level: decode_level
flatten-annotations: flatten
json-key: json_key
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-01-06 16:33:52 +00:00
- table: pages
2022-01-26 00:01:10 +00:00
config: c_pages
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:
password: password
2022-01-06 16:33:52 +00:00
- table: encryption
prefix: Enc
2022-01-06 16:33:52 +00:00
positional: true
- table: 40-bit encryption
2022-01-26 18:17:57 +00:00
config: c_enc
config_prefix: Enc
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
config_prefix: Enc
prefix: Enc128
2022-01-06 16:33:52 +00:00
bare:
- cleartext-metadata
- force-V4
required_choices:
accessibility: yn
extract: yn
print: print128
2022-01-06 16:33:52 +00:00
assemble: yn
annotate: yn
form: yn
modify-other: yn
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
config_prefix: Enc
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
config: c_uo
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
config: c_att
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
config: c_copy_att
prefix: CopyAtt
2022-01-06 16:33:52 +00:00
positional: true
required_parameter:
prefix: prefix
password: password
json:
# The structure of this section defines what the json input to
# 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
# QPDFJob. The leading underscore is removed. *NOTE*: all keys are
2022-02-02 14:31:33 +00:00
# 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.
# input
_inputFile: "input filename"
main.password:
password-file:
empty:
# 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:
encrypt:
_user-password: "user password"
_owner-password: "owner password"
_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
# other options
allow-weak-crypto:
keep-files-open:
keep-files-open-threshold:
no-warn:
verbose:
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"
creationdate:
description:
filename:
key:
mimetype:
moddate:
replace:
remove-attachment:
- null
copy-attachments-from:
2022-01-31 23:24:44 +00:00
- _file: "file to copy attachments from"
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:
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: