# pdftl: Options for PDF output ## `allow ...` > Specify permissions for encrypted files ## Details Files saved with encryption have various possible permissions. The default encryption permissions are to forbid all possible actions. Use the `allow` output option to allow permissions selectively. Arguments `...` must be zero or more permissions from among the following. If omitted, the default is to allow all permissions. Upper/lowercase characters are treated the same. |Permission ``|Allows| |-|-| |Printing| standard printing| |DegradedPrinting| low quality printing| |ModifyContents| modification and "assembly"| |Assembly| "assembly"| |CopyContents| copying and "screenreaders"| |ScreenReaders| "screenreaders"| |ModifyAnnotations| modifying annotations| |FillIn| filling in forms| |AllFeatures| all of the above| Note: Screenreaders are allowed to be used by modern PDF readers, regardless of these permissions settings. **Tags**: security, encryption *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#allow-perm](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#allow-perm)* *Type: Option* ## `compress` > Compress output file streams (default) *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#compress](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#compress)* *Type: Option* ## `drop_info` > Discard document-level info metadata *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#drop-info](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#drop-info)* *Type: Option* ## `drop_xfa` > Discard form XFA data if present *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#drop-xfa](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#drop-xfa)* *Type: Option* ## `drop_xmp` > Discard document-level XMP metadata *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#drop-xmp](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#drop-xmp)* *Type: Option* ## `encrypt_128bit` > Use 128 bit encryption (obsolete and insecure) **Tags**: security, encryption, obsolete *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-bit](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-bit)* *Type: Option* ## `encrypt_40bit` > Use 40 bit encryption (obsolete, highly insecure) **Tags**: security, encryption, obsolete *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-bit](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-bit)* *Type: Option* ## `encrypt_aes128` > Use 128 bit AES encryption (default) **Tags**: security, encryption, legacy *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-aes](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-aes)* *Type: Option* ## `encrypt_aes256` > Use 256 bit AES encryption **Tags**: security, encryption *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-aes](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#encrypt-aes)* *Type: Option* ## `fast` > Skip stream recompression for faster saving ## Details By default, data streams (such as images and page contents) are decompressed and recompressed when saving. This allows the underlying library to recalculate stream lengths and often results in smaller files, but it can add significant CPU overhead. The `fast` option disables this step, copying streams as raw binary data to reduce save times. **Tags**: performance, compression *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#fast](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#fast)* *Type: Option* ## `flatten` > Flatten annotations and form fields *Source: pdftl.output.flatten* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#flatten](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#flatten)* *Type: Option* ## `keep_final_id` > Copy final input PDF's ID metadata to output *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#keep-final-id](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#keep-final-id)* *Type: Option* ## `keep_first_id` > Copy first input PDF's ID metadata to output *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#keep-first-id](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#keep-first-id)* *Type: Option* ## `linearize` > Linearize output file(s) *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#linearize](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#linearize)* *Type: Option* ## `need_appearances` > Set a form rendering flag in the output PDF *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#need-appearances](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#need-appearances)* *Type: Option* ## `no_encrypt_metadata` > Leave metadata unencrypted ## Details This allows search engines to read metadata such as title/author, etc. **Tags**: encryption, metadata *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#no-encrypt-metadata](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#no-encrypt-metadata)* *Type: Option* ## `output ` > The output file path, or a template for `burst` *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#output-file](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#output-file)* *Type: Option* ## `owner_pw ` > Set owner password and encrypt output **Tags**: security, encryption *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#owner-pw-pw](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#owner-pw-pw)* *Type: Option* ## `replacement_font ` > Replace the font used for all form fields with a TTF file **Tags**: form, font *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#replacement-font-file](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#replacement-font-file)* *Type: Option* ## `sign_cert ` > Path to certificate PEM ## Details The path to your certificate file (`.pem`), also known as the public key. This is required for signing. **Tags**: security, signatures *Source: pdftl.output.sign* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-cert-file](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-cert-file)* *Type: Option* ## `sign_field ` > Signature field name (default: `Signature1`) **Tags**: security, signatures *Source: pdftl.output.sign* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-field-name](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-field-name)* *Type: Option* ## `sign_key ` > Path to private key PEM ## Details The path to your private key file (`.pem`). This is required for signing. See also `sign_cert`. **Tags**: security, signatures *Source: pdftl.output.sign* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-key-file](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-key-file)* *Type: Option* ## `sign_pass_env ` > Environment variable with `sign_cert` passphrase ## Details The name of an environment variable containing the passphrase for your public signing certificate, as specified by `sign_cert`. **Tags**: security, signatures *Source: pdftl.output.sign* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-pass-env-var](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-pass-env-var)* *Type: Option* ## `sign_pass_prompt` > Prompt for `sign_cert` passphrase **Tags**: security, signatures *Source: pdftl.output.sign* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-pass-prompt](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#sign-pass-prompt)* *Type: Option* ## `uncompress` > Disable compression of output file streams **Tags**: compression *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#uncompress](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#uncompress)* *Type: Option* ## `user_pw ` > Set user password and encrypt output **Tags**: security, encryption *Source: pdftl.output.save* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#user-pw-pw](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#user-pw-pw)* *Type: Option* ## `verbose` > Turn on verbose output *Source: pdftl.cli.main* *Read online: [https://pdftl.readthedocs.io/en/stable/misc/output_options.html#verbose](https://pdftl.readthedocs.io/en/stable/misc/output_options.html#verbose)* *Type: Option*