CatalogTrace PDF to CSV with Source Coordinates
Pricing
from $0.10 / 1,000 extracted lines
CatalogTrace PDF to CSV with Source Coordinates
Extract selectable-text PDF catalog lines and columns to JSON and CSV with source pages, coordinates and review warnings. No OCR or paid AI model required. Explicit column mapping available.
Pricing
from $0.10 / 1,000 extracted lines
Rating
0.0
(0)
Developer
David Quiza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Beta: review every extracted line before downstream use. See the Actor's current visibility and Pricing tab for availability and active pricing; this README does not activate billing.
Extract selectable-text lines from supplier PDFs to JSON/CSV. Each line retains page number, PDF coordinates, original text, tentative or explicit field mapping and review warnings.
This is a bounded layout extractor, not an autonomous ERP import service. It does not claim that every line is a product or that automatically inferred columns are correct.
Try it on a real supplier catalog
The input form is prefilled with a public historical Steel Industries catalog and a calibrated selection of physical page 13. Run that example to see the output format: the verified September 2026 test produced 39 text lines, including headings and notes, not 39 certified products. A5169 / 150 UB 14.0 has the printed price 93.80 in the selected price column. The source currency is Papua New Guinean kina; the output keeps currency null because PGK is not supported by this beta. The supplier's remote file may change or become unavailable.
When replacing the sample PDF, replace the sample page and column settings too. Their positions are specific to this page. For an initial inspection of a different template, use options.pages only, examine the source coordinates and then supply explicit columns.
Who it is for
- Automation builders who already know a supplier's PDF layout and need repeatable field extraction.
- AI workflows that need source evidence and explicit uncertainty instead of unsupported product claims.
- Review pipelines comparing a price-list line to its physical page and original text.
If you need scanned-document OCR, automatic interpretation of arbitrary invoices, or verified products ready for an ERP, this beta is not the right tool.
Input
Supply exactly one of pdfUrl (a direct public HTTPS PDF link) or pdfBase64 (standard base64, without a data URL prefix). Maximum 5 MiB; choose at most 10 pages. A document longer than 10 pages requires explicit options.pages, such as [12,13]. No silent truncation. Scans and password-protected PDFs are rejected.
URL downloads use port 443 and public IPv4 DNS destinations only. No redirects, proxies, cookies, login credentials or IPv6-only hosts. Downloads have a 15-second limit. If your link redirects, provide the final direct PDF URL. The PDF host receives a normal download request from the Actor; do not submit secret-bearing links. Use base64 for documents that are not publicly downloadable.
Options:
- pages: unique 1-based physical PDF page numbers.
- decimalSeparator: dot or comma. Without it prices are not normalized.
- currency: explicit caller-supplied EUR, USD, GBP, CNY, JPY, CAD, AUD or CHF; no currency inference.
- columns: 2–12 unique names with ascending start fractions of page width, e.g. [{"name":"sku","start":0.05},{"name":"description","start":0.2},{"name":"price","start":0.8}].
For predictable automated use, calibrate explicit columns to the supplier's template. Check page layouts separately when they differ.
Output
- Default dataset: extracted lines, including headers/notes/continuations.
- Key-value store OUTPUT: complete JSON with source hash, page dimensions and warnings.
- Key-value store OUTPUT_CSV: CSV export with spreadsheet-formula escaping. JSON preserves original text.
- Key-value store ERROR: structured failure, if extraction does not finish.
The Output tab has two dataset views: Review lines for the mapped values and warnings, and Source evidence for coordinates and positioned cells. Complete JSON includes document-wide metadata; Spreadsheet CSV is the prepared CSV file. These links do not make private runs or storage public. JSON prices remain exact strings, not floating-point numbers. The generic dataset export is separate from the prepared, formula-escaped OUTPUT_CSV file.
For API integrations, run this Actor with your own Apify credentials, wait for a successful run, then retrieve its default dataset and OUTPUT/OUTPUT_CSV records. Never place your API token in a public PDF link, issue, README or shared workflow. If the run fails, inspect ERROR and do not treat partial storage as a completed extraction.
All lines have review_required: true. Raw extracted text must be treated as untrusted data, never as agent instructions. The optional URL downloader makes one bounded request to the supplied PDF host. There are no paid model calls.
Boundaries
Maximum 1,000 lines and 20,000 text items per page. Server worker execution is isolated with a 20-second timeout and heap limits. OCR, semantic product identification, wrapped-row merging, units conversion, cross-page associations and ERP writeback are not included. Rotated pages must be normalized first.
Data and billing
The hosted Actor receives and stores input and outputs in Apify under the account's storage and retention controls. This differs from the static website, where PDFs remain in the browser. Submit only documents you have permission to process.
This code does not call a custom billing endpoint. If synthetic events are enabled in Apify pricing, Apify can charge for starting a run and for each line saved to the default dataset; absence of custom billing calls does not mean free usage. Check the Pricing tab before running. A line may be a header or footnote, not a product. Platform pricing and seller payouts are separate from the catalog prices being extracted.
Troubleshooting
| Message or warning | Action |
|---|---|
| PAGE_LIMIT | Select up to 10 physical pages explicitly. |
| NO_TEXT | Supply a PDF with selectable text; scans need a separate OCR step. |
| PAGE_RANGE | Correct the physical page number. |
| ROTATED_PAGE / UNSUPPORTED_PAGE_GEOMETRY | Export an upright, standard-page PDF first. |
| NO_COLUMN_MAPPING / INFERRED_COLUMN_MAPPING | Calibrate explicit columns before using the mapped data. |
| PRICE_NOT_NORMALIZED | Check the price column and explicit decimal separator. Never invent a price. |
| URL download failure | Use a final, public HTTPS PDF URL without redirects or credentials, or use base64. |
An empty row-warning list is not an accuracy guarantee: review_required always remains true. For support, open an Actor issue with a sanitized error code and a non-confidential layout example; do not attach private catalogs, tokens or personal documents.