# See "HOW TO ADD A COMMAND-LINE ARGUMENT" in README-maintainer. 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 - objects - outlines - pagelabels - pages print128: - full - low - none modify128: - all - annotate - form - assembly - none options: - table: help bare: - version - copyright - json-help - show-crypto - table: main 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 - 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 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 - table: pages prefix: Pages positional: true required_parameter: password: password - table: encryption prefix: Enc positional: true - table: 40-bit encryption prefix: Enc40 required_choices: extract: yn annotate: yn print: yn modify: yn - table: 128-bit encryption 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 prefix: Enc256 from_table: table: 128-bit encryption options: - cleartext-metadata - accessibility - extract - print - assemble - annotate - form - modify-other - modify bare: - force-R5 - allow-insecure - table: underlay/overlay prefix: UO positional: true required_parameter: to: page-range from: page-range repeat: page-range password: password - table: attachment 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 prefix: CopyAtt positional: true required_parameter: prefix: prefix password: password no-json: - preserve-unreferenced-resources json: # The structure of this section defines what the json input to # QPDFJob looks like. If a key starts with underscore or has a value # that is a string, it does not map to a command-line argument. If # value is null, 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. _input: _file: _name: "input filename" main.password: password-file: empty: _output: _file: _name: "output filename" replace-input: split-pages: _options: qdf: preserve-unreferenced: newline-before-endstream: normalize-content: stream-data: compress-streams: recompress-flate: decode-level: decrypt: static-aes-iv: static-id: no-original-object-ids: copy-encryption: encryption-file-password: linearize: linearize-pass1: object-streams: min-version: force-version: progress: encrypt: user-password: "user password" owner-password: "owner password" key-length: "key length: 48, 128, 256" _40-bit: Enc40.annotate: Enc40.extract: Enc40.modify: Enc40.print: _128-bit: Enc128.accessibility: Enc128.annotate: Enc128.assemble: Enc128.cleartext-metadata: Enc128.extract: Enc128.form: Enc128.modify-other: Enc128.modify: Enc128.print: force-V4: use-aes: _256-bit: Enc256.accessibility: Enc256.annotate: Enc256.assemble: Enc256.cleartext-metadata: Enc256.extract: Enc256.form: Enc256.modify-other: Enc256.modify: Enc256.print: allow-insecure: force-R5: _options: allow-weak-crypto: deterministic-id: keep-files-open: keep-files-open-threshold: no-warn: verbose: warning-exit-0: ignore-xref-streams: password-is-hex-key: password-mode: suppress-password-recovery: suppress-recovery: _inspect: check: check-linearization: filtered-stream-data: is-encrypted: raw-stream-data: requires-password: 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 _transform: coalesce-contents: compression-level: externalize-inline-images: ii-min-bytes: remove-unreferenced-resources: _modify: add-attachment: - file: "attachment to add" creationdate: description: filename: key: mimetype: moddate: replace: remove-attachment: copy-attachments-from: - file: "attachment source filename" 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: