---
title: "OCR API comparison 2026: Features, pricing, and use cases"
canonical_url: "https://www.nutrient.io/blog/ocr-api-comparison/"
md_url: "https://www.nutrient.io/blog/ocr-api-comparison.md"
last_updated: "2026-10-01T11:49:59.826Z"
description: "Compare OCR APIs for text recognition, searchable PDFs, and AI-ready document data. Explore features, pricing, and integration requirements."
---

A customer uploads a scanned contract. Your application needs its text for a search index. Or perhaps it needs to return a searchable PDF, extract the renewal date, or create a Word file someone can edit.

Those are different jobs, even though all four might send you searching for an “OCR API.”

The first thing to check is what the service returns. For an indexing task, recognized words and their coordinates may be enough. A searchable PDF, a set of business fields, or an editable document is a different result. Some services offer several through different operations.

This guide compares nine services by their outputs, integration requirements, and pricing. It also covers what happens after optical character recognition (OCR): how content reaches your search index, how someone checks an extracted value, and how much more processing follows.

Nutrient publishes this comparison and is one of the nine services in it. Nutrient reviewed product information and public pricing on 15 September 2026. This is a documentation-based comparison, not a hands-on accuracy benchmark. The order isn’t a ranking.

## OCR APIs at a glance

The table refers to the named services and operations, not every product in each vendor’s portfolio.

| Provider                        | What it returns                                                                                                 | When to consider it                                                                 | Integration detail                                                                                                      |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **Google Cloud Vision**         | Recognized text, coordinates, and document hierarchy                                                            | Text recognition for indexing or further processing                                 | Its asynchronous PDF workflow uses Cloud Storage for files and results.                                                 |
| **Amazon Textract**             | Text, forms, tables, and query answers                                                                          | Document data extraction within Amazon Web Services (AWS) applications              | Select text detection or the analysis features your application needs.                                                  |
| **Azure Document Intelligence** | Text, layout data, Markdown, and searchable PDFs, depending on the model                                        | Recognition and document analysis in Azure                                          | Read and Layout serve different output requirements.                                                                    |
| **Mindee**                      | Schema-defined fields or raw text with word positions                                                           | Extracting specified information from business documents                            | Configure an extraction schema or use the separate Raw Text model.                                                      |
| **Nutrient**                    | Markdown, spatial JSON, and schema-defined fields with citation metadata; searchable PDFs through Processor API | **Search and AI ingestion where document structure and source traceability matter** | Choose processing depth and use source metadata to support review; Processor handles complementary document operations. |
| **Adobe PDF Services**          | Searchable PDFs, Office files, and structured document data                                                     | Applications that need processed documents as well as extracted content             | OCR, Export, and Extract are separate operations.                                                                       |
| **Mistral OCR**                 | Markdown, document structure, and optional annotations                                                          | Document ingestion for search and AI applications                                   | Handle extracted images and tables alongside the Markdown.                                                              |
| **OCR.space**                   | Recognized text and, with a supported engine, searchable PDFs                                                   | Small applications and hosted-OCR prototypes                                        | Engine choice determines output options and limits.                                                                     |
| **ABBYY Vantage**               | Text, structured document output, searchable PDFs, and Office formats                                           | Configurable recognition and document export                                        | OCR Skill settings control recognition and export behavior.                                                             |

## 1. Google Cloud Vision

Google Cloud Vision is a useful starting point when you need recognized text rather than a new document.

Its `TEXT_DETECTION` feature handles text in images. `DOCUMENT_TEXT_DETECTION` is designed for dense text and documents, returning a more detailed hierarchy.

**What it returns:** JSON containing recognized text and bounding boxes. Document text detection includes page, block, paragraph, and word information.

**Integration notes:** Google’s asynchronous PDF and TIFF workflow reads files from Cloud Storage and writes its results back to a bucket. Include storage permissions, processing status, and result retrieval in the implementation.

Keep Cloud Vision and Google Document AI separate in your evaluation. Google directs developers toward Document AI for structured form parsing and entity extraction. Don’t assume a Cloud Vision OCR call includes those capabilities.

## 2. Amazon Textract

Textract combines text recognition with tools for retrieving document data. Forms, tables, and queries give developers several ways to work with a page rather than treat it as one block of text.

Consider an application processing bank statements. Reading every amount is one task; finding the closing balance is another. Textract’s query feature enables developers to ask for particular information using natural-language questions.

**What it returns:** Recognized text from detection operations, with forms, tables, layout information, and query answers available through the corresponding analysis features. Coordinates and confidence information are also available.

**Integration notes:** Textract supports synchronous processing for single-page documents and asynchronous processing for multipage documents. Choose the appropriate flow for interactive uploads or queued processing.

For a team already building on AWS, it’s a sensible candidate. Base the trial on the operation that answers your application’s question, not simply the one that recognizes the page.

## 3. Azure Document Intelligence

Azure Document Intelligence covers searchable-document workflows and document analysis through different models. An archive that needs searchable records and an application that needs document structure can use different configurations within the service.

**What it returns:** Read recognizes text and can produce searchable PDFs. Layout extracts structural information such as tables, headings, and selection marks, with JSON and Markdown output.

**Integration notes:** Searchable PDF output is available through `prebuilt-read`, with PDF input. The application submits the file, polls for completion, and retrieves the processed document. Microsoft includes this output without an additional generation charge beyond the Read operation.

Name the model and output in the implementation brief. “Read with searchable PDF output” gives a developer something more precise to work from than “Azure OCR.”

## 4. Mindee

Mindee’s schema-based approach gives developers a place to define the information their application needs. Fields can have types, descriptions, and extraction guidelines.

Think of a form containing both a delivery address and a correspondence address. A field called `address` leaves the requirement unclear. A description specifying which address to return is more useful.

**What it returns:** Defined fields through an extraction model, or full-page text with individual word locations through the separate Raw Text model.

**Integration notes:** The extraction model’s raw-text option returns each page as a string. The Raw Text model also returns individual words and their positions. Choose according to whether your application needs the text alone or the location information required to highlight it.

For field extraction, use the trial to refine the schema and test ambiguous documents. That’s part of the implementation, not just preparation for it.

## 5. Nutrient

Nutrient Data Extraction API is worth considering when your application needs both usable document content and a way to inspect its source. It accepts PDFs, scans, images, and Office files, with separate operations for document parsing and schema-based extraction.

Consider a knowledge base built from technical manuals. Finding a maintenance interval is useful, but the application may also need to show the table and page where it appeared. Nutrient’s spatial output identifies document elements and includes reading order, page references, and bounding boxes that your application can retain alongside indexed content.

**What it returns:** Markdown for full-document ingestion or spatial JSON for typed elements such as paragraphs, tables, formulas, and handwriting. Field extraction returns schema-shaped JSON for specified business fields, with citation metadata that connects values to source evidence where a match is available.

For field-extraction workflows, that metadata does more than record a page number. Match labels such as `fuzzy_match` and `not_found` describe how Nutrient matched a value to the source. Your application can use them to identify results that need checking. Available confidence scores are review signals, not calibrated probabilities or guarantees of correctness.

**Integration notes:** Choose the processing depth for the documents you receive. `text` handles born-digital content without OCR; `structure` provides OCR-based parsing; `understand` adds deeper document analysis; and `agentic` uses additional visual reasoning for difficult content. A batch of ordinary digital reports and a collection of degraded handwritten forms need not use the same configuration.

For mixed intake, the separate classify endpoint scores documents against labels you supply. Your application can use those predictions to select the next processing step. For example, it can send a report to an ingestion workflow and a form to field extraction.

### Evaluate the output before building the integration

Nutrient Studio gives you a browser-based starting point for evaluating extraction. For field-based tasks, its schema generator can draft a JSON Schema from up to five example documents and a description. You can then review and refine it rather than starting with a blank schema. The API also supports saved, versioned extraction configurations.

Nutrient publishes parsing benchmark results on a 200-PDF corpus covering reading order, table structure, and heading hierarchy. These provide supporting evidence for document ingestion, but they aren’t a head-to-head test of the nine hosted services in this article.

### Example: Prepare a scanned report for search with source references

Suppose you’re adding scanned maintenance reports to an internal knowledge base. You want to index their content and let users open the relevant part of the original report when they inspect a search result.

Save a report as `report.pdf` and set `NUTRIENT_API_KEY` to your Data Extraction API key. This request follows the getting started guide’s default configuration: `understand` mode with spatial output. We haven’t run it as part of this comparison.

```bash

curl --fail --silent --show-error \
  "https://api.nutrient.io/extraction/parse" \
  --header "Authorization: Bearer ${NUTRIENT_API_KEY:?Set NUTRIENT_API_KEY first}" \
  --form "file=@report.pdf" \
  --output parsed-report.json

```

The response’s `output.elements` array contains typed document elements. Depending on the content, these can include paragraphs, tables, formulas, and other elements, with page information and bounds. Table elements include cell data rather than only a flattened string.

Your ingestion code can use the content and reading order to form chunks. It can then store the source file name, page reference, and bounds alongside each indexed chunk. That creates a path from a retrieved passage back to the document. The coordinate documentation explains how to scale the returned bounds to a rendered page.

Markdown is also available for ingestion that doesn’t require spatial metadata. In either case, chunking, embeddings, indexing, and retrieval remain part of your application; the API provides the document-parsing stage.

### Need a searchable PDF as well?

Nutrient’s separate Processor API handles document-processing tasks such as assembling scanned page images and applying OCR to produce one searchable PDF. It also provides conversion and other document operations. The Data Extraction API handles OCR and parsing directly, so you don’t need to run Processor OCR before the ingestion example.

For applications that need source review, Nutrient’s viewing SDKs provide another part of the implementation: displaying the document and supporting annotation or editing. Your application connects the extraction results to that viewing experience; the Data Extraction API isn’t itself a complete review interface.

## 6. Adobe PDF Services

Adobe PDF Services is a useful candidate when the application needs to return a document someone can work with, rather than only recognized text.

Its OCR operation creates searchable PDFs. Export PDF supports OCR during conversion to DOCX, making it relevant when a scanned document needs to become a working Word file.

**What it returns:** Searchable PDFs through OCR PDF, editable formats through Export PDF, and structured content — including text, tables, and images — through PDF Extract.

**Integration notes:** The OCR operation offers a choice between preserving the original scan image and cleaning it up before adding a searchable text layer. An archive may favor fidelity; a collection of poor scans may benefit from cleanup.

For Word output, test the file in the editor your users work in. Add a paragraph and change a table cell. A correct-looking preview doesn’t tell you how much repair the document will need during editing.

## 7. Mistral OCR

Mistral OCR is a candidate for document ingestion when your next processing step can use Markdown and document structure. Its table settings support inline Markdown, separate Markdown tables, and HTML tables.

**What it returns:** Page content in Markdown, extracted image and table information, and structural metadata. OCR 4.1 adds paragraph-level bounding boxes, structural labels, and block-level confidence scores. Structured annotations are also available.

**Integration notes:** The Markdown can contain references to extracted images and tables. Use the response’s corresponding fields to resolve them rather than saving only the Markdown string.

For a search or retrieval application, test a long table or a two-column page. Check what arrives in the index, not just whether the API response looks readable.

## 8. OCR.space

OCR.space offers hosted text recognition and searchable-PDF output on supported engines, with a free plan for evaluation and smaller workloads.

**What it returns:** Recognized text in JSON, with optional positional information. Engine 2 supports searchable PDFs; Engine 3 adds Markdown table output but doesn’t currently generate searchable PDFs.

**Integration notes:** The free tier limits files to 1 MB and PDFs to three pages, with a 500-request daily limit per IP address. Its searchable PDFs include a watermark. Engine-specific quotas also apply.

Try your largest ordinary upload early. A small image is enough to confirm that authentication works, but not enough to decide whether the plan fits your workload.

## 9. ABBYY Vantage

ABBYY Vantage provides detailed control over recognition and export. Its OCR Skill settings cover image processing, use of existing PDF text, and the returned document or data format.

**What it returns:** Text and document data in formats, including JSON and XML, along with PDF and Office output. DOCX settings distinguish Editable, which favors usable text flow, from Exact, which prioritizes the original formatting.

**Integration notes:** Vantage uses a skill-and-transaction workflow. Select the processing skill, submit documents, check status, and retrieve results. Include that configuration and job handling in the trial.

For document conversion, test visual fidelity and convenient editing separately.

One product-name detail: ABBYY lists Cloud OCR SDK as available to existing customers and identifies Vantage OCR Skill as its successor. New evaluations should use the current offering rather than historical Cloud OCR SDK packages.

## OCR API pricing: Compare the same job

An OCR page, a document transaction, and a platform credit are different billing units. The prices below describe specific operations or plans, not a cheapest-to-most-expensive ranking.

Dollar amounts are in USD, based on public pricing reviewed on 15 September 2026. Confirm the region, model, volume tier, and billing term before budgeting.

| Provider                        | Pricing reference                                                                                                                                                                                                |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Google Cloud Vision**         | Text Detection and Document Text Detection cost **$1.50 per 1,000 units** in the first paid tier, after the first 1,000 monthly units. Each PDF page counts as an image.                                         |
| **Amazon Textract**             | AWS’s US West (Oregon) first-tier examples list **$1.50 per 1,000 pages** for text detection, **$15** for tables, and **$50** for forms. Selected analysis features can be combined and charged accordingly.     |
| **Azure Document Intelligence** | Per-page pricing depends on the model and region. The free tier includes **500 pages per month**, with restrictions. Check the selected model in Azure’s pricing calculator.                                     |
| **Mindee**                      | Subscription and credit-based pricing. Its pricing FAQ lists **1 credit per extraction page** by default and **1.5 with confidence scoring**, with separate utility rates. Check the model-specific credit cost. |
| **Nutrient**                    | Data Extraction includes **5,000 free credits per month**. Starter is **$59/month for 25,000 credits**, billed monthly. Processor has separate plans, including **$75/month for 1,000 credits**.                 |
| **Adobe PDF Services**          | Transaction-based pricing, with **500 free document transactions per month**. Paid plans are available through sales.                                                                                            |
| **Mistral OCR**                 | OCR 4.1 standard pricing is **$4 per 1,000 OCR pages** or **$5 per 1,000 annotated pages**.                                                                                                                      |
| **OCR.space**                   | Free plan available. **PRO is $30/month; PRO PDF is $60/month**, with different file and page limits.                                                                                                            |
| **ABBYY Vantage**               | Subscription terms determine page allowances, available skills, and features. Request pricing for the intended configuration and volume.                                                                         |

For Nutrient, consumption depends on processing depth. Parsing costs 1.5 credits per page in `structure` mode, 9 in `understand`, and 18 in `agentic`. Schema extraction adds 6 credits per page to the selected parsing mode. That means 5,000 credits aren’t equivalent to 5,000 scanned pages in every configuration.

Processor’s free allowance is separate: 50 monthly credits, with watermarked output unless you enable a paid plan or pay-as-you-go.

Document count matters too. Adobe counts an OCR operation on one 50-page document as one transaction. A set of 50 separate one-page documents consumes 50 transactions, despite having the same total page count.

Give each provider the same workload: number of files, pages per file, required output, and additional operations. Then include the correction work your team expects to perform. A cheaper request isn’t necessarily a cheaper finished document.

## How to test the shortlist

Choose two or three candidates and process the same documents with each. Include routine files alongside difficult ones: rotated scans, small print, repeated labels, long tables, and mixed text-and-image PDFs where those occur in your work.

Keep a few documents aside for checking configuration changes. Otherwise, you risk tuning the integration to examples you already know.

### For search and AI, test retrieval — not just extraction

Run the parsed content through your intended ingestion process. Ask questions whose answers you can check against the original documents.

Does a table value remain associated with its heading and unit? Does a paragraph still make sense after chunking? Can a user find the source behind a retrieved passage?

A readable API response is only the first test. What matters is whether the content remains useful after your application processes it.

### For structured data, check relationships and missing values

A correctly recognized amount is still wrong for your application when it belongs to another table row. Verify line items, labels, dates, and currencies against the source.

Include a document where a requested field is absent. Decide how the application should distinguish missing information from an extraction failure.

Also try reviewing an uncertain result. Check whether the available source references help someone resolve the issue, rather than merely adding metadata to the response.

### For searchable PDFs, search and copy

Open the output in a PDF viewer. Search for names and reference numbers on different pages. Copy a paragraph into a text editor and check its reading order.

Does the selection highlight the visible words? Has the page’s appearance changed? Test both the recognized text and the document your users will receive.

### For editable documents, edit them

Open the DOCX in the intended editor. Add a sentence, change a heading, and edit a table cell.

Do paragraphs behave like paragraphs? Can someone make an ordinary correction without moving text boxes around? A file that looks right until someone types into it hasn’t necessarily met the requirement.

Finally, measure the complete process from upload to usable result, including polling and downloads. Test concurrent requests, file limits, and retries. Before submitting production documents, review processing location, access controls, stored-run behavior, retention, deletion, and any permitted use of submitted data.

## OCR API FAQs

#### Do you need OCR when a PDF already contains text?

Not always. Inspect the existing text first. A processing service may be able to use it rather than recognize the page again. ABBYY Vantage, for example, enables you to configure how its OCR Skill uses an embedded text layer.

Include mixed documents in your test set. The `.pdf` extension alone doesn’t tell you whether every page needs recognition.

#### Does a confidence score mean an extracted value is correct?

Don’t assume that it does. Read the provider’s definition and test the score against your own documents.

For example, Nutrient documents its extraction confidence as a relative, uncalibrated signal, not a probability of correctness. Match information and source references provide additional evidence to inspect, but they don’t replace validation.

## Which OCR API should you choose?

Start with the output your application needs. For text recognition, compare the recognition endpoints. For searchable PDFs or editable documents, test the returned files. For search and AI, check what survives ingestion and whether you can trace retrieved content back to its source.

Then consider the work around that operation. A service that fits your existing infrastructure may be easier to maintain. A service that covers several required document operations may reduce the number of integrations you need.

**Start with Nutrient when your search or AI application needs document structure and a way to inspect the source behind the content it uses.** Markdown supports text ingestion, spatial output supplies document locations, and schema-based extraction handles specified fields with citation metadata. Processor and the viewing SDKs cover complementary document-processing and review requirements.

For deeper extraction-specific comparisons, see the [vendor comparison hub](https://www.nutrient.io/api/data-extraction-api/vs/).

Bring a representative document to the trial, including one that has caused problems before. Follow its content into your index, check the extracted fields, or open the processed file. That will tell you more than a successful response code.

Ready to test with a representative document? [Try your documents in Nutrient Studio](https://dashboard.nutrient.io/data-extraction-api/studio/extract/).
---

## Related pages

- [The business case for accessibility: Five ways it drives enterprise value](/blog/5-ways-accessibility-drives-enterprise-value.md)
- [Accessibility Untangled Why It Matters Guide](/blog/accessibility-untangled-why-it-matters-guide.md)
- [Advanced Techniques For React Native Ui Components](/blog/advanced-techniques-for-react-native-ui-components.md)
- [`vector_store` holds your indexed documents (see the multimodal RAG post](/blog/agentic-rag.md)
- [How to build an AI agent for contract redlining against a compliance playbook](/blog/ai-contract-redlining-compliance-playbook.md)
- [Ai Document Automation Extraction To Action](/blog/ai-document-automation-extraction-to-action.md)
- [Ai Document Workflows Ocr Compliance Heavy Teams](/blog/ai-document-workflows-ocr-compliance-heavy-teams.md)
- [Ai Legal Assistant Document Authoring](/blog/ai-legal-assistant-document-authoring.md)
- [Ai Schema Generator Document Extraction](/blog/ai-schema-generator-document-extraction.md)
- [Amazon Textract Alternatives](/blog/amazon-textract-alternatives.md)
- [Start (clears any prior buffer), navigate the document, then stop into a file.](/blog/android-faster-pdf-rendering.md)
- [Android Pdf Out Of Memory Handling](/blog/android-pdf-out-of-memory-handling.md)
- [Angular File Viewer Pdf Image Office Files](/blog/angular-file-viewer-pdf-image-office-files.md)
- [Approval Workflow Software](/blog/approval-workflow-software.md)
- [Approvals Matrix](/blog/approvals-matrix.md)
- [Apryse To Nutrient Migration](/blog/apryse-to-nutrient-migration.md)
- [Auto Tagging And Document Accessibility In Dotnet Sdk](/blog/auto-tagging-and-document-accessibility-in-dotnet-sdk.md)
- [Simple PII redaction.](/blog/automated-pii-removal.md)
- [Azure Document Intelligence Alternatives](/blog/azure-document-intelligence-alternatives.md)
- [Best Ai Document Workflow Platforms](/blog/best-ai-document-workflow-platforms.md)
- [Best Document Ai Platforms](/blog/best-document-ai-platforms.md)
- [Best Document Classification Platforms](/blog/best-document-classification-platforms.md)
- [Best document parser for RAG: LlamaParse vs. Unstructured vs. Reducto vs. Nutrient](/blog/best-document-parser-llamaparse-unstructured-reducto.md)
- [Best Document Parsing Apis](/blog/best-document-parsing-apis.md)
- [Best Document Viewers](/blog/best-document-viewers.md)
- [Best Llm Document Understanding Platforms](/blog/best-llm-document-understanding-platforms.md)
- [Best Multilingual Ocr Software](/blog/best-multilingual-ocr-software.md)
- [Best Pdf Parsers For Rag](/blog/best-pdf-parsers-for-rag.md)
- [Best Salesforce Document Generation Apps](/blog/best-salesforce-document-generation-apps.md)
- [Best Secure Document Collaboration Platforms](/blog/best-secure-document-collaboration-platforms.md)
- [Bpm Guide](/blog/bpm-guide.md)
- [Bpm Tools](/blog/bpm-tools.md)
- [Build Vs Buy Document Extraction](/blog/build-vs-buy-document-extraction.md)
- [Business Automation](/blog/business-automation.md)
- [Capex Vs Opex](/blog/capex-vs-opex.md)
- [The CEO’s AI playbook: Why decision architecture beats model selection](/blog/ceo-ai-playbook-decision-architecture.md)
- [1. Extract and chunk the PDF.](/blog/chat-with-pdf.md)
- [Complete Guide To Pdfjs](/blog/complete-guide-to-pdfjs.md)
- [Construction Document Data Extraction](/blog/construction-document-data-extraction.md)
- [Convert One Drive Files To Pdf In Sharepoint](/blog/convert-one-drive-files-to-pdf-in-sharepoint.md)
- [Create And Edit Pdfs In Flutter](/blog/create-and-edit-pdfs-in-flutter.md)
- [Create Pdfs With React](/blog/create-pdfs-with-react.md)
- [Creating A Document Scanner With Ocr In Python](/blog/creating-a-document-scanner-with-ocr-in-python.md)
- [Creating And Filling Pdf Forms Programmatically In Javascript](/blog/creating-and-filling-pdf-forms-programmatically-in-javascript.md)
- [The CTO’s AI playbook: Why accountability architecture beats orchestration](/blog/cto-ai-playbook-accountability-architecture.md)
- [Digital Signatures](/blog/digital-signatures.md)
- [Digital Workflow Automation](/blog/digital-workflow-automation.md)
- [Docling Alternatives](/blog/docling-alternatives.md)
- [Document Ai Vs Ocr](/blog/document-ai-vs-ocr.md)
- [Document Authoring Audit Trail](/blog/document-authoring-audit-trail.md)
- [Document Extraction Confidence Scores](/blog/document-extraction-confidence-scores.md)
- [Document Extraction For Underwriting](/blog/document-extraction-for-underwriting.md)
- [Document Viewer](/blog/document-viewer.md)
- [Document Watermarking](/blog/document-watermarking.md)
- [Emerging threats: Your logging system may be an agentic threat vector](/blog/emerging-threats-your-logging-system.md)
- [Extend Alternatives](/blog/extend-alternatives.md)
- [Extract Patient Data On Premises](/blog/extract-patient-data-on-premises.md)
- [app.py](/blog/extract-text-from-pdf-using-python.md)
- [Fillable Pdf](/blog/fillable-pdf.md)
- [Google Document Ai Alternatives](/blog/google-document-ai-alternatives.md)
- [How To Add Digital Signature To Pdf Using React](/blog/how-to-add-digital-signature-to-pdf-using-react.md)
- [How To Build A Dotnet Maui Pdf Viewer](/blog/how-to-build-a-dotnet-maui-pdf-viewer.md)
- [How To Build A Flutter Pdf Viewer](/blog/how-to-build-a-flutter-pdf-viewer.md)
- [or](/blog/how-to-build-a-javascript-pdf-viewer-with-pdfjs.md)
- [or](/blog/how-to-build-a-javascript-pdf-viewer.md)
- [How To Build A Nextjs Pdf Viewer](/blog/how-to-build-a-nextjs-pdf-viewer.md)
- [How To Build A Powerpoint Viewer Using Javascript](/blog/how-to-build-a-powerpoint-viewer-using-javascript.md)
- [Using Yarn](/blog/how-to-build-a-react-excel-viewer.md)
- [How To Build A React Native Pdf Viewer](/blog/how-to-build-a-react-native-pdf-viewer.md)
- [How To Build A React Powerpoint Viewer](/blog/how-to-build-a-react-powerpoint-viewer.md)
- [How To Build A Reactjs File Viewer](/blog/how-to-build-a-reactjs-file-viewer.md)
- [or](/blog/how-to-build-a-reactjs-pdf-viewer-with-react-pdf.md)
- [or](/blog/how-to-build-a-reactjs-pdf-viewer.md)
- [How To Build A Reactjs Viewer With Pdfjs](/blog/how-to-build-a-reactjs-viewer-with-pdfjs.md)
- [How To Build A Vuejs Pdf Viewer With Pdfjs](/blog/how-to-build-a-vuejs-pdf-viewer-with-pdfjs.md)
- [How To Build A Vuejs Pdf Viewer](/blog/how-to-build-a-vuejs-pdf-viewer.md)
- [How To Build An Android Pdf Viewer](/blog/how-to-build-an-android-pdf-viewer.md)
- [How To Build An Angular Pdf Viewer With Ng2 Pdf Viewer](/blog/how-to-build-an-angular-pdf-viewer-with-ng2-pdf-viewer.md)
- [How To Build An Angular Pdf Viewer With Pdfjs](/blog/how-to-build-an-angular-pdf-viewer-with-pdfjs.md)
- [How To Convert Docx To Pdf Using Javascript](/blog/how-to-convert-docx-to-pdf-using-javascript.md)
- [How To Convert Docx To Pdf Using Python](/blog/how-to-convert-docx-to-pdf-using-python.md)
- [How To Convert Html To Pdf Using Html2pdf](/blog/how-to-convert-html-to-pdf-using-html2pdf.md)
- [or](/blog/how-to-convert-html-to-pdf-using-react.md)
- [How To Convert Html To Pdf Using Wkhtmltopdf And Csharp](/blog/how-to-convert-html-to-pdf-using-wkhtmltopdf-and-csharp.md)
- [or](/blog/how-to-convert-html-to-pdf-using-wkhtmltopdf-and-python.md)
- [How To Convert Html To Pptx](/blog/how-to-convert-html-to-pptx.md)
- [Quarterly report](/blog/how-to-convert-pdf-to-markdown-using-python.md)
- [How To Convert Word To Pdf In Nodejs](/blog/how-to-convert-word-to-pdf-in-nodejs.md)
- [or](/blog/how-to-create-a-react-js-signature-pad.md)
- [How To Create Pdfs With React To Pdf](/blog/how-to-create-pdfs-with-react-to-pdf.md)
- [How To Edit Pdfs Using Ios Pdf Library](/blog/how-to-edit-pdfs-using-ios-pdf-library.md)
- [How To Embed A Pdf Viewer In Your Website](/blog/how-to-embed-a-pdf-viewer-in-your-website.md)
- [How To Extract Tables From Pdf And Images](/blog/how-to-extract-tables-from-pdf-and-images.md)
- [How To Generate Pdf From Html With Nodejs](/blog/how-to-generate-pdf-from-html-with-nodejs.md)
- [base_url tells WeasyPrint where to resolve relative asset paths](/blog/how-to-generate-pdf-reports-from-html-in-python.md)
- [How To Merge Pdfs Using Javascript](/blog/how-to-merge-pdfs-using-javascript.md)
- [How To Ocr Pdfs In Linux](/blog/how-to-ocr-pdfs-in-linux.md)
- [How To Print Pdf In Csharp](/blog/how-to-print-pdf-in-csharp.md)
- [How To Programmatically Create And Fill Pdf Form In Angular](/blog/how-to-programmatically-create-and-fill-pdf-form-in-angular.md)
- [Open an image.](/blog/how-to-use-tesseract-ocr-in-python.md)
- [From an HTML string.](/blog/html-in-pdf-format.md)
- [Html To Pdf In Javascript](/blog/html-to-pdf-in-javascript.md)
- [Intelligent Data Extraction](/blog/intelligent-data-extraction.md)
- [Invoice Approval Software](/blog/invoice-approval-software.md)
- [Javascript Document Editor](/blog/javascript-document-editor.md)
- [Javascript Pdf Editors](/blog/javascript-pdf-editors.md)
- [Javascript Pdf Libraries](/blog/javascript-pdf-libraries.md)
- [Landing Ai Alternatives](/blog/landing-ai-alternatives.md)
- [Langextract Vs Llamaindex Extraction Comparison](/blog/langextract-vs-llamaindex-extraction-comparison.md)
- [Linearized Pdf](/blog/linearized-pdf.md)
- [Uses OpenAI by default — set OPENAI_API_KEY.](/blog/llamaindex-vs-langchain-rag.md)
- [Llamaindex Vs Langchain Vs Haystack](/blog/llamaindex-vs-langchain-vs-haystack.md)
- [Llamaindex Workflows Vs Langgraph](/blog/llamaindex-workflows-vs-langgraph.md)
- [Llamaparse Alternatives](/blog/llamaparse-alternatives.md)
- [Low Code No Code Document Integrations](/blog/low-code-no-code-document-integrations.md)
- [Material Requisition](/blog/material-requisition.md)
- [or](/blog/merge-pdfs.md)
- [Swift Package Manager](/blog/mobile-pdf-sdk.md)
- [`elements` come from your document parser — each has a type and content.](/blog/multimodal-rag.md)
- [Nutrient Flutter 6 Bindings Api](/blog/nutrient-flutter-6-bindings-api.md)
- [Nutrient Flutter Bindings Architecture](/blog/nutrient-flutter-bindings-architecture.md)
- [Nutrient Vs Conga Composer](/blog/nutrient-vs-conga-composer.md)
- [Online Document Viewer](/blog/online-document-viewer.md)
- [Open Pdf In Your Web App](/blog/open-pdf-in-your-web-app.md)
- [PDF accessibility for developers: Meeting WCAG 2.2, Section 508, and PDF/UA with an SDK](/blog/pdf-accessibility.md)
- [Extract data from PDF files: A developer guide to structured data from PDFs and scans](/blog/pdf-data-extraction-developer-guide.md)
- [Pdf Extraction Benchmark Opendataloader Bench](/blog/pdf-extraction-benchmark-opendataloader-bench.md)
- [Pdf Extraction Document Case Studies](/blog/pdf-extraction-document-case-studies.md)
- [Pdf Page Labels](/blog/pdf-page-labels.md)
- [Pdf Sdk Compliance Security Checklist](/blog/pdf-sdk-compliance-security-checklist.md)
- [Pdf Sdk Performance Benchmark](/blog/pdf-sdk-performance-benchmark.md)
- [Pdf Ua Compliance Guide](/blog/pdf-ua-compliance-guide.md)
- [Pdf Ua Validation](/blog/pdf-ua-validation.md)
- [Pdfjs Accessibility Structtree Printing](/blog/pdfjs-accessibility-structtree-printing.md)
- [Pdfjs Advanced Loading Streaming Workers](/blog/pdfjs-advanced-loading-streaming-workers.md)
- [Pdfjs Annotation Editor Layer](/blog/pdfjs-annotation-editor-layer.md)
- [Pdfjs Area Annotations Canvas Capture](/blog/pdfjs-area-annotations-canvas-capture.md)
- [Pdfjs Coordinate Systems Pdf To Screen](/blog/pdfjs-coordinate-systems-pdf-to-screen.md)
- [Pdfjs Document Outline Bookmarks Metadata](/blog/pdfjs-document-outline-bookmarks-metadata.md)
- [Pdfjs Eventbus Guide](/blog/pdfjs-eventbus-guide.md)
- [macOS](/blog/pdfjs-file-format-conversion-to-pdf.md)
- [macOS](/blog/pdfjs-generating-pdf-thumbnails-pdf2pic.md)
- [Pdfjs Limitations Commercial Upgrade](/blog/pdfjs-limitations-commercial-upgrade.md)
- [Pdfjs Native Annotation Layer Forms](/blog/pdfjs-native-annotation-layer-forms.md)
- [Pdfjs Navigation Zoom Rotation](/blog/pdfjs-navigation-zoom-rotation.md)
- [Pdfjs Pdf Page Manipulation Pdf Lib](/blog/pdfjs-pdf-page-manipulation-pdf-lib.md)
- [Pdfjs React Viewer Setup](/blog/pdfjs-react-viewer-setup.md)
- [Pdfjs Rendering Overlays React Portals](/blog/pdfjs-rendering-overlays-react-portals.md)
- [Pdfjs Server Side Text Extraction](/blog/pdfjs-server-side-text-extraction.md)
- [Pdfjs Sticky Note Annotations](/blog/pdfjs-sticky-note-annotations.md)
- [Pdfjs Text Highlight Annotations](/blog/pdfjs-text-highlight-annotations.md)
- [Pdfjs Text Search Pdffindcontroller](/blog/pdfjs-text-search-pdffindcontroller.md)
- [Pdfjs Thumbnail Sidebar](/blog/pdfjs-thumbnail-sidebar.md)
- [People Process Tools](/blog/people-process-tools.md)
- [Process Flows](/blog/process-flows.md)
- [React Native Pdf Annotation](/blog/react-native-pdf-annotation.md)
- [React Pdf Annotation Layer Forms](/blog/react-pdf-annotation-layer-forms.md)
- [React Pdf Custom Rendering Hooks](/blog/react-pdf-custom-rendering-hooks.md)
- [Using Yarn](/blog/react-pdf-editor.md)
- [React Pdf Loading States Errors Passwords](/blog/react-pdf-loading-states-errors-passwords.md)
- [React Pdf Non Latin Fonts Special Pdfs](/blog/react-pdf-non-latin-fonts-special-pdfs.md)
- [React Pdf Outline Table Of Contents](/blog/react-pdf-outline-table-of-contents.md)
- [React Pdf Performance Optimization](/blog/react-pdf-performance-optimization.md)
- [React Pdf Setup Basic Rendering](/blog/react-pdf-setup-basic-rendering.md)
- [React Pdf Text Layer Custom Renderer](/blog/react-pdf-text-layer-custom-renderer.md)
- [React Pdf Thumbnails Page Navigation](/blog/react-pdf-thumbnails-page-navigation.md)
- [Reducto Alternatives](/blog/reducto-alternatives.md)
- [Requisition System](/blog/requisition-system.md)
- [labels.py](/blog/route-documents-automatically-classify-api.md)
- [or](/blog/sample-blog-updated.md)
- [Sdk Product Updates Q2 2026](/blog/sdk-product-updates-q2-2026.md)
- [System Of Record Vs Source Of Truth](/blog/system-of-record-vs-source-of-truth.md)
- [Add DWS MCP Server to your Claude Code project.](/blog/teaching-llms-to-read-pdfs.md)
- [Open an image file.](/blog/tesseract-python-guide.md)
- [The Six Best Pdf Generator Apis](/blog/the-six-best-pdf-generator-apis.md)
- [Define the HTML part of the document.](/blog/top-10-ways-to-generate-pdfs-in-python.md)
- [Top 5 Javascript Pdf Viewers](/blog/top-5-javascript-pdf-viewers.md)
- [or](/blog/top-js-pdf-libraries.md)
- [Top Ten Ways To Convert Html To Pdf](/blog/top-ten-ways-to-convert-html-to-pdf.md)
- [Unstructured Alternatives](/blog/unstructured-alternatives.md)
- [Vector Pdf](/blog/vector-pdf.md)
- [Wcag2 Accessibility Requirements Documents](/blog/wcag2-accessibility-requirements-documents.md)
- [Web Sdk Is Now Headless](/blog/web-sdk-is-now-headless.md)
- [What Are Annotations](/blog/what-are-annotations.md)
- [What Is A Vpat](/blog/what-is-a-vpat.md)
- [What Is Business Logic](/blog/what-is-business-logic.md)
- [What Is Document Processing](/blog/what-is-document-processing.md)
- [What Is Intelligent Document Processing](/blog/what-is-intelligent-document-processing.md)
- [What Is Ocr Invoice Processing](/blog/what-is-ocr-invoice-processing.md)
- [What Is Pdf Ua](/blog/what-is-pdf-ua.md)
- [Why Pdfium Is A Trusted Platform For Pdf Rendering](/blog/why-pdfium-is-a-trusted-platform-for-pdf-rendering.md)
- [Why Your Ai Agent Hallucinates Pdf Table Data](/blog/why-your-ai-agent-hallucinates-pdf-table-data.md)

