{"id":76596,"url":"https://github.com/py-pdf/awesome-pdf","name":"awesome-pdf","description":"A curated list of resources around PDF files","projects_count":43,"last_synced_at":"2026-08-07T13:00:25.205Z","repository":{"id":143418296,"uuid":"481462464","full_name":"py-pdf/awesome-pdf","owner":"py-pdf","description":"A curated list of resources around PDF files","archived":false,"fork":false,"pushed_at":"2024-08-02T05:35:42.000Z","size":25,"stargazers_count":159,"open_issues_count":30,"forks_count":36,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-07-19T06:04:49.940Z","etag":null,"topics":["awesome-list","pdf"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/py-pdf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-14T04:14:27.000Z","updated_at":"2026-07-15T12:47:39.000Z","dependencies_parsed_at":"2024-11-08T18:21:29.848Z","dependency_job_id":"c2b2c6f5-3b56-460c-b0cd-b55185816039","html_url":"https://github.com/py-pdf/awesome-pdf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/py-pdf/awesome-pdf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-pdf%2Fawesome-pdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-pdf%2Fawesome-pdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-pdf%2Fawesome-pdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-pdf%2Fawesome-pdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/py-pdf","download_url":"https://codeload.github.com/py-pdf/awesome-pdf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-pdf%2Fawesome-pdf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36377028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-07T02:00:06.708Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-11-08T18:20:36.533Z","updated_at":"2026-08-07T13:00:25.205Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Generators","Viewers","Multi-Purpose Libraries","Data Extraction","Manipulators","File Analysis / Security","The File Format"],"sub_categories":[],"readme":"# Awesome PDF  [![Awesome](https://awesome.re/badge-flat.svg)](https://awesome.re)\nA curated list of resources around PDF files\n\n## The File Format\n\n* PDF Association: [PDF Specification Index](https://www.pdfa.org/resource/pdf-specification-index/), 2021.\n* Jindrich Kubec, Jiri Sejtko: [X is not enough! Grab the PDF by the tail!](https://www.virusbulletin.com/uploads/pdf/conference_slides/2011/Kubec-Sejtko-VB2011.pdf) at [Virus Bulletin](https://www.virusbulletin.com/), 2011.\n* Selected compilation of PDF Standards from the [Adobe Open Source Reference](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/#pdf-reference), 2022.\n  1. [PDF Reference 1.0](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.0.pdf)\n  2. [PDF Reference 1.2](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.2.pdf)\n  3. [PDF Reference 1.3](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.3.pdf)\n  4. [PDF Reference 1.4](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.4.pdf)\n  5. [PDF Reference 1.5 (v6)](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.5_v6.pdf)\n  6. [PDF Reference 1.6](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.6.pdf)\n  7. [PDF Reference 1.7 (ISO 32000, 2008)](https://web.archive.org/web/20220827074128/https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf)\n  8. [PDF Reference 2.0 (ISO 32000-2:2020)](https://www.pdfa-inc.org/product/iso-32000-2-pdf-2-0-bundle-sponsored-access/) (freely available ISO standard due to corporate sponsorship)\n* Adobe: [XMP Specification Part 3](https://github.com/adobe/xmp-docs/blob/master/XMPSpecifications/XMPSpecificationPart3.pdf), January 2020.\n\n\n## Viewers\n\n* [KOReader](https://github.com/koreader/koreader): a document viewer primarily aimed at e-ink readers\n* [react-native-pdf](https://github.com/wonday/react-native-pdf): a react native PDF view component\n* [PdfViewPager](https://github.com/voghDev/PdfViewPager): Android widget to display PDF documents in your Activities or Fragments\n* [vue-pdf](https://github.com/FranckFreiburger/vue-pdf): vue.js pdf viewer\n\n## Data Extraction\n\n* [pdftotext](https://manpages.debian.org/stretch/poppler-utils/pdftotext.1.en.html): an application that converts Portable Document Format (PDF) files to plain text. Part of poppler-utils.\n* [pdfminer.six](https://pypi.org/project/pdfminer.six/): a Python library for extracting information from PDF documents\n    * [pdfplumber](https://github.com/jsvine/pdfplumber): Plumb a PDF for detailed information about each text character, rectangle, and line. Plus: Table extraction and visual debugging.\n* [Tabula](https://github.com/tabulapdf/tabula): an application for extracting tables\n* [camelot](https://github.com/atlanhq/camelot): PDF Table Extraction\n* [awesome-document-understanding](https://github.com/tstanislawek/awesome-document-understanding): A curated list of resources for Document Understanding (DU) topic\n\n## Generators\n\nAnything that can produce PDF files from scratch:\n\n* [fpdf2](https://pypi.org/project/fpdf2/): An Open Source Python library for generating PDFs\n* pdflatex (e.g. in [TexLive](https://www.tug.org/texlive/)): A LaTeX-to-PDF converter\n* [reportlab](https://pypi.org/project/reportlab/): An Open Source Python library for generating PDFs and graphics.\n* [prawn](https://github.com/prawnpdf/prawn): a pure Ruby PDF generation library\n* [react-pdf](https://github.com/diegomura/react-pdf): Create PDF files using React\n* [markdown-pdf](https://github.com/alanshaw/markdown-pdf): Markdown to PDF converter\n* [mpdf](https://github.com/mpdf/mpdf): PHP library generating PDF files from UTF-8 encoded HTML\n\n## Manipulators\n\nAnything that's used to edit an existing PDF file:\n\n* [pdfarranger](https://github.com/pdfarranger/pdfarranger): a small python-gtk application, which helps the user to merge or split pdf documents and rotate, crop and rearrange their pages using a graphical interface\n* [OCRmyPDF](https://github.com/ocrmypdf/OCRmyPDF): adds an OCR text layer to scanned PDF files, allowing them to be searched\n\n## File Analysis / Security\n\n* [Pdfalyzer](https://github.com/michelcrypt4d4mus/pdfalyzer): PDF analysis tool to visualize the internal data structure of a PDF in large and colorful diagrams as well as scanning the binary streams embedded in the PDF against a collection of malicious PDF specific YARA rules.\n* [Malicious PDF Generator](https://github.com/jonaslejon/malicious-pdf): generate a bunch of malicious pdf files with phone-home functionality\n* [pdfbox](https://pdfbox.apache.org/1.8/commandline.html): tool in java to browse internally a pdf. [Download](https://pdfbox.apache.org/download.cgi) and use as `pdfbox-app-x.y.z.jar debug pdf_file`\n\n## Multi-Purpose Libraries\n\n* [pdftk](https://www.pdflabs.com/tools/pdftk-server/): command-line tool for working with PDFs. It is commonly used for client-side scripting or server-side processing of PDFs.\n* [pypdf](https://pypi.org/project/pypdf/) ![](https://shields.io/badge/-extract-inactive) ![](https://shields.io/badge/-manipulate-inactive): a free and open-source pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files\n* [pikepdf](https://github.com/pikepdf/pikepdf) ![](https://shields.io/badge/-extract-inactive) ![](https://shields.io/badge/-manipulate-inactive): a Python library for reading and writing PDF, powered by qpdf\n* [PyMuPDF](https://github.com/pymupdf/PyMuPDF) ![](https://shields.io/badge/-extract-inactive) ![](https://shields.io/badge/-manipulate-inactive) ![](https://shields.io/badge/-render-inactive): Python bindings to MuPDF.\n* [pypdfium2](https://github.com/pypdfium2-team/pypdfium2) ![](https://shields.io/badge/-extract-inactive) ![](https://shields.io/badge/-manipulate-inactive) ![](https://shields.io/badge/-create-inactive) ![](https://shields.io/badge/-render-inactive): Python bindings to PDFium.\n* [borb](https://github.com/jorisschellekens/borb) ![](https://shields.io/badge/-extract-inactive)  ![](https://shields.io/badge/-manipulate-inactive) ![](https://shields.io/badge/-create-inactive): reading, creating and manipulating PDF files in python\n* [pdfcpu](https://github.com/pdfcpu/pdfcpu) ![](https://shields.io/badge/-extract-inactive)  ![](https://shields.io/badge/-manipulate-inactive) ![](https://shields.io/badge/-create-inactive): batch processing and scripting via a rich command line\n* [pdf-lib](https://github.com/Hopding/pdf-lib)  ![](https://shields.io/badge/-manipulate-inactive) ![](https://shields.io/badge/-create-inactive): Create and modify PDF documents in any JavaScript environment\n* [HexaPDF](https://hexapdf.gettalong.org): ![](https://shields.io/badge/-extract-inactive) ![](https://shields.io/badge/-manipulate-inactive) ![](https://shields.io/badge/-create-inactive): A pure Ruby PDF creation and manipulation library\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/py-pdf%2Fawesome-pdf/projects"}