Install
from pypdf import PdfReader, PdfWriterWho it's for
Use this pdf guide when a user mentions a .pdf file or asks you to produce a PDF. It covers reading or extracting text/tables, merging, splitting, rotating, watermarking, creating, filling forms, encrypting/decrypting, extracting images, and running OCR on scans so they can be searched. It is not a substitute for any particular reader, and it will not pick an unnamed commercial service for you.
A better fit is when you plan to do these basic operations with Python libraries and command-line tools. The material says advanced features, JavaScript libraries, and finer examples belong in REFERENCE.md, so do not treat this intro as a complete manual. The material does not list usable agent products, and do not treat Python or JavaScript as mutually exclusive, sole runtimes. The official guide page is
https://raw.githubusercontent.com/anthropics/skills/main/skills/pdf/SKILL.md
First try in 3 minutes
The recommended first path is the pypdf reading example in the material, not inventing another installer. Prerequisite: Python is already on this machine, and you can run from pypdf import PdfReader, PdfWriter. If the import fails, stop at the import error; do not rewrite the PDF.
Low-risk first try: start with a local document.pdf that already exists. Confirm the file is there, then open it read-only and print the page count:
from pypdf import PdfReader, PdfWriter
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")
Success signal: the terminal prints Pages: plus a number. This is a read, not a merge, encrypt, or overwrite. If the file does not exist, stop at the open failure; do not create or download an unnamed PDF. PdfWriter is imported on the same line, but do not call a disk write on the first try.
Use cases
Case 1: Confirm how many pages a local PDF has, and use that as the starting point for later extraction. The operation is the PdfReader("document.pdf") and len(reader.pages) above. The material lists reading and extracting text/tables as capabilities, but the excerpt only fully writes the page-count print, so the first completion bar is getting the page count. If you also need text, go back to the same page and find the matching call; do not treat the page-count output as having extracted the full text.
Case 2: You need to fill a PDF form. The material states: If you need to fill out a PDF form, read FORMS.md and follow its instructions. So the first step on this path is to open FORMS.md and follow its steps, not invent form fields or save commands on this page. Completion means you have started from FORMS.md, not that the form is assumed submitted. If the real goal is OCR on a scan, the material separately gives pip install pytesseract pdf2image and convert_from_path; that is another path with extra dependencies—do not mix it with form filling in one step.
Boundaries
Basic operations target Python libraries and command-line tools; advanced work, JavaScript, and detailed examples point to REFERENCE.md and are not expanded here. OCR needs pytesseract and pdf2image; convert pages to images first. Form filling must go through FORMS.md.
The material does not provide a GUI installer package or a client list. Merge, split, rotate, watermark, encrypt, and extract images are named as capabilities, but the excerpt does not give complete commands for those operations, so do not write them as already copy-pasteable steps. Before writing to disk, encrypting, or overwriting the original file, confirm the target path and side effects, then proceed.