All Projects → pikepdf → Pikepdf

pikepdf / Pikepdf

Licence: mpl-2.0
A Python library for reading and writing PDF, powered by qpdf

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pikepdf

Dart pdf
Pdf creation module for dart/flutter
Stars: ✭ 500 (-11.66%)
Mutual labels:  pdf, pdf-generation
Tea School
Simplified HTML + CSS --> PDF Generator for Nodejs
Stars: ✭ 326 (-42.4%)
Mutual labels:  pdf, pdf-generation
Hummusrecipe
A powerful PDF tool for NodeJS based on HummusJS.
Stars: ✭ 274 (-51.59%)
Mutual labels:  pdf, pdf-generation
Pdf Bot
🤖 A Node queue API for generating PDFs using headless Chrome. Comes with a CLI, S3 storage and webhooks for notifying subscribers about generated PDFs
Stars: ✭ 2,551 (+350.71%)
Mutual labels:  pdf, pdf-generation
Rst2pdf
Use a text editor. Make a PDF.
Stars: ✭ 404 (-28.62%)
Mutual labels:  pdf, pdf-generation
Android Pdfmyxml
convert android xml layouts into PDF document, works on all versions of Android.
Stars: ✭ 231 (-59.19%)
Mutual labels:  pdf, pdf-generation
Django Easy Pdf
PDF views, the easy way
Stars: ✭ 324 (-42.76%)
Mutual labels:  pdf, pdf-generation
Markdown Pdf
📄 Markdown to PDF converter
Stars: ✭ 2,365 (+317.84%)
Mutual labels:  pdf, pdf-generation
Pdfjs
A Portable Document Format (PDF) generation library targeting both the server- and client-side.
Stars: ✭ 395 (-30.21%)
Mutual labels:  pdf, pdf-generation
Md To Pdf
Hackable CLI tool for converting Markdown files to PDF using Node.js and headless Chrome.
Stars: ✭ 374 (-33.92%)
Mutual labels:  pdf, pdf-generation
Pdf Lib
Create and modify PDF documents in any JavaScript environment
Stars: ✭ 3,426 (+505.3%)
Mutual labels:  pdf, pdf-generation
One File Pdf
A minimalist Go PDF writer in 1982 lines. Draws text, images and shapes. Helps understand the PDF format. Used in production for reports.
Stars: ✭ 429 (-24.2%)
Mutual labels:  pdf, pdf-generation
Asciidoctor Web Pdf
Convert AsciiDoc documents to PDF using web technologies
Stars: ✭ 219 (-61.31%)
Mutual labels:  pdf, pdf-generation
Combine pdf
A Pure ruby library to merge PDF files, number pages and maybe more...
Stars: ✭ 552 (-2.47%)
Mutual labels:  pdf, pdf-generation
Pdfgen
Simple C PDF Writer/Generation library
Stars: ✭ 200 (-64.66%)
Mutual labels:  pdf, pdf-generation
Pandoc Latex Template
A pandoc LaTeX template to convert markdown files to PDF or LaTeX.
Stars: ✭ 3,750 (+562.54%)
Mutual labels:  pdf, pdf-generation
Chrome Headless Render Pdf
Stars: ✭ 164 (-71.02%)
Mutual labels:  pdf, pdf-generation
Resumake.io
📝 A website for automatically generating elegant LaTeX resumes.
Stars: ✭ 2,277 (+302.3%)
Mutual labels:  pdf, pdf-generation
Rinohtype
The Python document processor
Stars: ✭ 365 (-35.51%)
Mutual labels:  pdf, pdf-generation
Printpdf
An easy-to-use library for writing PDF in Rust
Stars: ✭ 404 (-28.62%)
Mutual labels:  pdf, pdf-generation

pikepdf

pikepdf is a Python library for reading and writing PDF files.

Build Status PyPI PyPI - Python Version PyPy Language grade: Python Language grade: C/C++ PyPI - License PyPI - Downloads codecov

pikepdf is based on QPDF, a powerful PDF manipulation and repair library.

Python + QPDF = "py" + "qpdf" = "pyqpdf", which looks like a dyslexia test. Say it out loud, and it sounds like "pikepdf".

# Elegant, Pythonic API
with pikepdf.open('input.pdf') as pdf:
    num_pages = len(pdf.pages)
    del pdf.pages[-1]
    pdf.save('output.pdf')

To install:

pip install pikepdf

For users who want to build from source, see installation.

pikepdf is documented and actively maintained. Commercial support is available.

Features

This library is similar to PyPDF2 and pdfrw - it provides low level access to PDF features and allows editing and content transformation of existing PDFs. Some knowledge of the PDF specification may be helpful. It does not have the capability to render a PDF to image.

Feature pikepdf PyPDF2 pdfrw
Editing, manipulation and transformation of existing PDFs
Based on an existing, mature PDF library QPDF
Implementation C++ and Python Python Python
PDF versions supported 1.1 to 1.7 1.3? 1.7
Python versions supported 3.6-3.9 2.6-3.6 2.6-3.6
Save and load password protected (encrypted) PDFs ✔ (except public key) ✘ (Only obsolete RC4) ✘ (not at all)
Save and load PDF compressed object streams (PDF 1.5)
Creates linearized ("fast web view") PDFs
Actively maintained pikepdf commit activity PyPDF2 commit activity pdfrw commit activity
Test suite coverage codecov very low unknown
Creates PDFs that pass PDF validation tests ?
Modifies PDF/A without breaking PDF/A compliance ?
Automatically repairs PDFs with internal errors
PDF XMP metadata editing read-only
Documentation
Integrates with Jupyter and IPython notebooks for rapid development

Testimonials

I decided to try writing a quick Python program with pikepdf to automate [something] and it "just worked". –Jay Berkenbilt, creator of QPDF

"Thanks for creating a great pdf library, I tested out several and this is the one that was best able to work with whatever I threw at it." –@cfcurtis

In Production

  • OCRmyPDF uses pikepdf to graft OCR text layers onto existing PDFs, to examine the contents of input PDFs, and to optimize PDFs.

  • pdfarranger is a small Python application that provides a graphical user interface to rotate, crop and rearrange PDFs.

  • PDFStitcher is a utility for stitching PDF pages into a single document (i.e. N-up or page imposition).

License

pikepdf is provided under the Mozilla Public License 2.0 license (MPL) that can be found in the LICENSE file. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.

Informally, MPL 2.0 is a not a "viral" license. It may be combined with other work, including commercial software. However, you must disclose your modifications to pikepdf in source code form. In other works, fork this repository on GitHub or elsewhere and commit your contributions there, and you've satisfied your obligations. MPL 2.0 is compatible with the GPL and LGPL - see the guidelines for notes on use in GPL.

The debian/copyright file describes licensing terms for the test suite and the provenance of test resources.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].