2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-06-01 01:40:51 +00:00
qpdf/job.yml
Jay Berkenbilt a0e70b370a Wiring for --set-page-labels: manual (non-bisectable commit)
This commit contains only the manual changes. It is separated for
clarity. This commit would not pass CI because it lacks the automated
changes, which appear in the next commit.
2024-01-05 17:10:32 -05:00

464 lines
10 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_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_output:
- 2
- latest
json_stream_data:
- none
- inline
- file
json_version:
- 1
- 2
- latest
enc_bits:
- 40
- 128
- 256
print128:
- full
- low
- none
modify128:
- all
- annotate
- form
- assembly
- none
options:
- table: help
bare:
- version
- copyright
- show-crypto
- job-json-help
optional_choices:
json-help: json_version
- table: main
config: c_main
manual:
- add-attachment
- copy-attachments-from
- encrypt
- overlay
- pages
- underlay
- empty
- replace-input
- set-page-labels
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
- json-input
- 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
- report-memory-usage
- requires-password
- remove-restrictions
- set-page-labels
- 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
- 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
update-from-json: qpdf-json file
required_choices:
compress-streams: yn
decode-level: decode_level
flatten-annotations: flatten
json-key: json_key
json-stream-data: json_stream_data
keep-files-open: yn
normalize-content: yn
object-streams: object_streams
password-mode: password_mode
remove-unreferenced-resources: remove_unref
stream-data: stream_data
optional_choices:
json: json_version
json-output: json_output
- table: pages
config: c_pages
prefix: Pages
positional: true
manual:
- password
required_parameter:
password: password
- table: encryption
config: c_main
prefix: Enc
positional: true
manual:
- user-password
- owner-password
- bits
required_parameter:
user-password: user_password
owner-password: owner_password
required_choices:
bits: enc_bits
- 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
- table: set page labels
prefix: PageLabels
positional: true
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. 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.
# input
_inputFile: "input filename"
main.password:
password-file:
empty:
json-input:
# 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:
json-output:
remove-restrictions:
encrypt:
user-password:
owner-password:
__bits:
_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:
# 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:
report-memory-usage:
rotate:
set-page-labels:
- null
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: