Download Latest Version v10.16.0 source code.zip (10.2 MB) Google Add to Preferred Sources
Home / v10.15.0
Name Modified Size InfoDownloads / Week
Parent folder
pikepdf-10.15.0-cp315-cp315t-win_amd64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0.tar.gz.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp314-cp314t-win_amd64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp315-cp315t-macosx_15_0_arm64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp315-cp315t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp315-cp315t-musllinux_1_2_aarch64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp315-cp315t-musllinux_1_2_x86_64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp314-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp314-abi3-musllinux_1_2_aarch64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp314-abi3-musllinux_1_2_x86_64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp314-abi3-win_amd64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp314-cp314t-macosx_15_0_arm64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp314-cp314t-musllinux_1_2_aarch64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp312-cp312-musllinux_1_2_x86_64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp312-cp312-win_amd64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp313-cp313-macosx_15_0_arm64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp313-cp313-musllinux_1_2_aarch64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp313-cp313-musllinux_1_2_x86_64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp313-cp313-win_amd64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp314-abi3-macosx_15_0_arm64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp314-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp311-cp311-macosx_15_0_arm64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp311-cp311-musllinux_1_2_aarch64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp311-cp311-musllinux_1_2_x86_64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp311-cp311-win_amd64.whl.sigstore.json 2026-09-28 9.3 kB
pikepdf-10.15.0-cp312-cp312-macosx_15_0_arm64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.sigstore.json 2026-09-28 9.2 kB
pikepdf-10.15.0-cp312-cp312-musllinux_1_2_aarch64.whl.sigstore.json 2026-09-28 9.4 kB
pikepdf-10.15.0-cp315-cp315t-win_amd64.whl 2026-09-28 3.9 MB
pikepdf-10.15.0.tar.gz 2026-09-28 9.9 MB
pikepdf-10.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl 2026-09-28 4.3 MB
pikepdf-10.15.0-cp314-cp314t-win_amd64.whl 2026-09-28 3.9 MB
pikepdf-10.15.0-cp315-cp315t-macosx_15_0_arm64.whl 2026-09-28 2.1 MB
pikepdf-10.15.0-cp315-cp315t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl 2026-09-28 2.4 MB
pikepdf-10.15.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl 2026-09-28 2.6 MB
pikepdf-10.15.0-cp315-cp315t-musllinux_1_2_aarch64.whl 2026-09-28 4.1 MB
pikepdf-10.15.0-cp315-cp315t-musllinux_1_2_x86_64.whl 2026-09-28 4.3 MB
pikepdf-10.15.0-cp314-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl 2026-09-28 2.6 MB
pikepdf-10.15.0-cp314-abi3-musllinux_1_2_aarch64.whl 2026-09-28 4.1 MB
pikepdf-10.15.0-cp314-abi3-musllinux_1_2_x86_64.whl 2026-09-28 4.3 MB
pikepdf-10.15.0-cp314-abi3-win_amd64.whl 2026-09-28 3.9 MB
pikepdf-10.15.0-cp314-cp314t-macosx_15_0_arm64.whl 2026-09-28 2.1 MB
pikepdf-10.15.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl 2026-09-28 2.4 MB
pikepdf-10.15.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl 2026-09-28 2.6 MB
pikepdf-10.15.0-cp314-cp314t-musllinux_1_2_aarch64.whl 2026-09-28 4.1 MB
pikepdf-10.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl 2026-09-28 2.6 MB
pikepdf-10.15.0-cp313-cp313-musllinux_1_2_aarch64.whl 2026-09-28 4.1 MB
pikepdf-10.15.0-cp313-cp313-musllinux_1_2_x86_64.whl 2026-09-28 4.3 MB
pikepdf-10.15.0-cp313-cp313-win_amd64.whl 2026-09-28 3.8 MB
pikepdf-10.15.0-cp314-abi3-macosx_15_0_arm64.whl 2026-09-28 2.1 MB
pikepdf-10.15.0-cp314-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl 2026-09-28 2.4 MB
pikepdf-10.15.0-cp311-cp311-win_amd64.whl 2026-09-28 3.8 MB
pikepdf-10.15.0-cp312-cp312-macosx_15_0_arm64.whl 2026-09-28 2.1 MB
pikepdf-10.15.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl 2026-09-28 2.4 MB
pikepdf-10.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl 2026-09-28 2.6 MB
pikepdf-10.15.0-cp312-cp312-musllinux_1_2_aarch64.whl 2026-09-28 4.1 MB
pikepdf-10.15.0-cp312-cp312-musllinux_1_2_x86_64.whl 2026-09-28 4.3 MB
pikepdf-10.15.0-cp312-cp312-win_amd64.whl 2026-09-28 3.8 MB
pikepdf-10.15.0-cp313-cp313-macosx_15_0_arm64.whl 2026-09-28 2.1 MB
pikepdf-10.15.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl 2026-09-28 2.4 MB
pikepdf-10.15.0-cp311-cp311-macosx_15_0_arm64.whl 2026-09-28 2.1 MB
pikepdf-10.15.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl 2026-09-28 2.4 MB
pikepdf-10.15.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl 2026-09-28 2.6 MB
pikepdf-10.15.0-cp311-cp311-musllinux_1_2_aarch64.whl 2026-09-28 4.1 MB
pikepdf-10.15.0-cp311-cp311-musllinux_1_2_x86_64.whl 2026-09-28 4.3 MB
README.md 2026-09-28 5.5 kB
v10.15.0 source code.tar.gz 2026-09-28 9.9 MB
v10.15.0 source code.zip 2026-09-28 10.2 MB
Totals: 77 Items   146.3 MB 1

PDF/A-3 attachments

  • Attaching a file through Pdf.attachments now lists its file specification in the document catalog's /AF (associated files) array, and deleting or replacing an attachment removes its entry. Together with the /AFRelationship pikepdf already writes, a file attached to a PDF/A-3 document now keeps it conformant. qpdf maintains only the /EmbeddedFiles name tree, so this was previously left to the user. {issue}463
  • The PDF/A validator now approves embedded files in PDF/A-3b documents: the /EmbeddedFiles name tree and the catalog's /AF array are checked against clause 6.8 of ISO 19005-3 (MIME type, /F and /UF, /AFRelationship, and that every embedded file is an associated file). Embedded files anywhere else, such as in file attachment annotations, are still reported as unsupported; they remain violations in PDF/A-1b and unsupported in PDF/A-2b. {func}pikepdf.pdfa.prepare gives PDF/A-3 embedded files a missing MIME type (application/octet-stream) and /AFRelationship (/Unspecified), and lists unassociated ones in the catalog's /AF array; new {class}pikepdf.pdfa.PrepareResult fields count these repairs. See {ref}pdfa-attachments.

PDF/A named destinations

  • The PDF/A validator now checks named destinations, in the /Dests name tree and in the catalog's /Dests dictionary, instead of reporting them as unsupported. Named destinations are common: pdfTeX (hyperref), Acrobat Distiller and JasperReports write them. It also checks named appearance streams (/Names /AP) as Form XObjects.
  • /AlternatePresentations is now reported as a violation of PDF/A-2 and PDF/A-3 (clause 6.10), and document-level JavaScript (/Names /JavaScript) as a violation of the rule forbidding JavaScript actions; both were reported as unsupported. {func}pikepdf.pdfa.prepare removes them.
  • {func}pikepdf.pdfa.prepare gives the encoding of a non-symbolic TrueType font that has /Differences but no /BaseEncoding the base encoding /WinAnsiEncoding, as PDF/A-2 and PDF/A-3 require, when no glyph the document draws would change. Older producers such as OpenPDF write such encodings. New {class}pikepdf.pdfa.PrepareResult fields report these repairs.

PDF/A developer extensions

  • The PDF/A validator now checks the Adobe developer extensions dictionary (/Extensions << /ADBE ... >>) that Acrobat writes in the document catalog, instead of reporting every such file as unsupported. qpdf rewrites this entry to match the written version and extension level, and removes it for PDF/A-1, and the validator checks the entry as it will be written. Other developer extensions remain unsupported.
  • {func}pikepdf.pdfa.resolve_save_kwargs accepts an extension level in min_version or force_version for PDF/A-2 and PDF/A-3, such as ('1.7', 8).

Metadata

  • New {meth}pikepdf.models.PdfMetadata.copy_properties copies named XMP properties from other metadata with their whole value: every language of a language alternative, array order, structures and qualifiers, which assigning a value read from the source would lose. Properties are read from every rdf:Description whatever its rdf:about, and the structure of known properties is checked as for assignment. This is useful to restore metadata another tool dropped while rewriting a document.

PDF/A annotations

  • {func}pikepdf.pdfa.repair_annotation_flags, the step of {func}pikepdf.pdfa.prepare that removes hidden annotations and sets the Print flag on the rest, is now public, with its result {class}pikepdf.pdfa.AnnotationRepairResult. Running it before handing a file to another PDF/A converter such as Ghostscript keeps hyperlinks that producers wrote without the Print flag, which Ghostscript's PDF/A mode deletes.

Fixes

  • The PDF/A validator reported the standard stream key /DL (decoded length) as unsupported on content streams, images, metadata streams and output intent profiles, so a file whose producer writes it could not be converted. It is now accepted on every stream.
  • The PDF/A validator accepted glyph names in a non-symbolic TrueType font's /Differences only from the Adobe Glyph List for New Fonts, so it rejected valid PDF/A-2 and PDF/A-3 files that used other names from the full Adobe Glyph List, such as afii10017 for Cyrillic text. It now accepts every name in the full list, as ISO 19005 requires and veraPDF checks. Names outside the list, such as uni0410 or A.sc, are still rejected.
  • A Pdf opened or created with conversion_mode='explicit' returned plain int for some numbers that qpdf writes itself, such as /Pages /Count after adding or removing a page, /Rotate after {meth}pikepdf.Page.rotate, or the /BBox of {meth}pikepdf.Page.as_form_xobject. These values now follow the document's conversion mode like any other.
  • In explicit conversion mode, Integer and Real now support the rest of the Python number protocol, with the same results as the int or Decimal that implicit mode produces: round(), math.trunc(), math.floor(), math.ceil(), divmod(), and format specs such as f'{x:.2f}'. int() of a Real now truncates, as int() of a Decimal does, instead of raising TypeError; for example int(page.Rotate) now works on a /Rotate 90.0.
  • The type stubs for Matrix now accept a pikepdf.Object, such as a /Matrix array, and a list of objects, as the runtime always has.
Source: README.md, updated 2026-09-28