LintPDF LintPDF

Importing from PitStop, callas & Acrobat

Feed vendor preflight reports straight into LintPDF — one page, three vendors, same flow.

Importing from PitStop, callas & Acrobat

Enfocus PitStop, callas pdfToolbox, and Adobe Acrobat all emit preflight reports LintPDF parses natively. Submit the PDF alongside the vendor report and the findings show up in the viewer, reports, and share links with severity, page numbers, and geometry intact.

The three flows are almost identical — this page covers all of them in one place.

Enfocus PitStop

PitStop Server and PitStop Pro emit XML reports.

Export from PitStop

PitStop Pro (Acrobat plugin):

  1. Run preflight against your profile.
  2. With the results panel open, choose Reports → Save as XML….
  3. LintPDF accepts the PitStop XML schema — no transformation needed.

PitStop Server (hot folder / CLI):

Configure the hot folder’s reporting action to emit XML:

  • Report type: XML
  • Report placement: success and error folders
  • Include geometry: yes (gives LintPDF the bounding boxes)

CLI users can pipe PitStop Server’s stdout XML directly.

Submit

curl -X POST https://api.lintpdf.com/api/v1/jobs \
  -H "Authorization: Bearer lpdf_live_..." \
  -F file=@brochure.pdf \
  -F external_report=@pitstop-report.xml \
  -F preflight_source=external \
  -F external_format=pitstop_xml \
  -F profile_id=lintpdf-default

Or omit external_format and let auto-detect pick it.

Mapping

PitStop elementLintPDF fieldNotes
<Error> / <Warning> / <Info> / <Hit>One finding per elementAll four element types are recognised.
<CheckID>inspection_idPreserved as pitstop:<check-id>.
<Description>messageText content.
<Page>page_num1-indexed.
<BBox>bboxSpace- or comma-separated x0 y0 x1 y1 in PDF points.
<Category>categoryGrouping.
Element nameseverityErrorerror, Warningwarning, Info/Hitadvisory.
<Object>object_id / object_typePDF resource name + classifier.
Header <Profile>source.profileWhich PitStop profile ran.
Header <PitStopVersion>source.versionPitStop build.

PitStop limitations

  • Groups — nested <Group> elements are flattened into individual findings; the group label is preserved as category.
  • Hit vs Error taxonomy<Hit> maps to advisory by default; override with a custom mapping if your shop uses Hits for blocking issues.
  • Non-standard units — LintPDF assumes PDF points. If bboxes look wildly misaligned, validate the profile’s unit setting.

A trimmed but realistic sample: /examples/pitstop-report.xml.

callas pdfToolbox

pdfToolbox Server and Desktop emit reports in both JSON and XML — pick whichever your downstream tooling already handles.

Export from pdfToolbox

Desktop:

  1. Run preflight.
  2. In the results pane, Reports → Save report as JSON (or XML).

Server (CLI / hot folder):

pdfToolbox --profile=Sheetfed.kfpx \
  --report-json=report.json \
  brochure.pdf

For XML, substitute --report-xml=report.xml. Ensure the profile emits geometry — in pdfToolbox Server’s Web UI, check Report Options → Include object geometry.

Submit

JSON variant:

curl -X POST https://api.lintpdf.com/api/v1/jobs \
  -H "Authorization: Bearer lpdf_live_..." \
  -F file=@brochure.pdf \
  -F external_report=@callas-report.json \
  -F preflight_source=external \
  -F external_format=callas_json \
  -F profile_id=lintpdf-default

XML variant: swap @callas-report.json for @callas-report.xml and callas_json for callas_xml. Or omit external_format for auto-detect (recognises JSON by its top-level profile/hits keys and XML by its <Report> root).

Mapping (both variants)

callas fieldLintPDF fieldNotes
hits[].severity / <Hit severity="...">severityMaps Error/Warning/Info to error/warning/advisory.
hits[].message / <Hit><Message>messageFull text.
hits[].page / <Hit><Page>page_num1-indexed.
hits[].geometry.bbox / <Hit><Geometry>bbox[x0, y0, x1, y1] PDF points.
hits[].checkId / <Hit id="...">inspection_idPreserved as callas:<id>.
hits[].object / <Hit><Object>object_id + object_typeResource + classifier.
hits[].categorycategoryGrouping.
profile / <Profile>source.profileProfile name.
version / <PdfToolboxVersion>source.versionBuild string.

callas limitations

  • Fixups — reports that include fixups (auto-corrections applied) are parsed, but only the reported hits surface. LintPDF doesn’t modify the PDF; see our detection-only philosophy.
  • Profile-specific categories — callas’ category taxonomy varies by profile. The category string is preserved verbatim; expect vocabulary drift if you roll up across multiple profiles.
  • Non-English severity tokens — German / Japanese profiles need a custom mapping with an explicit severity_map.

Samples: /examples/callas-report.json, /examples/callas-report.xml.

Adobe Acrobat Preflight

Acrobat Pro’s Preflight panel exports XML via its native schema.

Export from Acrobat

  1. Open Tools → Print Production → Preflight.
  2. Run the profile against your PDF.
  3. In the results pane, Report → Create XML Report… (button label varies slightly between versions).
  4. Save to disk. LintPDF accepts the native Acrobat Preflight XML schema.

For scripted batches, drive Acrobat via Action Wizard or JavaScript — preflight.execute({ nIndex: profileIndex, bForceReport: true, cOutputPath: "report.xml" }).

Submit

curl -X POST https://api.lintpdf.com/api/v1/jobs \
  -H "Authorization: Bearer lpdf_live_..." \
  -F file=@brochure.pdf \
  -F external_report=@acrobat-preflight.xml \
  -F preflight_source=external \
  -F external_format=acrobat_xml \
  -F profile_id=lintpdf-default

Or omit external_format for auto-detect.

Mapping

Acrobat’s XML uses <Problem> elements inside a <Summary> document.

Acrobat elementLintPDF fieldNotes
<Problem severity="...">severityError/Warning/Info mapped to error/warning/advisory.
<Problem><Description>messageFull text including dynamic tokens resolved by Acrobat.
<Problem><Page>page_num1-indexed.
<Problem><BBox>bboxPDF points.
<Problem><CheckID>inspection_idPreserved as acrobat:<check-id>.
<Summary><ProfileName>source.profileThe profile that ran.
<Summary><AcrobatVersion>source.versionAcrobat build.

Acrobat limitations

  • Pinned problems — Acrobat’s “pinned” concept (attaching a comment to a finding) has no LintPDF equivalent. Pinned metadata is preserved in the finding’s details block but isn’t rendered differently.
  • Custom check scripts — profiles that include JavaScript rule scripts emit findings with the script-defined CheckID. Preserved verbatim; disambiguate with a category prefix in Acrobat if they collide.
  • DC vs 2017/2020 — Acrobat versions pre-2017 emit a different, less structured XML. Use a custom mapping keyed to //Finding (or whatever your version’s root element is).

Sample: /examples/acrobat-report.xml.

Custom mappings for anything exotic

If your vendor or profile variant isn’t covered by the three built-in parsers — a renamed element, a non-English severity token, an exotic nested structure — build a Custom import mapping. Point item_selector at //Hit / //Error / //Problem as appropriate and map each <CheckID> / <Description> / <Page> / <BBox> element explicitly.