MITFree and open source
One PDF engine.
Five native SDKs.
PDFCora is a PDF SDK for iOS, Android, the Web, Node and Java, built on PDFium. The same API and the same results in Swift, Kotlin, TypeScript and Java.
Features
What it does.
- Render pages at any size, with annotations and form widgets on or off
- Text extraction in reading order, search with result rectangles
- Read and write annotations: ink, notes, highlight, underline, strikeout
- Read and fill AcroForm fields
- Outlines, links, attachments, metadata; save in full or incrementally
- Sign (PAdES B-B / B-T) and verify signatures
- Real redaction: content leaves the saved bytes
- Tag untagged PDFs for accessibility (PDF/UA-1)
- A viewer component for iOS, Android and the Web
- Optional AI module (summaries, redaction and form proposals, alt text) and an MCP server for agents
Install
Add it to your project.
The packages are not published yet. Until they are, build from source: see Getting a working checkout.
iOS — Swift Package Manager
.package(url: "https://github.com/pdfcora/pdfcora-swift", from: "0.1.0")
.product(name: "PDFCora", package: "pdfcora-swift")
.product(name: "PDFCoraUI", package: "pdfcora-swift")
.product(name: "PDFCoraAI", package: "pdfcora-swift")
iOS 15+ · Swift 5.9 · async/await
Android — Gradle
implementation("com.pdfcora:pdfcora:0.1.0")
implementation("com.pdfcora:pdfcora-ui:0.1.0")
implementation("com.pdfcora:pdfcora-ai:0.1.0")
minSdk 23 · Kotlin coroutines · all four ABIs
Web — npm
npm install @pdfcora/web
npm install @pdfcora/web-ai # optional
npm install pdfcora-mcp # optional, for agents
TypeScript · WebAssembly · ESM · the .wasm ships inside the package
Node — npm
npm install @pdfcora/node
npm install @pdfcora/web-ai # optional
npm install pdfcora-mcp # optional, for agents
Node 18+ · the whole web API, plus file and PNG helpers · nothing to compile
Java — Gradle
implementation("com.pdfcora:pdfcora-java:0.1.0")
Java 17+ · macOS and Linux, x86-64 and arm64 · the engine is in the jar