← Blog

PDF versions when combining — 1.4, 1.7, 2.0

Combined output takes the higher version — every feature from either input must remain valid PDF 1.4 2001 transparency JBIG2 tagged PDF 128-bit RC4 "old, safe baseline" PDF 1.5 2003 object streams cross-ref streams XFA forms layers (OCG) PDF 1.7 2008 (ISO) 3D, video, audio 256-bit AES portable collections de facto modern PDF 2.0 2017 / 2020 UTF-8 strings deprecates XFA improved a11y AES-256 only slow uptake

Every PDF declares its version near the top: a header line like %PDF-1.7, plus an optional version override in the catalog. Combining two PDFs of different versions raises a small but real question: what version does the result claim?

Why the version matters

The version is not a marketing label. It is a contract: any conforming reader supporting that version must be able to interpret every feature inside the file. Pick a version too low and a feature used in the body (transparency, object streams, AES-256) violates the contract; pick too high and you exclude readers that don't yet support it.

What each version actually added

What version the output declares

The right rule for any merger is max(input_versions, version_required_by_used_features). If you combine a 1.4 PDF with a 1.7 PDF, the output should be at least 1.7 — using transparency, JBIG2, or anything else from either input remains valid. Going down (output as 1.4 to "be compatible") would invalidate any 1.5+ feature from the 1.7 input.

The merge tool used by CombinePDF picks an output version on its own; it typically writes a recent version (often 1.7) regardless of input versions. The converter doesn't perform version analysis or feature detection in our code, so the output's declared version is the merge tool's choice. Modern viewers handle PDF 1.7 and 2.0 transparently, so this is rarely visible.

Version overrides in the catalog

The header line is conventional. The authoritative version is the catalog's /Version entry if present, which can override the header. This was added in PDF 1.4 specifically so that incremental updates could bump the version without rewriting the header. A combine has to check both: parse the catalog override before parsing the header.

What this means for output size

When the output declares a modern version (1.5+), the merge tool may apply two compression features that older PDFs don't use:

Whether the merge tool actually uses these is its call. If you compare a combined output's size to the literal sum of input sizes, expect to see a savings of a few percent when inputs were old (1.4) and a similar or slightly larger output when both were already modern.

PDF/A and PDF/X — archival and print

These are constrained subsets of PDF for archival (PDF/A) and print production (PDF/X). They forbid certain features (encryption, JavaScript, external fonts) and require others (embedded ICC profiles, embedded fonts). Combining two PDF/A-compliant files does not automatically produce PDF/A output: the metadata claiming compliance is at the catalog level and the result needs validation.

PDF/A and PDF/X conformance are not preserved through this merge. The catalog-level metadata that declares conformance is dropped or invalidated by the operation. If you need an archival or print-production combine, validate and re-tag the output with veraPDF or a dedicated PDF/A or PDF/X tool.