Procurement & Commerce

Extract Data from Purchase Requisition PDFs — Any Company's Internal PR Form into Structured Excel, No Templates

A purchase requisition is an internal document — and internal documents have the least standardization of all. Unlike invoices or purchase orders that follow industry conventions, every company designs its own requisition form from scratch. Template-based OCR needs a new template for every company's internal layout. Column-name extraction reads by field meaning — so "Requested By," "Department," and "Approved By" are found anywhere on any company's form, in 5 seconds per page.

5–10s per page · Up to 99% accuracy on printed text · No per-company template setup

PDF / JPG / PNG
XLSX / CSV / JSON
Any Internal Form Layout

What You Can Extract from a Purchase Requisition

Type the column names you need — the AI finds these values across any internal PR form by understanding field meaning, not pixel coordinates. The same column list works for Engineering's SAP-generated form, Marketing's Excel-printed sheet, and Facilities' scanned paper request.

Header & Approval Information

PR Number
Request Date
Requester Name
Department
Cost Center
Approved By
Approval Date
Delivery Location

Line Item Fields

Item Description
Quantity
Estimated Unit Cost
Line Total
Vendor (if specified)
Justification

This is not a prescriptive list — type any field name your purchase requisition forms contain. The AI reads the document to find what you ask for.

Internal Documents Have the Least Standardization — and That Breaks Template-Based OCR

An invoice follows conventions that are decades old — amounts on the right, vendor name at the top, dates near the invoice number. A purchase requisition is an internal document that each company designs from scratch. Template-based OCR, which relies on fixed zones and label matching, needs a new template for every company's form. Column-name extraction reads by semantic meaning, not layout — so it works across all of them without per-company setup.

The Problem

01 No two companies use the same purchase requisition layout

Unlike invoices, which follow the same structural conventions whether they come from Microsoft or a freelance consultant, purchase requisition forms are entirely internal — designed to fit each organization's approval workflow, ERP integration, and budgeting process. One company puts the PR Number in the top-right header with a barcode. Another labels it "Requisition ID" in the left margin. A third calls it "PR#" and places it inside the line-item table. Template-based OCR tools require a separate zone definition for each variant. If your organization processes purchase requisitions from acquired subsidiaries, different departments, or legacy paper-based offices, you face template configuration for every variant — and ongoing maintenance when forms change.

02 Field labels vary wildly across internal forms — "Requested By" = "Requester" = "Initiated By" = "Employee Name"

External documents like invoices standardize field names because they cross organizational boundaries — suppliers want to be paid, so they use recognizable labels. Internal forms have no such pressure. One department's form says "Requested By," another says "Requester," a third says "Employee Name." Template-based tools that match by exact label text fail on variants. A tool configured to find "Requested By" will return nothing on a form that says "Requester" — even though both fields contain the same data. As procurement teams on Reddit consistently describe, internal PR form inconsistency across departments is a persistent operational friction point — not a one-off edge case.

03 Header fields and line items must be extracted together — but template tools process them separately

A purchase requisition has two layers: header fields (PR Number, Department, Approved By, Delivery Location) and line items (Item Description, Quantity, Estimated Unit Cost, Line Total, Justification). To produce a usable spreadsheet, header values must repeat on every line-item row. Template-based tools typically configure each zone independently — header extraction and table extraction are separate configurations. Aligning them into one output with repeated header fields requires post-processing in Excel, which adds a manual step between extraction and ERP import.

How Column-Name Extraction Handles Internal Forms

01 You type "PR Number" once — the AI finds it by meaning, not by position

The core mechanism of ImageToTable.ai, called Custom Column Extraction, works differently from template-based OCR. Instead of drawing zones around each field on a specific form, you type the field names you want: "PR Number," "Request Date," "Requester Name," "Department," "Cost Center." The AI reads the entire document and locates each value by understanding what it means in context — a string of characters near the top of the form in the format "PR-2024-####" is a PR number, whether it appears in the right corner, the left margin, or inside a header block with a barcode. The same column list works for a subsidiary's Oracle-generated PR form, a legacy department's scanned paper sheet, and a new acquisition's SAP output — all in one batch upload.

02 Semantic extraction matches intent, not exact label text

When you add a column called "Requester Name," the AI does not search for the literal string "Requester Name" on the page. It understands the semantic role: a person's name in the context of who requested the purchase. The same column extracts "Requested By: Jane Smith" on one form, "Requester: J. Smith" on another, and "Employee Name: Jane Smith" on a third — because the AI recognizes all three as the same field, expressed differently. This is the critical difference from template-based extraction: it reads like a person who understands the document's purpose, not a scanner matching label strings.

03 One column list produces header + line items in a single, ERP-ready output

Define your columns to include both header fields and line-item fields in a single list. The AI extracts header values once and repeats them on every line-item row. A requisition with 5 line items produces 5 rows — each carrying the PR Number, Department, Approved By, and Delivery Location. SAP users frequently report that the gap between PR form data and ERP import formatting is where most manual rework happens — column-name extraction closes this gap by producing flattened, repeated-header output directly.

From Mixed Department PR Forms to a Single Consolidated Spreadsheet

If you receive purchase requisitions from multiple departments — each using a different internal form — here is what the workflow looks like from upload to ERP-ready output.

1

Upload purchase requisitions — one or dozens, any internal format

Drop in PDFs, scanned forms, or photographed paper PRs from any department. Engineering uses a machine-generated SAP PDF with barcodes. Marketing submits an Excel printout with handwritten notes. Facilities sends a scanned internal carbon-copy form. All three go into the same batch upload. The tool accepts PDF, JPG, PNG, and WebP — formats can be mixed freely within one upload. For collecting PRs from field offices or remote departments, generate a Collection Link: a shareable URL where anyone can upload requisition forms to your processing queue by entering a short verification code — no registration required for the uploader.

2

Type the column names once — they work across every form

Enter the fields you need: "PR Number," "Request Date," "Requester Name," "Department," "Cost Center," "Vendor," "Item Description," "Quantity," "Estimated Unit Cost," "Line Total," "Justification," "Approved By," "Approval Date," "Delivery Location." The same column list applies to the SAP PR from Engineering, the Excel form from Marketing, and the scanned paper from Facilities. For automated cost validation, use a Computed Column like "Line Total Check (Quantity × Estimated Unit Cost)" — the AI compares the printed line total to the computed value and outputs any discrepancy. If your PR forms do not consistently include a Vendor field, use an Inferred Column like "Vendor Suggestion (options: based on Item Description and historical orders)" to have the AI suggest a vendor from context. After logging in, save your column configuration as a template for recurring use every procurement cycle.

3

Download the consolidated Excel — each line item is one row

Every line item becomes one row with header fields repeated. A requisition with 6 line items produces 6 rows — each carrying PR Number, Department, Approved By, and Delivery Location. A batch of 40 requisitions from 5 departments, averaging 4 items each, produces ~160 rows in a single Excel file — all correctly associated with source departments and approval status. Export as XLSX, CSV, or JSON. The output is structured for direct import into SAP, Oracle, Coupa, NetSuite, or any ERP that expects flattened line-item records with repeated header context. Google Sheets users can use the sidebar add-on to extract results directly into an active sheet without leaving the spreadsheet.

When It Works Best — and When to Review Results

When it works best

Machine-generated PDFs from ERP systems (SAP, Oracle, Coupa, Workday). Digitally created PR forms with clear field labels, barcodes, and structured line-item tables extract with the highest accuracy. Header fields, approval information, and cost center assignments map cleanly to your column names.

Mixed-department batches with different internal form layouts. The same column definition extracts from Engineering's SAP form, Marketing's Excel sheet, and Operations' scanned paper — all in one batch upload. Because extraction is semantic rather than positional, format differences across departments do not require separate configurations.

PRs with clear approval signatures and date stamps. Printed approval signatures, date stamps, and authorization blocks extract reliably. The AI identifies the name associated with an approval block and maps it to "Approved By," regardless of whether the approval appears as a typed name, a printed signature line, or a date-stamped authorization.

Worth a spot-check

Multi-level approval chains with hierarchical routing. When a PR passes through multiple approval tiers (Manager → Director → VP → Procurement), the AI extracts each approver's name and date. However, the hierarchical order — who approved first vs. who countersigned — may not be preserved in the output structure. Review multi-level approval chains if routing order matters for compliance.

Handwritten line items on scanned internal carbon-copy forms. Scanned paper PRs where line-item tables are filled in by hand — particularly when handwriting is cramped, cursive, or written over printed grid lines — may have reduced accuracy on item descriptions and quantities. Printed header fields on the same form extract normally. Spot-check handwritten line-item values before batch import.

The tool extracts what is on the page — it does not validate against your budget or vendor list. If a requester writes an inflated estimated unit cost or references a vendor not in your approved supplier list, the tool extracts those values as-is. Budget validation, vendor compliance, and approval-routing verification remain review steps your procurement team performs after extraction. The tool makes the data accessible; it does not enforce procurement policy.

Frequently Asked Questions

How does the tool handle purchase requisition forms from different departments when each department uses a different layout?

Purchase requisitions are internal documents — every company, and often every department within a company, designs its own form. Column-name extraction solves this by reading field meaning, not position. Type "PR Number," "Requested By," "Department," "Line Total" once, and the AI locates each value anywhere on the page by understanding what it means. The same column list works across Engineering's SAP-generated PR form, Marketing's Excel-printed sheet, and Facilities' scanned paper request — no per-department template configuration required. Upload them all in one batch and get one consolidated Excel file where each row is one line item with the correct department from its source form.

Can I extract both the header fields and line items from a purchase requisition in one pass?

Yes. Define columns for both header-level fields (PR Number, Request Date, Requester Name, Department, Cost Center, Approved By, Approval Date, Delivery Location) and line-item fields (Item Description, Quantity, Estimated Unit Cost, Line Total, Justification, Vendor) in the same column list. The AI extracts header values once and repeats them on every line-item row. A requisition with 8 line items produces 8 output rows — each carrying the PR Number, Department, and all other header context. For ERP import into SAP, Oracle, or Coupa where flattened line-item records are expected, this output format requires zero post-processing.

Can the tool extract data from scanned, handwritten purchase requisition forms?

Yes. The VLM (Vision Large Model) reads the document visually rather than relying on a searchable text layer. Scanned internal paper forms — including those with handwritten entries in item description and quantity fields, pen marks, and approval signatures — are processed the same way. For best accuracy on heavily handwritten forms, scan at 200+ dpi. Printed text extracts with up to 99% accuracy; handwritten fields may be slightly lower and are worth a quick review before ERP import.

Can I batch process PRs from multiple departments and get one consolidated Excel file?

Yes. Upload PRs from any number of departments — Engineering, Marketing, Operations, Facilities — each using a different internal form template, in a single batch. The same column definition extracts from all of them. The output is one merged Excel file where each row is one line item, with department and approval information filled in on every row. For recurring procurement cycles, save your column configuration as a template after logging in and reuse it every period. For collecting PRs from field offices or remote departments without access to your corporate system, generate a Collection Link — a shareable URL where anyone can upload requisition forms to your processing queue by entering a short verification code, with no account required on the uploader's end.

What if a purchase requisition does not have a Vendor field specified — can the AI help identify a supplier?

The AI extracts what is on the page — it does not independently source vendors. If the PR form does not include a Vendor field, add an Inferred Column like "Vendor Suggestion (based on Item Description and historical purchase patterns)" to have the AI read the item description and context and suggest a likely vendor. However, this is an inference, not a confirmed extraction — the suggested vendor should be reviewed by your procurement team before a purchase order is issued. If a specific vendor is critical for compliance, ensure your PR form template includes a mandatory Vendor field.

📮 contact email: [email protected]