mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-23 03:18:59 +00:00
4fe2e06b47
Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON)
431 lines
9.3 KiB
YAML
431 lines
9.3 KiB
YAML
# See "HOW TO ADD A COMMAND-LINE ARGUMENT" in README-maintainer.
|
|
|
|
# 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.
|
|
|
|
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_version:
|
|
- 1
|
|
- 2
|
|
- latest
|
|
json_key:
|
|
# The list of selectable top-level keys id duplicated in the
|
|
# following places: job.yml, QPDFJob::json_schema, and
|
|
# QPDFJob::doJSON.
|
|
- acroform
|
|
- attachments
|
|
- encrypt
|
|
- objectinfo # only v1
|
|
- objects # only v1
|
|
- outlines
|
|
- pagelabels
|
|
- pages
|
|
- qpdf # only v2
|
|
json_stream_data:
|
|
- none
|
|
- inline
|
|
- file
|
|
print128:
|
|
- full
|
|
- low
|
|
- none
|
|
modify128:
|
|
- all
|
|
- annotate
|
|
- form
|
|
- assembly
|
|
- none
|
|
options:
|
|
- table: help
|
|
bare:
|
|
- version
|
|
- copyright
|
|
- json-help
|
|
- show-crypto
|
|
- job-json-help
|
|
- table: main
|
|
config: c_main
|
|
manual:
|
|
- add-attachment
|
|
- copy-attachments-from
|
|
- encrypt
|
|
- overlay
|
|
- pages
|
|
- underlay
|
|
- empty
|
|
- replace-input
|
|
- create-from-json
|
|
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
|
|
- test-json-schema
|
|
- to-json
|
|
- 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
|
|
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
|
|
json-stream-prefix: stream-file-prefix
|
|
create-from-json: qpdf-json file
|
|
update-from-json: qpdf-json file
|
|
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
|
|
json-stream-data: json_stream_data
|
|
optional_choices:
|
|
json: json_version
|
|
- table: pages
|
|
config: c_pages
|
|
prefix: Pages
|
|
positional: true
|
|
manual:
|
|
- password
|
|
required_parameter:
|
|
password: password
|
|
- table: encryption
|
|
prefix: Enc
|
|
positional: true
|
|
- table: 40-bit encryption
|
|
config: c_enc
|
|
config_prefix: Enc
|
|
prefix: Enc40
|
|
required_choices:
|
|
extract: yn
|
|
annotate: yn
|
|
print: yn
|
|
modify: yn
|
|
- table: 128-bit encryption
|
|
config: c_enc
|
|
config_prefix: Enc
|
|
prefix: Enc128
|
|
bare:
|
|
- cleartext-metadata
|
|
- force-V4
|
|
required_choices:
|
|
accessibility: yn
|
|
extract: yn
|
|
print: print128
|
|
assemble: yn
|
|
annotate: yn
|
|
form: yn
|
|
modify-other: yn
|
|
modify: modify128
|
|
use-aes: yn
|
|
- table: 256-bit encryption
|
|
config: c_enc
|
|
config_prefix: Enc
|
|
prefix: Enc256
|
|
bare:
|
|
- cleartext-metadata
|
|
- force-R5
|
|
- allow-insecure
|
|
required_choices:
|
|
accessibility: yn
|
|
extract: yn
|
|
print: print128
|
|
assemble: yn
|
|
annotate: yn
|
|
form: yn
|
|
modify-other: yn
|
|
modify: modify128
|
|
- table: underlay/overlay
|
|
config: c_uo
|
|
prefix: UO
|
|
positional: true
|
|
required_parameter:
|
|
to: page-range
|
|
from: page-range
|
|
repeat: page-range
|
|
password: password
|
|
- table: attachment
|
|
config: c_att
|
|
prefix: Att
|
|
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
|
|
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
|
|
# 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:
|
|
create-from-json:
|
|
# 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
|
|
json-stream-data:
|
|
json-stream-prefix:
|
|
to-json:
|
|
# other options
|
|
update-from-json:
|
|
allow-weak-crypto:
|
|
keep-files-open:
|
|
keep-files-open-threshold:
|
|
no-warn:
|
|
verbose:
|
|
test-json-schema:
|
|
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:
|
|
- _file: "file to attach"
|
|
creationdate:
|
|
description:
|
|
filename:
|
|
key:
|
|
mimetype:
|
|
moddate:
|
|
replace:
|
|
remove-attachment:
|
|
- null
|
|
copy-attachments-from:
|
|
- _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:
|