{
  "about": "An independent index of PDF and document tools. Every value is either verified or explicitly unknown; null means we did not establish it.",
  "site": "https://dialegein.com",
  "generatedAt": "2026-10-22T11:55:17.204Z",
  "licence": "CC BY 4.0 - attribution required, which means a link back to https://dialegein.com",
  "attribution": "Dialegein (https://dialegein.com)",
  "caveats": [
    "null means \"not established\", not \"no\".",
    "redaction describes what the vendor documents, except where the record says the verdict was tested on a canary document. claimsVerifiedByUs counts claims verified from the vendor page, which is not the same thing as a test.",
    "locality is what our own probe observed, on one tool on one surface, and says so where it has a verdict. A verdict of \"mixed\" or \"self_hosted\" is a reading of the documented editions rather than a probe, and the detail names which editions put it there.",
    "processesLocally is the record level claim about the surface the record is mainly about. Where locality says mixed, read the editions in the same row for the parts, because the single boolean cannot carry them.",
    "availability is one HTTP request from one machine at one moment. A refusal is usually bot protection and is not an outage.",
    "editions carries the per edition processing and licensing the profile shows, so a product with more than one edition is not flattened into one answer here. jobScopes names the jobs whose name is broader than the capability behind it."
  ],
  "count": 155,
  "tools": [
    {
      "slug": "abbyy-finereader-pdf",
      "name": "ABBYY FineReader PDF",
      "tagline": "Paid desktop PDF editor and OCR suite strong on scanned documents.",
      "websiteUrl": "https://pdf.abbyy.com/",
      "summary": "FineReader PDF is ABBYY's installed document application for editing, organising, converting, comparing, protecting and signing PDFs, built around ABBYY's OCR engine. It is strongest on scanned and image-based documents: recognising text and tables, making scans searchable and editable, and exporting to Word, Excel and other formats. A Windows-only Corporate tier adds document comparison, Hot Folder automation and Screenshot Reader.",
      "bestFor": "Professionals and organisations working with large volumes of scanned or paper documents who want OCR and PDF tooling installed on their own machines rather than run through a cloud service.",
      "watchOutFor": "There is no free tier, only a seven-day trial, and the Mac edition is reduced - password protection is only available after PDF creation, and PDFs can only be created from scans or paper. The evaluation routes are edition-specific rather than one seven-day trial: individual Windows and Mac trials document seven days and 100 conversion pages, business trials document thirty days, five licences and 500 pages in total, and the iOS offering is a separate mobile product with three free evaluation documents rather than desktop parity. Windows editing, protection and signing and the Corporate automation and comparison features are scoped separately from the Mac OCR and conversion path. Whether Screenshot Reader is Corporate-exclusive needs the current feature matrix.",
      "pricingModel": "paid",
      "priceFromGbp": 84,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": null,
      "platforms": [
        "windows",
        "mac",
        "ios"
      ],
      "launchedYear": null,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "convert",
        "edit",
        "protect",
        "sign"
      ],
      "jobScores": {
        "ocr": 93,
        "convert": 88,
        "edit": 80,
        "protect": 75,
        "sign": 68
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support.abbyy.com/hc/en-us/articles/4415671152019-Removing-confidential-information-from-the-PDF-document",
        "quote": "It is possible to remove confidential information from recognized text with FineReader PDF in the following way: … In the Text pane, use the marker to obliterate the required text. … Save the document. The redacted text will appear as dots in the output document.",
        "caveat": "The weakest pass in this batch. Vendor support documentation, not a test we ran: the article is titled around removing information and uses \"obliterate\", which is a removal claim, but the outcome it actually describes is APPEARANCE - the text \"will appear as dots\", or as black rectangles where the format supports colours. It never states that the characters leave the file. It is also scoped to \"recognized text\", meaning text the product has OCR’d. Worth a canary test rather than more reading."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is installed software, so documents are processed on the machine, and the vendor reports that the Windows edition works offline. That is a vendor statement rather than a product-wide tested badge, and the Mac conversion path accepts image files and existing PDFs rather than only scans or paper. Self-hostable needs a defined meaning here: installed software alone is not a hosted server offering, and the vendor’s Server product is a distinct offering.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed desktop application for Windows and macOS whose own help centre states recognition and processing run offline with documents stored locally. That statement covers the Windows program, not the Mac or iOS editions."
      },
      "license": null,
      "openSource": false,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": "ABBYY FineReader PDF review - Desktop PDF editor",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "document recognition of imported images in an OCR project, converting them to text, with automatic recognition of new pages and the Recognize All Pages or Recognize Selected Pages commands, in ABBYY FineReader PDF",
        "convert": "quick conversion of recognized text to searchable PDF, image-only PDF, DOCX, XLSX, PPTX, EPUB, FB2, TXT, HTML, RTF, ODT or CSV, in ABBYY FineReader PDF",
        "edit": "editing the automatically generated document layout in the OCR Editor, using the area tools and Area menu commands to add, delete, resize, move or change the type of areas and to mark out a page, in ABBYY FineReader PDF",
        "protect": "protecting exported PDF documents with passwords, where different passwords can be required for opening a document and for printing and copying its contents, in ABBYY FineReader PDF",
        "sign": "signing PDF documents in the PDF Editor of ABBYY FineReader PDF, where the FineReader 16 User's Guide documents three separate kinds of signature, a digital signature placed on the page and added from a certificate chosen in a Sign as drop down list, with certificate properties viewing, a certificate installation path through the Windows Certificate Import Wizard, optional reason, location and contact fields, selectable signature details, an optional time stamp server URL with login and password, borders and background and an optional custom image, saved with Save and sign, where adding a signature to an already signed document keeps the previous signatures valid and more than one digital signature can be added, a text signature created from text with a chosen style and then placed, resized, rotated or moved on the page, and a picture signature created from an image file or the clipboard and placed the same way, and where the guide states that opening a PDF automatically validates the digital signatures in it and shows the results in a Digital Signatures pane, that signature properties can be viewed, and that a signature can only be removed by someone holding the corresponding digital certificate"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 284,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdf.abbyy.com (home, pricing); abbyy.com privacy notice; ABBYY support centre article on local processing. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/abbyy-finereader-pdf/"
    },
    {
      "slug": "accessibilitynow",
      "name": "AccessibilityNow",
      "tagline": "Enterprise platform that converts documents into accessible formats including PDF/UA and Braille.",
      "websiteUrl": "https://crawfordtech.com/",
      "summary": "AccessibilityNow is an enterprise platform for turning high volumes of documents into accessible ones: tagged PDF meeting PDF/UA, HTML5, Braille and large print, produced from the transactional documents an organisation already generates - statements, bills, policies, regulatory mailings. It is sold alongside the vendor's output-management and delivery products, the pitch being that accessibility is added to an existing print and mail pipeline rather than replacing it. Braille production and accessible PDF are both named capabilities, which is unusual outside the specialist remediation vendors.",
      "bestFor": "Large organisations with a statutory duty to communicate accessibly - banks, insurers, utilities, government agencies - that already run document composition at scale and need the accessible version to come out of the same process as the printed one. It is aimed at compliance programmes rather than at individual documents.",
      "watchOutFor": "The product family covers several things and the homepage lists them separately: hosted conversion, manual remediation, publishing, transactional, validation and workflow products, so a field here describes one component rather than the whole family, and one component's limits are not another's. The page leads with statistics about accessibility lawsuits and their average cost and claims 100% compliance and zero lawsuits, which is marketing we are recording rather than repeating: the useful questions are which component is being bought, how much of the work is human review, and what the contract actually guarantees. It would be wrong to say no remediation platform can promise compliance because some checks need a person, since a platform can include human services. Deployment is described as cloud-first with on-premises options, which does not establish which one a buyer gets by default, and there is no published price or self-service trial, so it is not evaluable from the website the way the free tools are.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Crawford Technologies",
      "platforms": [
        "web",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "convert"
      ],
      "jobScores": {
        "accessibility": 80,
        "convert": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://crawfordtech.com/",
        "readAt": "2026-09-22",
        "quote": "Transform ANY document into EVERY accessible format automatically: PDF/UA, WCAG, HHS compliance",
        "caveat": "Recorded as `none` on absence: the platform converts documents into accessible formats and produces Braille and accessible PDF, and nothing on the page describes removing content from a document. What it does not establish: that the accessible output is safe. An accessibility transformation is not a redaction - it rebuilds a document so a screen reader can follow it, and the sensitive content that was in the original is still in the original."
      },
      "processesLocally": false,
      "processesLocallyNote": "The vendor describes its delivery as \"cloud-first with on-premises options\", so the default is the vendor's environment and an on-premises deployment is available where security requirements demand it. Because this handles transactional mailings containing personal data, which deployment a customer is on is a material question rather than an implementation detail. This record covers the AccessibilityNow family rather than one module: the platform pages describe SaaS and cloud delivery and the record's platforms field says web and self_hosted, while the Remediate module is separately described as an ad hoc tagging tool that runs in a Windows desktop environment, so a desktop interface on one module is not a contradiction of the family's platforms.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Described by the vendor as \"cloud-first with on-premises options\", so the default is the vendor's environment with an on-premises deployment available. Because it processes transactional mailings, that choice is material and worth asking about directly rather than probing."
      },
      "license": "Commercial, enterprise; quoted rather than published",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "remediating PDF accessibility by tagging and tag-finishing, starting from an untagged PDF, with settings to match the document structure and support for PDF/UA, WCAG and HHS accessibility standards, in AccessibilityNow Remediate",
        "convert": "converting documents such as marketing literature, letters, books and manuals into print-ready Accessible PDF, and converting documents into Large Print, in AccessibilityNow"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 301,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 96.7
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "crawfordtech.com, read 2026-09-22 with headless Chrome, including the product descriptions, the industry sections and the footer. Vendor documentation, not independently tested; no document was processed and no demo was requested.",
      "profileUrl": "https://dialegein.com/products/accessibilitynow/"
    },
    {
      "slug": "adobe-acrobat",
      "name": "Adobe Acrobat",
      "tagline": "Adobe's PDF toolkit: free browser tools plus the paid Acrobat Pro desktop app.",
      "websiteUrl": "https://www.adobe.com/acrobat/online.html",
      "summary": "Adobe Acrobat is two products sharing a name: free browser-based PDF tools on adobe.com, and the paid Acrobat Pro desktop application for Windows and Mac. The online tools handle conversion, compression, editing, merging, page management, OCR, password protection and e-signing. Free web use is tightly capped unless you pay, and files are uploaded to Adobe's servers for processing. Acrobat Pro adds offline desktop editing. Acrobat Pro also carries the accessibility toolset - checking a document against PDF/UA and WCAG, fixing reading order and tags, and generating an accessibility report.",
      "bestFor": "Casual users who want the reference PDF tools for a one-off job, and professionals or teams that need the full Acrobat Pro desktop editor.",
      "watchOutFor": "Free online use is severely limited - roughly one transaction without signing in, and about one premium transaction per 30 days once signed in. Files are uploaded to Adobe's servers rather than processed in the browser. There is no universal 100 MB limit: the vendor FAQ distinguishes ordinary tools, Word and PowerPoint conversion, compression and splitting, and gives its own page and file counts for merging, so those distinctions are kept rather than one aggregate maximum. The one-per-30-days premium allowance is documented, while free signed-in filling, signing, commenting and sharing differ from it. Acrobat is a broader family than two products: free Reader, the online tools and the paid desktop editions are separate, and Pro-only redaction and accessibility capabilities are not attributed to all of them. Applied removal, sanitisation of hidden data and saving the result are workflow stages rather than the same thing as drawing an annotation, and the separate Adobe developer products are linked without implying the consumer online editor has an API.",
      "pricingModel": "freemium",
      "priceFromGbp": 14.99,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "windows",
        "mac"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "compress",
        "merge",
        "ocr",
        "accessibility",
        "protect",
        "sign",
        "compare"
      ],
      "jobScores": {
        "edit": 95,
        "convert": 94,
        "compress": 90,
        "merge": 90,
        "ocr": 88,
        "accessibility": 85,
        "protect": 85,
        "sign": 80,
        "compare": null
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://web.archive.org/web/20250102153433/https://helpx.adobe.com/acrobat/using/removing-sensitive-content-pdfs.html",
        "quote": "Redaction is permanently removing visible text and graphics from a document. … In place of the removed items, you can have redaction marks that appear as colored boxes or leave the area blank.",
        "caveat": "Read from an Internet Archive snapshot dated 2 January 2025, because the live page refuses our requests - Akamai answers a headless browser with \"Access Denied\". So this is Adobe’s page as it stood on that date, not as it stands today. The same page separates two features that are easy to conflate: redaction, and \"Sanitize and remove hidden information\", which removes metadata and hidden content and is NOT what this verdict is about. Redaction is also Acrobat Pro only, which the guide’s tier note records."
      },
      "processesLocally": false,
      "processesLocallyNote": "It depends on the surface. The desktop application and Reader work on files on the machine, while the online tools upload a document to Adobe’s service, which the vendor describes as keeping it for a short period. The online upload and that short deletion period are what the record can say; no exact retention duration is invented and none is extended to files a signed-in account saves. Anonymous eligible tasks differ from signed-in workflows and from desktop activation, so an account requirement cannot be answered once for the whole family.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Acrobat desktop on Windows and macOS, and Acrobat Reader. On their servers: Acrobat online tools and Document Cloud services. A single answer for the whole product would be wrong for one of them."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Acrobat desktop on Windows and macOS, and Acrobat Reader",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Acrobat online tools and Document Cloud services",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF content by updating text and images and rearranging content, in Adobe Acrobat desktop, included in the Standard and Pro plans",
        "convert": "Word, PowerPoint, Excel, Publisher, text, image and other supported files to PDF in Reader; export is a separate feature",
        "compress": "compressing PDFs by selecting a High, Medium or Low compression level, which Acrobat applies by reducing image resolution, flattening interactive layers and removing unused metadata, in the Acrobat online tool and desktop app, where unlimited compression requires a paid plan",
        "merge": "combining files into one PDF in the desktop application",
        "ocr": "recognising text in scanned documents to turn them into editable, searchable PDFs, documented for Acrobat Pro and for the Acrobat Scan mobile app which recognises text automatically",
        "accessibility": "checking PDF accessibility against PDF/UA and WCAG with the Prepare for accessibility and Check for accessibility tools, including an accessibility report, reading options and the Reading Order tool, in Acrobat Pro",
        "protect": "password-protecting PDFs so that only people with the password can open them, with permission controls that restrict actions such as editing, copying and printing, in the Acrobat online tools and in Acrobat Pro",
        "sign": "signing PDFs with an electronic signature by typing, drawing or uploading an image of a signature, and with certificate-based digital signatures, in the free Acrobat online sign tool and the Acrobat Reader mobile app, where requesting signatures from others and audit trails may require a paid plan",
        "compare": "compares two versions, in Acrobat Pro"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 72,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 4,
      "claimsVerifiedByUs": 4,
      "reviewedBy": null,
      "source": "adobe.com/acrobat/online.html; adobe.com/acrobat.html; adobe.com/acrobat/pricing.html; helpx.adobe.com Acrobat online services FAQ. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/adobe-acrobat/"
    },
    {
      "slug": "adobe-pdf-accessibility-auto-tag-api",
      "name": "Adobe PDF Accessibility Auto-Tag API",
      "tagline": "Cloud API that adds structure tags to PDFs at scale, as a first step towards accessibility.",
      "websiteUrl": "https://developer.adobe.com/document-services/docs/overview/pdf-accessibility-auto-tag-api/",
      "summary": "This is an API that reads an untagged PDF and writes a tagged one: headings, paragraphs, lists, tables and language, plus a spreadsheet report describing what it decided. It is meant for backlogs - thousands of documents that were never tagged - and it will replace whatever tags already exist, so it helps most where there are none or they are poor. Adobe is explicit that the output is a starting point rather than a finished accessible document, and that alt text, complex tables and reading order still need a person.",
      "bestFor": "Organisations with a large archive of untagged PDFs who need the mechanical work done automatically, and developers adding an accessibility step to a document pipeline. It tags through an API rather than a document at a time, which suits a pipeline or a backlog. Equidox documents API-integrated batch remediation as well, so it is not the only route to that in this index.",
      "watchOutFor": "It replaces existing tags rather than improving them, so running it over documents that have already been worked on can destroy remediation that a person did by hand - a real risk for anyone pointing it at a mixed backlog. It also does not produce a compliant document and says so: the tagged output is not guaranteed to meet WCAG or PDF/UA, and the remaining work is exactly the work that is hard to automate - alternative text for every figure and a review of complex tables, plus checking how the title was identified and whether the reading order survived. Budget for that second pass or the documents will be tagged and still unusable. Being a cloud service, every document is uploaded, and Adobe's own documentation says assets are held in Adobe Document Cloud for 24 hours by default; for a confidential backlog that is a decision, not a detail.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility"
      ],
      "jobScores": {
        "accessibility": 85
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://developer.adobe.com/document-services/docs/overview/pdf-accessibility-auto-tag-api/",
        "readAt": "2026-09-22",
        "quote": "Automatic tagging is a good first step on a document's journey to full accessibility. It outputs the tagged pdf, along with an optional report providing detailed information about the added tags.",
        "caveat": "Recorded as `none` on absence: this service adds structure to a document and never removes content from one. Nothing in its documentation describes redaction. What it does not establish is that the output is safe to publish - and there is a specific trap worth naming, because it is the opposite of a redaction risk: the service REPLACES any existing tags, so a document whose tagging was carefully remediated by hand comes back with machine-generated tags instead. That is a way to lose work, not to leak data, but on a confidential document both matter."
      },
      "processesLocally": false,
      "processesLocallyNote": "A cloud API: the document is uploaded to Adobe Document Cloud, processed there, and the tagged result is downloaded. Adobe's security documentation states that server-side components of the PDF Services API are processed in Document Cloud on AWS infrastructure in the US-East and EMEA regions, and that uploaded assets and generated output are stored for 24 hours by default. The REST flow also supports external storage and immediate deletion of assets, which the Java SDK exposes.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A cloud API. Documents are uploaded to Adobe Document Cloud and processed on AWS infrastructure in the US-East and EMEA regions, with assets and output stored for 24 hours by default. Adobe is a large vendor with published terms, but this is still somebody else's service receiving the document, so it needs permission."
      },
      "license": "Commercial; part of the Adobe PDF Services API",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "automatically tagging PDFs to add document structure, replacing any existing tags, with an optional report on the added tags, through the REST-powered PDF Accessibility Auto-Tag API in the Adobe PDF Services API, where the tagged output is not guaranteed to comply with WCAG or PDF/UA without further remediation"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 55,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "developer.adobe.com: the PDF Accessibility Auto-Tag API overview and the PDF Services API security page, both read 2026-09-22 with headless Chrome. Vendor documentation, not independently tested; no document was submitted to the API.",
      "profileUrl": "https://dialegein.com/products/adobe-pdf-accessibility-auto-tag-api/"
    },
    {
      "slug": "adobe-pdf-extract-api",
      "name": "Adobe PDF Extract API",
      "tagline": "Cloud API that extracts text, tables and structure from PDFs into JSON or Markdown.",
      "websiteUrl": "https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/",
      "summary": "A cloud service bundled with the Adobe PDF Services API that parses a PDF and returns its content with structural metadata. It emits structured JSON - headings, paragraphs, lists, tables and figures, with reading order, bounding boxes and font details - or LLM-friendly Markdown, and can deliver table and figure renditions as CSV, XLSX and PNG. It handles native PDFs and, through Adobe's models, scanned ones. Billing is per document transaction, with extraction metered at one per five pages.",
      "bestFor": "Server-side teams that need machine-readable structure - reading order, table cells, coordinates - out of a large PDF backlog, and that are comfortable sending documents to a cloud API.",
      "watchOutFor": "The limits are nominal rather than guaranteed: 100 MB per file, 400 pages for a non-scanned PDF and 150 for a scanned one, 25 requests a minute, and OCR optimised for English. Complex or table-heavy files can hit lower limits than those, the vendor says so, and not every annotation becomes extracted content. It rejects XFA and fillable forms, password-protected files and copy-restricted documents. Metering is one transaction per five pages, so the 500 free transactions a month are roughly 2,500 pages.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "api"
      ],
      "launchedYear": 2021,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr",
        "convert"
      ],
      "jobScores": {
        "extract": 90,
        "ocr": 72,
        "convert": 82
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Documents are uploaded to Adobe Document Cloud, which Adobe states runs on AWS infrastructure in the United States and EMEA regions, and processed there. No on-premises deployment is documented.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Cloud service. Documents are uploaded to Adobe Document Cloud and stored there for 24 hours by default."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting text in contextual blocks, complex tables and figures from native or scanned PDFs as structured JSON or Markdown through the cloud-based PDF Extract API, called via the PDFServices SDK for Node.js, Python, .NET and Java, with optional CSV, XLSX and PNG outputs and a free tier of 500 document transactions per month",
        "ocr": "extracting text from scanned PDFs through the cloud PDF Extract API, whose own documentation discusses OCR and scan quality as dependent on input clarity such as skewed pages, shadowing, obscured or overlapping fonts and resolution below 200 DPI",
        "convert": "renditions only: structured JSON or Markdown output, with tables optionally as CSV or XLSX and images as PNG; not general PDF conversion"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 6,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "developer.adobe.com document services documentation (PDF Extract overview, how-to, getting started, PDF Services overview, limits, security, the pricing page read at https://developer.adobe.com/document-services/pricing/); Adobe's 2021 launch blog post.",
      "profileUrl": "https://dialegein.com/products/adobe-pdf-extract-api/"
    },
    {
      "slug": "adobe-scan",
      "name": "Adobe Scan",
      "tagline": "Free phone scanner that turns paper into searchable PDFs in Adobe's cloud.",
      "websiteUrl": "https://www.adobe.com/acrobat/mobile/scanner-app.html",
      "summary": "Adobe Scan is a phone camera scanner: it captures pages, whiteboards, forms and business cards, corrects perspective, glare and shadows, and produces PDFs, JPEGs or Word files with OCR so the text is searchable and editable. It offers markup, custom filenames and folders, and hands scans to Acrobat on desktop, web or mobile. Signing in with an Adobe ID makes the same scans available across devices through Adobe Document Cloud.",
      "bestFor": "Phone-first users already in Adobe's ecosystem who want quick, good-looking scans that flow straight into Acrobat for signing and form filling.",
      "watchOutFor": "The app is free but the things people want next - combining files, converting formats, password protection, advanced editing - are pushed into a paid Acrobat Pro subscription. Finished scans are stored in Adobe Document Cloud, and the same FAQ lists local storage on the device as an export destination alongside the Adobe account and connected services. Cloud-backed storage and where a file can be exported are different questions. An export to the device does not establish that capture, recognition or storage happened offline, and the paid Acrobat operations are separate from what Scan does.",
      "pricingModel": "freemium",
      "priceFromGbp": 4.99,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "convert"
      ],
      "jobScores": {
        "ocr": 84,
        "convert": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://web.archive.org/web/2023/https://www.adobe.com/acrobat/mobile/scanner-app.html",
        "quote": null,
        "caveat": "Read from an Internet Archive snapshot, because every Adobe URL refuses this project - Akamai answers a headless browser with \"Access Denied\", and later at the protocol level. Adobe’s own Scan page describes capturing, cleaning up and exporting scans and does not mention redaction; the separate desktop Acrobat Pro redaction feature is recorded on that record, not this one. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Capture and image cleanup happen in the app, but Adobe's own FAQ says finished scans are stored in Adobe Document Cloud and Adobe's privacy policy says files are stored on Adobe's servers. The pages never say where the OCR itself runs.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A phone app, so a browser probe cannot drive it. Its own FAQ says finished scans are stored in Adobe Document Cloud, so there is a server involved - we simply have no way to test it with this instrument."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "converting scanned documents into editable, searchable PDF files using OCR, optical character recognition, in the Adobe Scan app on iOS 15 or later and Android 8.0 or later, with scans stored in Adobe Document Cloud",
        "convert": "converting captures of documents, forms, business cards and whiteboards into PDFs in Adobe Scan, and exporting scanned files from Adobe Scan as PDF, JPEG or Word"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 15,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "adobe.com/acrobat/mobile/scanner-app.html (US and GB); adobe.com privacy policy. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/adobe-scan/"
    },
    {
      "slug": "allyant-pdf-validator",
      "name": "Allyant PDF Validator",
      "tagline": "Free Acrobat plug-in accessibility checker that tests a PDF against WCAG and PDF/UA and guides manual testing.",
      "websiteUrl": "https://allyant.com/free-pdf-accessibility-checker-validator/",
      "summary": "A free plug-in for Adobe Acrobat that checks a PDF's accessibility and then walks you through the parts a machine cannot decide. It reports on the mechanical failures - metadata, whether the title is visible, font embedding, Unicode mapping, tag nesting, heading levels, list and link tags, untagged content - but its distinct feature is the pairing of each finding with the document: selecting a tag highlights the content it applies to, and selecting content shows where it sits in the tag tree. It produces a certification report for each document tested.",
      "bestFor": "Accessibility specialists and document authors who have to sign off a PDF and want the check and the evidence in one place. It is also the sensible free starting point for an organisation that has Acrobat already and needs to know how bad a document is before paying anyone to fix it.",
      "watchOutFor": "It is Windows only, and it runs inside a paid Adobe Acrobat rather than standing alone. The vendor's download page describes it as an Acrobat Pro plug-in, while the system requirements on the same site list Standard or Pro from Acrobat X (10) onwards; a current supported-version matrix would settle which of those holds, and until one is found the wider scope is unconfirmed. The download is behind a form asking for a name, work email, phone number, job title and organisation. The phone field is not marked as required, so the named fields are not all mandatory. A plug-in architecture is not by itself proof that nothing is sent anywhere during normal operation: the documented workflow is what we can describe, and no independent network test backs an absolute claim either way.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Allyant",
      "platforms": [
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility"
      ],
      "jobScores": {
        "accessibility": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://allyant.com/free-pdf-accessibility-checker-validator/",
        "readAt": "2026-09-22",
        "quote": "Our Adobe Acrobat Pro plugin, the Allyant PDF Validator, will test the accessibility of individual PDFs, identifying any issues that may be blocking users from access-and compromising your organization's compliance.",
        "caveat": "Recorded as `none` on absence: the tool's own feature list is entirely about examining a document - metadata, titles, fonts, Unicode mapping, tag structure, alternative text, untagged content - and nothing in it modifies or removes content. It inspects and reports. What it does not establish: that nothing else in the Allyant suite edits documents. The same vendor sells remediation software and services, which are separate products and would need their own records."
      },
      "processesLocally": true,
      "processesLocallyNote": "An Acrobat plug-in: the document is opened and checked inside your own copy of Acrobat, on your own machine. Nothing is uploaded, including when you request the download - though that request does collect your contact details, which is a different kind of data leaving and is recorded in watchOutFor.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An Acrobat plug-in: the document is opened and checked inside your own copy of Acrobat, on your own machine. The form the vendor requires gates the download and collects contact details, not the document."
      },
      "license": "Free to download and use; requires Adobe Acrobat Standard or Pro on Windows",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "validating PDF accessibility as an Adobe Acrobat plugin that reports issues and guides manual tests, covering tagging and reading order, alternative text, headings, lists, links, form tags, tooltips, tables, metadata, font embedding and Unicode mapping, with the vendor naming Section 508, WCAG, PDF/UA and HHS guidelines, on Windows with Acrobat Standard or Pro X or higher"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 166,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "allyant.com: the free PDF accessibility checker page and the company home page, read 2026-09-22 with headless Chrome, including the system requirements. Vendor documentation, not independently tested; the plug-in was not downloaded and no PDF was checked.",
      "profileUrl": "https://dialegein.com/products/allyant-pdf-validator/"
    },
    {
      "slug": "amazon-textract",
      "name": "Amazon Textract",
      "tagline": "AWS API that reads text, forms, tables and signatures from uploaded documents.",
      "websiteUrl": "https://aws.amazon.com/textract/",
      "summary": "A managed AWS service that runs OCR and document-structure analysis on scans and PDFs you send to it. As well as plain text and handwriting it returns form key-value pairs, table cells, page layout, detected signatures, invoice and receipt line items, identity-document fields and lending classifications, all as JSON with confidence scores and coordinates. Single pages can be processed synchronously; multi-page jobs run asynchronously out of Amazon S3. Nothing is installed locally and there is no on-premises edition.",
      "bestFor": "Developers already on AWS who want per-page, machine-readable extraction of forms, tables, invoices and IDs without running infrastructure.",
      "watchOutFor": "The limits depend on the mode rather than on the service. Synchronous input is 10 MB, and a PDF or TIFF is one page; asynchronous PDF or TIFF is 500 MB and up to 3,000 pages, while JPEG and PNG stay at 10 MB. There is no ongoing free plan: new customers get a three-month introductory allowance that varies by API and excludes Custom Queries, and 100 pages a month on some APIs, so it is a trial rather than a tier. Custom Queries and the Forms and Tables APIs have their own price bands, and AWS storage and notification charges sit alongside the API cost. Detection of a signature is not authentication, and a detected checkmark is not a tested one.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 0.0015,
        "currency": "USD",
        "per": "page",
        "asShown": "'Price per page = $0.0015 for first 1 million and $0.0006 for pages after 1 million' - Detect Document Text, first tier",
        "source": "https://aws.amazon.com/textract/pricing/",
        "readAt": "2026-09-15"
      },
      "hasFreeTier": false,
      "owner": null,
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": 2019,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr"
      ],
      "jobScores": {
        "extract": 85,
        "ocr": 82
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://aws.amazon.com/textract/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Documents are uploaded to AWS: you send bytes or an S3 object to a regional Textract endpoint and AWS processes them in that region. There is no on-premises or self-hosted Textract edition.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Cloud service. Documents are uploaded to a regional AWS endpoint and processed there, with no on-premises edition."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "detecting typed and handwritten text and extracting text, forms and tables, and extracting specified information with queries, through the Amazon Textract Document Analysis and Analyze Document APIs on image and PDF files",
        "ocr": "detecting typed and handwritten text in images and PDFs through Amazon Textract text detection, with synchronous processing for single page documents and asynchronous operations for multipage documents"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 190,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "aws.amazon.com/textract and its pricing page; AWS Textract documentation (what-is, limits, how-it-works, data-protection); the AWS machine-readable price list; the 2019 general availability press release.",
      "profileUrl": "https://dialegein.com/products/amazon-textract/"
    },
    {
      "slug": "antennahouse-formatter",
      "name": "Antenna House Formatter",
      "tagline": "Commercial publishing formatter that lays out XSL-FO or CSS into print-quality PDF.",
      "websiteUrl": "https://www.antennahouse.com/formatter-v7",
      "summary": "Formatter is a commercial typesetting engine for documents that have to be published rather than merely printed: it takes XSL-FO or CSS and lays out pages with the control that technical documentation and standards publishing need - footnotes, cross-references, running heads, indexes, right-to-left scripts and mathematical markup. It comes in a full and a Lite edition with add-ons, runs on Windows, Linux and macOS including ARM, and is available as a Docker image. The vendor has been selling it for two decades and names documentation groups among its users.",
      "bestFor": "Organisations producing large technical documentation sets or standards from XML or HTML - where the output has to be consistent across thousands of pages, and where MathML, bidirectional text or CJK typography are requirements rather than edge cases. It is the commercial counterpart to Apache FOP in the same niche.",
      "watchOutFor": "It is a commercial product whose price comes from a quotation rather than a published figure, so the cost cannot be compared from the website. Two structural decisions matter more than the headline. The first is the edition: the PDF output guide marks tagged PDF and PDF/UA as unavailable in the Lite edition, so a purchase aimed at accessible output has to be the full one, and an accessible-output licence does not certify any particular document. The second is how it is driven: the command line is one route among several, and the current documentation also covers Java, .NET, COM and C or C++ interfaces, with version and platform qualifications attached to each.",
      "pricingModel": "paid",
      "priceFromGbp": 299.33,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Antenna House, Inc.",
      "platforms": [
        "windows",
        "linux",
        "mac",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 85
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.antennahouse.com/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence and structurally: the product formats documents into PDF from XSL-FO or CSS and does not open an existing PDF, so there is no document for a redaction feature to act on. What it does not establish: that the output is safe, and there is a nuance for a publishing formatter specifically - it renders whatever the source data contains, and a documentation pipeline that pulls in content assembled from several sources is a place where an unintended field can reach print."
      },
      "processesLocally": true,
      "processesLocallyNote": "Software you install and run, on Windows, Linux or macOS, or as the vendor's Docker image in your own container. Antenna House operates no document processing service in that path.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed software on Windows, Linux or macOS, or the vendor's Docker image in your own container. Antenna House operates no document processing service in that path."
      },
      "license": "Commercial; a full edition, a Lite edition and separately licensed add-ons, with pricing quoted",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "cli",
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "XML, DITA and HTML styled with XSL-FO or CSS to PDF"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 334,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "antennahouse.com: the home page, read 2026-09-22 with headless Chrome, including the product list, platform statements and customer quotations. Vendor documentation, not independently tested; nothing was downloaded and no document was formatted.",
      "profileUrl": "https://dialegein.com/products/antennahouse-formatter/"
    },
    {
      "slug": "apache-fop",
      "name": "Apache FOP",
      "tagline": "Java XSL-FO formatter that turns XML formatting objects into PDF and print output.",
      "websiteUrl": "https://xmlgraphics.apache.org/fop/",
      "summary": "FOP is the Apache project that formats XSL-FO - the XML vocabulary for describing pages - and renders it to PDF, PostScript, PCL and print streams. It fits a pipeline that already speaks XML: FOP consumes XSL-FO, and XSLT is a common way to produce that input from XML, though an application may supply formatting objects directly or generate them by other means. It is not an HTML and CSS renderer, which is a different job. It is a Java application, currently on version 2.11, and it is part of Apache's XML Graphics project alongside Batik.",
      "bestFor": "Publishing and documentation pipelines that are already built on XML and XSLT, where the formatting step should be a standards-based transformation rather than a browser rendering. It is also the choice where output has to go somewhere other than PDF - print streams and AFP are supported, which most of the HTML-to-PDF tools here cannot do.",
      "watchOutFor": "XSL-FO is a large, old standard and FOP implements the Basic conformance level plus much of what lies beyond it, not the whole recommendation - the project publishes a compliance page precisely because the gaps need documenting, and a stylesheet that relies on an unimplemented property will render differently rather than fail loudly. It is also not an HTML renderer: there is no CSS support worth speaking of and no JavaScript, so a team arriving with a web template is on the wrong tool, and the pipeline has to go through XSLT to be useful at all. That makes FOP a good fit for an XML house and a poor one for a modern web team, and the difference is architectural rather than a matter of quality. Its outputs beyond PDF - AFP and PCL particularly - are what make it unusual in this index, and they are also the parts least likely to be exercised by anyone evaluating it casually.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "The Apache Software Foundation",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://xmlgraphics.apache.org/fop/",
        "readAt": "2026-09-22",
        "quote": "Apache™ FOP (Formatting Objects Processor) is a print formatter driven by XSL formatting objects (XSL-FO) and an output independent formatter.",
        "caveat": "Recorded as `none` on absence, and structurally: FOP builds pages from formatting objects and never opens an existing PDF, so there is no document for a redaction feature to operate on. It writes PDF, PS, PCL, AFP and others, but always as new output. What it does not establish: that a document it produces is safe to share - a formatter renders whatever the data contains, which is the same generator risk this index records for Prince, WeasyPrint and the rest."
      },
      "processesLocally": true,
      "processesLocallyNote": "A Java application you run yourself. The XML and the formatting objects are read from your own filesystem and the output is written to it; the Apache Software Foundation operates no processing service of any kind.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Java application you run yourself. The formatting objects are read from your own filesystem and the output is written there; the Apache Software Foundation operates no processing service at all."
      },
      "license": "Apache-2.0",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "cli",
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {},
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 187,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "xmlgraphics.apache.org/fop/, read 2026-09-22 with headless Chrome, including the introduction, objectives and compliance links. Project documentation, not independently tested; FOP was not installed and no document was formatted.",
      "profileUrl": "https://dialegein.com/products/apache-fop/"
    },
    {
      "slug": "apache-pdfbox",
      "name": "Apache PDFBox",
      "tagline": "Long-standing Apache Java library and CLI suite for creating and manipulating PDFs.",
      "websiteUrl": "https://pdfbox.apache.org",
      "summary": "A Java library plus a set of command-line utilities under the Apache Software Foundation. It creates PDFs from scratch, text or images, extracts Unicode text, fills and reads form data, merges, splits, overlays and renders pages to images, encrypts and decrypts with password or certificate security, digitally signs documents, and can preflight against PDF/A. Lower-level APIs give access to the object model and content stream operators when the high-level classes are not enough.",
      "bestFor": "JVM shops that need a permissively licensed PDF toolkit with both a library and ready-made command-line tools.",
      "watchOutFor": "No redaction at all - the feature request is still open and unresolved, and the shipped command-line tools have no redact or content-removal command. The library is also far more capable than the CLI: signing and preflight are library-only.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": null,
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2002,
      "primaryJob": "protect",
      "jobs": [
        "merge",
        "protect",
        "edit",
        "convert",
        "extract",
        "view",
        "sign",
        "compress"
      ],
      "jobScores": {
        "merge": 88,
        "protect": 78,
        "edit": 85,
        "convert": 82,
        "extract": 80,
        "view": 80,
        "sign": 80,
        "compress": 45
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://pdfbox.apache.org",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: a Java class library and a set of local Java applications. Parsing, rendering, encryption and signing all run in the local JVM with no hosted service involved.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Java class library plus local Java applications. Parsing, rendering, encryption and signing all run in the local JVM."
      },
      "license": "Apache-2.0",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "merge": "merging a list of PDF documents into a new document with the PDFMerger command line tool in PDFBox, taking two or more source PDF files and a target PDF file",
        "protect": "encrypting PDFs with the PDFBox Encrypt command line tool using owner and user passwords or an X.509 certificate file, with permission settings for assembling, extracting content, filling in forms, modifying, annotating, printing and printing degraded, and key lengths of 40, 128 or 256 bits, and decrypting PDFs with the Decrypt tool using the owner password or a certificate keystore",
        "edit": "manipulating existing PDF documents in the Java library",
        "convert": "creating PDFs from scratch with embedded fonts and images, and rendering PDFs to images such as PNG or JPEG",
        "extract": "extracting all text from a PDF with the ExtractText command line tool in PDFBox, writing raw text, HTML or Markdown, with encoding, page range, console output and sort options",
        "view": "rendering each page of a PDF to an image file with the PDFToImage command line tool in PDFBox, writing JPG or PNG at a selectable DPI and colour depth, with page range and crop box options",
        "sign": "adding a digital signature to a PDF with the PDFBox signature API, using a PDSignature dictionary with the Adobe PPKLite filter and the adbe.pkcs7.detached subfilter, a keystore, and an incremental save, as shown in the project's CreateSignature and CreateVisibleSignature examples",
        "compress": "compressed saving of documents by default, overridable per save; not a standalone PDF optimiser"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 193,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "pdfbox.apache.org (home, 3.0 command-line documentation); the repository LICENSE and README; the Apache JIRA issue tracker; the RemoveAllText example source; GitHub API metadata.",
      "profileUrl": "https://dialegein.com/products/apache-pdfbox/"
    },
    {
      "slug": "apache-tika",
      "name": "Apache Tika",
      "tagline": "Java toolkit that detects and extracts text and metadata from over a thousand file formats through one interface.",
      "websiteUrl": "https://tika.apache.org/",
      "summary": "Tika reads a file and hands back its text and metadata, whatever the file is - PDF, Office documents, HTML, email, images, archives - behind one interface rather than one parser per format. It ships as a Java library, a command-line application, a REST server and a gRPC service, and it is the usual choice when a search index or a content pipeline has to digest documents it did not create. Version 4 changed the default output to Markdown and moved parsing into separate processes, which is intended to isolate a parser crash from the host. It is isolation rather than a guarantee: resource exhaustion and other failures are not covered by it. Version 4.1.0 is current, with 3.x still supported, and Java 17 is required.",
      "bestFor": "Search platforms, archives and records systems that must ingest many formats without writing a parser for each, and Java teams who want one dependency for document text. It is the natural companion to a search engine rather than a tool for working on a single PDF.",
      "watchOutFor": "Breadth is the product, and depth is not: Tika's promise is that it handles over a thousand formats, not that its PDF text is as good as a dedicated PDF library, and a pipeline that depends on precise reading order or table structure should test it on real documents rather than assume. Version 4.0 is a major release with breaking changes, requires Java 17, moves parsing into forked processes and changes the default output to Markdown, so an upgrade is a project rather than a dependency bump. The newer version also bundles parsers that call vision-language models - Claude, Gemini and OpenAI - which means a tool whose selling point is local document processing now has a documented path that sends your content to somebody else's API. And running the REST server exposes a document parser to a network: the project has had to tighten its defaults, and the 3.x line requires a flag named enableUnsecureFeatures before certain endpoints work at all.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "The Apache Software Foundation",
      "platforms": [
        "linux",
        "windows",
        "mac",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr"
      ],
      "jobScores": {
        "extract": 88,
        "ocr": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://tika.apache.org/",
        "readAt": "2026-09-22",
        "quote": "The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF).",
        "caveat": "Recorded as `none` on absence: Tika reads documents and emits text and metadata, and nothing on the project's own page or in its release notes describes removing content from a file. It is a detector and a parser, not an editor. What it does not establish: that the text it extracts is safe to share. Tika's whole purpose is to pull content out of a document, so the extracted text carries whatever was in the file - the opposite of redaction - and its metadata extraction will surface document properties that a redaction workflow is trying to remove."
      },
      "processesLocally": true,
      "processesLocallyNote": "A Java library and a server you run yourself, so documents are processed on your own infrastructure. Two documented exceptions to be aware of rather than surprised by: version 4 adds parsers that send content to Claude, Gemini or OpenAI for vision-language processing, and Tika can be configured to use remote OCR services. Both are opt-in configurations rather than defaults, but a reader choosing Tika because it runs locally should know the path exists.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Java library, a command-line application and a server that you run yourself. There is no Apache-hosted document processing service, so a file parsed with Tika stays on your infrastructure. Note that 4.x can be configured to call vision-language-model APIs and remote OCR services; those are operator choices, not defaults, and they belong to the configuration rather than to the product."
      },
      "license": "Apache-2.0, with a number of bundled subcomponents under their own licences (documented in LICENSE.txt)",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli",
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "detecting and extracting metadata and text from over a thousand different file types, including PPT, XLS and PDF, parsed through a single interface, in the Apache Tika toolkit",
        "ocr": "optional OCR for images and PDF pages when an external OCR engine such as Tesseract is installed and configured"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 25,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "tika.apache.org, read 2026-09-22 with headless Chrome, including the release history on the home page; the licence from the project's own LICENSE.txt. Project documentation, not independently tested; Tika was not installed and no document was parsed.",
      "profileUrl": "https://dialegein.com/products/apache-tika/"
    },
    {
      "slug": "apple-preview",
      "name": "Apple Preview",
      "tagline": "The macOS PDF viewer and markup editor that ships with every Mac.",
      "websiteUrl": "https://support.apple.com/guide/preview/annotate-a-pdf-prvw11580/mac",
      "summary": "Preview is the PDF and image viewer built into macOS, and Apple now documents a Preview app on iPhone and iPad. On the Mac it reads and searches PDFs, reorders and combines pages, fills forms, applies signatures and marks up with shapes, notes, highlights and text boxes. Apple documents a Redaction Selection tool that removes selected text and becomes permanent when the document is closed. It cannot edit or reflow existing PDF text.",
      "bestFor": "Mac users who want a zero-install, zero-cost way to read, sign, lightly annotate, combine and occasionally redact PDFs.",
      "watchOutFor": "Apple states you cannot edit PDF text in Preview, and redaction is documented only for macOS - the iPhone and iPad Preview guides list highlighting, shapes and signatures but no redaction tool. Apple also warns that table-of-contents entries linking to redacted text are not removed.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "mac",
        "ios"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "sign",
        "edit",
        "protect",
        "merge",
        "convert",
        "compress"
      ],
      "jobScores": {
        "view": 88,
        "sign": 82,
        "edit": 72,
        "protect": 72,
        "merge": 70,
        "convert": 66,
        "compress": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support.apple.com/guide/preview/annotate-a-pdf-prvw11580/mac",
        "quote": "You can change the redaction as you edit, but once you close the document, the redaction becomes permanent.",
        "caveat": "Apple’s own guide, not a test we ran - and we could not test it, because Preview is macOS-only and our probe runs on Windows. Apple documents a specific limit on the same page: table-of-contents entries that link to redacted text are not removed."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural rather than a vendor promise: a local Apple application that opens files on the device, and the help pages describe no upload, account or server step. The iOS signature feature can hand off to a nearby Apple device, which is local peer-to-peer.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A local Apple application that opens files on the device. No account, no upload step, and no vendor service in the path."
      },
      "license": null,
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "opening PDFs and images in the Preview app on Mac, by double-clicking a file or using File Open, changing how documents are shown in the Preview window and getting information about the files",
        "sign": "a drawn signature",
        "edit": "annotate, not existing text",
        "protect": "password protection and permissions for opening, printing, copying and annotating, in the Mac app",
        "merge": "combining PDF pages and documents in the Preview app on Mac, where the Apple Preview User Guide states that you can add individual pages from one PDF to another and merge the entire contents of two or more PDFs by opening the PDFs, choosing View Thumbnails and dragging thumbnails from the sidebar of one PDF to the sidebar of the other, adding pages at the end of a document or between pages and dragging thumbnails to reorder them, or by dragging a PDF icon from the Finder onto the sidebar of an open document to add a whole PDF, and where its companion page documents inserting a page from a file or a blank page after the current page, moving pages by dragging, deleting selected pages with the Delete key, and moving a page from one PDF to another by dragging thumbnails, with the notes that deleting a page also removes all annotations on it, that a new PDF can be created by dragging thumbnails from a PDF sidebar to the desktop, and that changes to a Preview document are saved automatically, so the original PDFs should be duplicated first with File Duplicate to keep copies",
        "convert": "exporting a PDF or image as another file type, and converting between image formats such as HEIC, JPEG, JPEG-2000, PNG and TIFF, in the Mac app",
        "compress": "reducing PDF file size through export options and the Reduce File Size Quartz filter, with possible quality loss and variable results, in the Mac app"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 435,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "support.apple.com Preview guides for macOS, iPad and iPhone, including annotate-a-pdf and fill-out-and-sign-a-pdf-form. Vendor documentation, not independently verified.",
      "profileUrl": "https://dialegein.com/products/apple-preview/"
    },
    {
      "slug": "apryse",
      "name": "Apryse",
      "tagline": "Commercial PDF SDK best known for WebViewer, its in-browser document SDK.",
      "websiteUrl": "https://apryse.com/",
      "summary": "Apryse, formerly PDFTron, sells a document SDK family built around WebViewer, a JavaScript viewer and editor that runs in the browser. With the Full API option enabled, WebViewer loads a WebAssembly build of Apryse's C++ engine so tasks such as redaction and encryption can be done entirely on the client. Server, mobile and desktop SDKs cover the same ground for other architectures, and the company also owns the Xodo end-user apps.",
      "bestFor": "Teams that need a mature commercial SDK with a genuine in-browser engine for destructive redaction and encryption, and that can accept a negotiated, usage-metered licence.",
      "watchOutFor": "The only published figure is a vague 'starting as low as $1,500' with no unit stated, and the licence meters document events, so real cost depends on contract terms only sales can give you. The licence also forbids shipping it as a stand-alone PDF application that could compete with an Apryse product. The official pricing guide states entry packages from $1,500 a year, while the actual feature, deployment and volume pricing requires a quote, so the unit is known and the figure is not. The evaluation documentation establishes watermarking, but the trial, key and product should be identified rather than treating every trial as identical: the WebViewer documentation describes a seven-day keyless evaluation, and the no-tracking demo key is a separate option. An account need distinguishes buying or licensing from evaluating or using an integrator’s viewer. Windows and macOS belong in the scope where the full SDK family is described, and a concrete REST product would be needed before assigning HTTP API access. The contract should be verified before asserting event metering or a universal prohibition on standalone PDF applications, because the surfaced terms are product-specific for one viewer while the core SDK documentation expressly supports standalone commercial applications. The estimate that it roughly doubles download size needs a current version or build measurement. The entry package is a base rather than the whole SDK: DOCX editing, spreadsheets, digital signatures, smart data extraction, PDF editing and conversion are all named as strategic add-ons to it, and the pricing page says the figure depends on features, document volume and whether you deploy server side or client side.",
      "pricingModel": "paid",
      "priceFromGbp": 1112.55,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Apryse",
      "platforms": [
        "web",
        "linux",
        "ios",
        "android",
        "api",
        "self_hosted"
      ],
      "launchedYear": 1998,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "sign",
        "convert",
        "merge",
        "ocr",
        "compress"
      ],
      "jobScores": {
        "edit": 90,
        "protect": 90,
        "sign": 85,
        "convert": 85,
        "merge": 85,
        "ocr": 80,
        "compress": 75
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://docs.apryse.com/core/sanitization/sanitize",
        "quote": "Apryse SDK’s Sanitizer ensures that if specified content categories are present in a document, the content is permanently destroyed, not simply disabled or obscured.",
        "caveat": "THE STRONGEST WORDING IN THIS BATCH, AND ABOUT A DIFFERENT API. This is the Sanitizer, which destroys specified content categories such as metadata and embedded scripts. The marked-area redaction this verdict is about is the Redactor, documented separately. So the quote establishes that Apryse destroys rather than obscures when the Sanitizer is called - not that Redactor does. It should be replaced with the Redactor documentation."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the deployment. The SDK is linked into the application and runs where that runs, and the client-side WebViewer can be configured to work in the browser, while server SDKs and server-backed viewers process on a server and hosted products have their own terms. Multiple regions is not a meaningful guarantee at family level, so it is not recorded as one. Applied redaction and sanitisation are distinct operations, and removal is attributed to the documentation until outputs are tested.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Apryse SDK linked into an application, and the configured client-side WebViewer. On their servers: Server-backed viewers, hosted products and any configured service. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary commercial, term subscription metered by document events",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library",
        "browser"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Apryse SDK linked into an application, and the configured client-side WebViewer",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Server-backed viewers, hosted products and any configured service",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing text and images directly within PDF files using WYSIWYG PDF content editing in the Apryse WebViewer JavaScript library from version 10.3, changing, replacing, deleting, moving, resizing and reformatting existing content and adding new paragraphs and images, as a separate PDF Editing add-on that works with PDF files only",
        "protect": "password-based PDF encryption with user passwords at AES-128 or AES-256, and setting permissions that the Standard Security Handler records but does not enforce, requiring the Full API and Security package for production use, in Apryse WebViewer",
        "sign": "digitally signing and certifying PDFs in Apryse WebViewer, using PKI signing with PFX digital certificates or self-signed certificates, importing and exporting signature fields and data through XFDF or FDF, and signing with images, ink annotations or custom appearances, with document timestamping and long term validation documented as separate features and the Digital Signature package required for production use",
        "convert": "document conversion between PDF, XPS, EMF and WMF, SVG and raster images, including HTML to PDF, XPS or SVG, through the server and desktop SDK and its conversion tools",
        "merge": "merging or inserting PDF pages, through the server and desktop SDK",
        "ocr": "OCR through the server and desktop SDK and its optional OCR module, producing searchable text from images or PDFs",
        "compress": "optimising PDF file size through the server and desktop PDF Optimizer: redundant resource removal, data stream and image compression, and optional downsampling"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 156,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "apryse.com (pricing, legal, privacy, company); Apryse developer docs on encryption, redaction and the Full API; Apryse licence agreement PDF; docs licence-key FAQ.",
      "profileUrl": "https://dialegein.com/products/apryse/"
    },
    {
      "slug": "aspose-pdf",
      "name": "Aspose.PDF",
      "tagline": "Commercial PDF library and API for .NET, Java, C++ and Python, sold under a perpetual per-developer licence.",
      "websiteUrl": "https://products.aspose.com/pdf/",
      "summary": "Aspose.PDF is a commercial library for creating, editing, converting and securing PDFs from application code, with editions for .NET, Java, C++ and Python plus REST APIs. Its documented feature set is broad: a document object model over pages, text, images, annotations and forms, conversion to and from Word, HTML, XPS, Markdown, OFD and image formats, PDF/A, PDF/X and PDF/UA conformance, encryption, digital signatures with PAdES, and a redaction API that removes the underlying content rather than drawing over it. It runs in-process inside the customer's own application, so documents never leave the customer's infrastructure.",
      "bestFor": "Teams shipping a .NET, Java, C++ or Python product who need one library to cover editing, conversion, forms, signing and genuine redaction, and who can budget for a perpetual per-developer licence.",
      "watchOutFor": "Two things to know before the price. The evaluation mode is both watermarked and limited to the first four pages, so a pipeline tested on a short sample can look as though it works; the vendor documents the limit, and a temporary licence removes the restriction for testing, so the validation requirement is a full-document test rather than a sample one. What exactly happens past page four is not established here: a page limit is not the same finding as a silent truncation, and no versioned test was run. The second thing is that local processing does not mean no external contact at all. The .NET licensing page documents metered-key activation and a licence server, so licensing connectivity is a separate matter from document-content transfer, and that page contains inconsistent grace periods during an outage, which is not published here as settled.",
      "pricingModel": "paid",
      "priceFromGbp": 889.3,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Aspose Pty Ltd",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": 2003,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "sign",
        "merge",
        "compress",
        "accessibility"
      ],
      "jobScores": {
        "edit": 90,
        "convert": 90,
        "protect": 85,
        "sign": 85,
        "merge": 85,
        "compress": 80,
        "accessibility": 55
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://docs.aspose.com/pdf/java/security-annotations/",
        "readAt": "2026-09-22",
        "quote": "Use this example when matching text should be covered by redaction annotations before the redaction is permanently applied. … This example permanently applies redaction annotations that already exist on the page. … Call redact() on each collected annotation and save the updated file.",
        "caveat": "Removal is a second step, not the act of adding the annotation. The vendor documents marking text as COVERED, and a separate redact() call as what \"permanently applies\" it. The three passages above sit under the vendor's own headings, \"Mark text with redaction annotations\" and \"Apply existing redactions\", and the fragments are joined with an ellipsis because they are separate passages rather than one sentence. Code that only adds the RedactionAnnotation and saves has drawn over the text and left it in the file. Read from vendor documentation, not tested by us."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: an in-process library installed via NuGet, Maven or pip, with no hosted component in the download products. The docs describe it as usable in any .NET or Java application and it loads and saves files from the host application's own filesystem or streams. Aspose separately sells cloud REST APIs, which are a different product with a different host; this record covers the self-hosted libraries.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An in-process library distributed as NuGet, Maven and pip packages, with no vendor service involved in processing. A hosted REST API exists as a separate cloud product and is not what this record describes."
      },
      "license": "Proprietary commercial, perpetual per-developer licence in named tiers (Developer, Site, Metered) with the location and commercial-deployment rights set by the tier",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library",
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "replacing existing text in a PDF with Aspose.PDF for .NET, using TextFragmentAbsorber to locate text fragments across pages and setting the replacement text with font, size and colour before saving, on .NET Core or .NET Framework 4.7.2 and above, where the documentation warns that replacement text exceeding page boundaries can lead to layout issues",
        "convert": "converting PDF documents to Microsoft Word DOC and DOCX formats with Aspose.PDF for .NET, saving through the Document class with SaveFormat.Doc or with DocSaveOptions set to DocFormat.DocX, on .NET Framework or .NET Core 5 and above",
        "protect": "encrypting a PDF with Aspose.PDF for .NET using PdfFileSecurity to bind a document and call EncryptFile with separate user and owner passwords, DocumentPrivilege permissions such as printing or modifying content, and AES 256-bit encryption set through KeySize.x256, on .NET Framework or .NET Core",
        "sign": "signing a PDF with a digital certificate using PdfFileSignature and a PKCS1 signature with a PKCS#12 certificate file, adding signature fields with FormEditor, setting a custom signature appearance, and verifying signatures with ContainsSignature and VerifySignature, in Aspose.PDF for .NET on a .NET development environment",
        "merge": "merging or concatenating PDF documents by adding one document's pages to another, in Aspose.PDF for .NET",
        "compress": "PDF size optimisation and compression through Aspose.PDF for .NET's Optimize and OptimizeResources APIs, including resource cleanup and optional image or stream compression; size reduction is not guaranteed",
        "accessibility": "creating tagged PDFs and validating them against PDF/UA-1 with Aspose.PDF for .NET, using the tagged content interface to set the title and language and to add paragraph and note elements to the logical structure, and Document.Validate with PdfFormat.PDF_UA_1 to write a validation log, on .NET Core or .NET Framework"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 27,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "purchase.aspose.com (pricing page for Aspose.PDF for .NET, license-types policy page, redistribution/policies index, temporary-license page); docs.aspose.com/pdf/net (licensing and limitations, key features, supported file formats, overview); tutorials.aspose.com redact-page tutorial; reference.aspose.com RedactionAnnotation API reference; products.aspose.com/pdf product entry; Wise USD/GBP mid-market rate page for the FX conversion.",
      "profileUrl": "https://dialegein.com/products/aspose-pdf/"
    },
    {
      "slug": "avepdf",
      "name": "AvePDF",
      "tagline": "Free browser PDF toolkit, operated by the company behind the Nutrient SDK.",
      "websiteUrl": "https://avepdf.com/",
      "summary": "AvePDF is a free browser document toolkit from Orpalis Imaging SAS, which now trades as Nutrient, offering more than fifty tools for conversion, compression and hyper-compression, OCR, e-signing, forms, locking and unlocking, watermarks, annotation and permanent redaction. Free use needs no account, but each free user gets a limited number of actions before being prompted to upgrade. Files are uploaded and processed on AvePDF's servers rather than on the device.",
      "bestFor": "One-off, non-confidential document jobs where you want a broad tool set in a browser with no install and no signup.",
      "watchOutFor": "Confidentiality: the free service's own privacy notice says uploaded files may be retained and used to develop the vendor's services and train its models. Sensitive documents should not go through the free tier. The annotation, conversion and merge pages document a 128 MB maximum, which is scoped to the tools that document it rather than applied to every operation. A multi-file merge is not evidence of general batch processing. The homepage links separate enterprise SDK and REST offerings, which are products with their own terms rather than a public AvePDF API included in free web use. The free-service retention notice permits retention of free uploads for service improvement and model training, while Premium handling is documented separately, and the two should not be run together.",
      "pricingModel": "freemium",
      "priceFromGbp": 51,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Orpalis Imaging SAS",
      "platforms": [
        "web"
      ],
      "launchedYear": 2019,
      "primaryJob": "compress",
      "jobs": [
        "compress",
        "convert",
        "merge",
        "protect",
        "ocr",
        "sign",
        "edit"
      ],
      "jobScores": {
        "compress": 80,
        "convert": 78,
        "merge": 78,
        "protect": 75,
        "ocr": 72,
        "sign": 70,
        "edit": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://avepdf.com/redact-pdf",
        "quote": "Just like people black-out or cut-out printed pages, AvePDF lets you permanently remove any information by drawing opaque areas over the content of the page and destroying the data behind it. … Once redacted, the information cannot be retrieved.",
        "caveat": "Vendor documentation, not a test we ran, and the redaction page itself does not say where the file sits while it is being redacted - the vendor's privacy policy at https://www.iubenda.com/privacy-policy/32291156 goes further than that page and names 'Hosting and backend infrastructure: Microsoft Azure', with a section headed 'Uploaded files to AvePDF and Document retention and use to improve our services' (read 2026-09-25) - but that material also states that the free service retains uploaded files and uses them to develop and improve its services, \"including to train our models\". That is a question about the tool’s privacy rather than its redaction, and both decide whether it is safe to use."
      },
      "processesLocally": false,
      "processesLocallyNote": "It is a hosted service, and the documented server upload and processing is what the record can evidence; EU residency would still need a direct regional source. Files are accessible for up to 30 minutes rather than deleted about thirty minutes later, and the free-service notice separately permits retention of free uploads for service improvement and model training while directing deletion requests to its privacy policy. That distinction belongs before an outbound action rather than after it.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Worth asking, and worth reading their privacy notice first: they state that files uploaded to the free tier are retained and used to train their models."
      },
      "license": "Proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "compress": "compressing a PDF in the browser on AvePDF by uploading a file of up to 128 MB and choosing a low, medium, high or very high compression level before downloading or saving the compressed PDF, powered by Nutrient PDF Optimization and the GdPicture MRC compression SDK, with free use limited to a small number of actions before Premium is required",
        "convert": "browser-based conversion of more than 100 file types to PDF, plus documented PDF-to-image conversion tools; limits and supported formats vary by tool",
        "merge": "merging multiple PDFs into one file in the browser on AvePDF by uploading a first PDF and then more files, each up to 128 MB, checking the file order and reorganising it before clicking Merge and downloading or saving the merged PDF, powered by the Nutrient PDF Editor and GdPicture.NET SDK, with free use limited to a small number of actions before Premium is required",
        "protect": "browser-based password protection for uploaded PDFs through the lock tool; the documented tool limit is 128 MB and files are processed by the service",
        "ocr": "running OCR in the browser on AvePDF on files in more than 100 formats up to 128 MB to generate a searchable PDF, choosing OCR languages from English, French, German, Spanish, Italian or Portuguese, powered by Nutrient OCR and the GdPicture.NET SDK, with free use limited to a small number of actions before Premium is required",
        "sign": "signing a PDF in the browser on AvePDF by drawing a signature with the cursor or importing one from the device, placing it by drawing a box on the document, optionally importing a certificate with its password for an additional level of security, and downloading or saving the signed PDF, powered by Nutrient PDF Signature and the GdPicture.NET SDK, with free use limited to a small number of actions before Premium is required",
        "edit": "editing a PDF in the browser on AvePDF with the Online PDF Editor by adding text, images and other items drawn directly on the page and then selecting and moving or recolouring them, and rotating pages, on files up to 128 MB, powered by Nutrient PDF Editor and the GdPicture.NET SDK, with free use limited to a small number of actions before Premium is required"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 65,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "avepdf.com pages and its served JavaScript bundle; avepdf.com pricing API; AvePDF privacy notice (iubenda); Orpalis launch press release. Read from the JavaScript bundle because the site is a client-rendered React app that returns no page copy to a plain fetch; the pages were then rendered on 2026-09-25 with scripts/render-page.mjs, which produced 5,338 bytes of visible text from https://avepdf.com/redact-pdf and 6,664 bytes from https://avepdf.com/, and those renders are the basis for the engine and hosting statements here. The engine disclosure is the redact page's 'Powered by Nutrient PDF Redaction (utilizing GdPicture.NET SDK)' and 'AvePDF is built on Nutrient's enterprise-grade PDF SDK', read against the home page's 'We develop all the AvePDF engines.' and its banner 'Orpalis is now Nutrient'; the privacy policy at https://www.iubenda.com/privacy-policy/32291156 names 'Orpalis Imaging SAS d/b/a Nutrient' as Owner and Data Controller, names 'Hosting and backend infrastructure: Microsoft Azure', and carries the section 'Uploaded files to AvePDF and Document retention and use to improve our services'.",
      "profileUrl": "https://dialegein.com/products/avepdf/"
    },
    {
      "slug": "axescheck",
      "name": "axesCheck",
      "tagline": "Free browser-based PDF/UA and WCAG accessibility checker that needs no installation.",
      "websiteUrl": "https://check.axes4.com/en",
      "summary": "axesCheck is axes4's free web checker for PDF accessibility. You upload a PDF in the browser and it reports whether the document meets the machine-verifiable requirements of PDF/UA, assessed through the Matterhorn Protocol, and of WCAG Level A and AA. It is the web counterpart to the PAC desktop application and is built on axes4's axesPAC checking engine, so the automated verdict matches the desktop tool's, but the report is delivered as a browser page rather than a desktop project. Because the file is uploaded, it is the one of the two where the document leaves your machine, and whether that suits a particular document is a question for the organisation that owns it rather than one this page can answer.",
      "bestFor": "Anyone who needs an accessibility verdict on a PDF without installing software, and users on macOS, Linux or a phone, where the PAC desktop application is not available.",
      "watchOutFor": "Your PDF is uploaded to axes4's servers to be checked. The upload form will not submit until a required consent checkbox is ticked, and its text says the user agrees to transfer the uploaded document and the personal data in it to axes4 GmbH for processing; the vendor also says it may store a document temporarily for troubleshooting and technical improvement. Whether that is acceptable is a decision for the organisation that owns the document rather than a blanket rule, and it is the thing worth establishing before anything sensitive is uploaded. The free upload is capped at 10 MB and there is no batch mode. And like PAC it only answers the machine-checkable questions, so a clean report is not the same as an accessible document.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "axes4 GmbH",
      "platforms": [
        "web"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility"
      ],
      "jobScores": {
        "accessibility": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://check.axes4.com/en",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Established, not inferred, and established from two independent places. The browser client posts the selected file as multipart form data to the relative endpoint /api/upload with a token and a language field, read directly from the site's own uploadForm JavaScript; the host is therefore check.axes4.com. Separately, the upload form will not submit until a required consent checkbox is ticked, and that checkbox text states that the user agrees to transfer the uploaded document and the personal data in it to axes4 GmbH for processing. uploadEndpointHost is set here, which per the guide overrides everything and renders \"Files leave your device\".",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. The browser client posts the file to check.axes4.com/api/upload, and the consent checkbox on the form states the document and any personal data in it are transferred to axes4 GmbH. It is the web edition of PAC and the one of the pair that cannot be used on a confidential document."
      },
      "license": null,
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "axesCheck review - PDF/UA and WCAG checker",
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "checks what a machine can check, does not repair"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1317,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "check.axes4.com (English home, its embedded upload-form configuration and consent labels, /en/privacy, a live example report at /en/result/46e88f6f-84d2-4b58-9b7a-422ce966a299), all read 2026; the site's own uploadForm JavaScript bundle fetched from check.axes4.com; www.axes4.com (desktop-software index, technology/axespac, shop, imprint, privacy-policy, EULA page, German blog post of 28 October 2022).",
      "profileUrl": "https://dialegein.com/products/axescheck/"
    },
    {
      "slug": "axespdf",
      "name": "axesPDF",
      "tagline": "Windows desktop accessibility checker and fixer for tagged PDFs, with PDF/UA machine checks and one-click repairs.",
      "websiteUrl": "https://www.axes4.com/en/desktop-software/axespdf",
      "summary": "axesPDF is a Windows desktop application for checking and repairing the accessibility of an already-tagged PDF. It runs the 89 machine-testable PDF/UA error conditions into one interactive report, then takes you straight to the offending tag so you can fix it: rename tags in bulk, repair Unicode mappings, tag content as an artefact, generate bookmarks and link targets, and around 50 other one-click repairs. Version 2.5 adds AI-assisted checks for semantic structure such as headings, lists, tables and captions, and the vendor states that model runs entirely on the local machine.",
      "bestFor": "Remediation specialists and accessibility teams on Windows who inherit tagged PDFs that fail PDF/UA and need to locate and repair faults in the tag structure quickly.",
      "watchOutFor": "It assumes a tagged PDF and is neither an auto-tagging tool nor a batch tool - bulk and server-side work is the vendor's separate axesFlip product - and it is Windows 10/11 only. axes4 is also explicit that the AI does not check the wording of alternative text and does not check reading order, which are the two things people most often assume 'AI checks' will settle. Unlicensed, it runs in a demo mode whose output is watermarked.",
      "pricingModel": "paid",
      "priceFromGbp": 482.11,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "axes4 GmbH",
      "platforms": [
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "edit"
      ],
      "jobScores": {
        "accessibility": 84,
        "edit": 55
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.axes4.com/en/desktop-software/axespdf",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Installed desktop application, and the vendor states the AI runs 'exclusively locally, on the computer on which axesPDF is running. It does not access cloud services or the internet in any way', and that documents are not used to train it. Downloads and licence activation are online, but checking and fixing do not send the document anywhere. Vendor-reported, not independently probed - the free web checker at check.axes4.com is a different axes4 product and does upload.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An installed Windows desktop application. The vendor states its AI-assisted checks run exclusively locally and access no cloud service or internet connection."
      },
      "license": "Proprietary subscription, per user, 1- or 2-year term",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": true,
      "title": "axesPDF review - PDF/UA checker and fixer",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "repairs an already-tagged document, does not tag one",
        "edit": "checking and correcting tagged PDF accessibility structure and Unicode mappings for PDF/UA and WCAG in the axesPDF desktop app; not general PDF editing"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1136,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "axes4.com: axesPDF product page, /axespdf/download, /axespdf/buy (subscription and bundle table), /axespdf/ai-checks-in-axespdf, /en/shop, /en/download, /en/imprint, /en/about-axes4/privacy-policy, /de/ressourcen-community/aeltere-software-versionen; support.axes4.com Zendesk article 7371474776978 'System requirements' (read through the help-centre JSON API because the HTML article is behind a Cloudflare challenge) and a help-centre search for 'redact' and 'Schwärzung'; axes4's 2021 'Produkte & Services rund um PDF-Barrierefreiheit' brochure, read through a third-party transcription at de.readkong.com, for the pre-rename product names.",
      "profileUrl": "https://dialegein.com/products/axespdf/"
    },
    {
      "slug": "azure-ai-document-intelligence",
      "name": "Azure AI Document Intelligence",
      "tagline": "Microsoft's cloud OCR and document extraction API, with an on-premises container option.",
      "websiteUrl": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/overview",
      "summary": "A cloud service that converts documents into structured data. It runs OCR and layout analysis over PDFs, scans, images and Office files, and layers prebuilt or customer-trained models on top for invoices, receipts, IDs, bank statements and tax forms. Results come back as JSON, and the Read model can optionally emit a searchable PDF with an embedded text layer. Unusually for this category, the same models can also run in Docker containers on your own hardware, including fully disconnected environments.",
      "bestFor": "Teams that need high-volume field extraction with confidence scores, especially organisations already on Azure that want regional processing and an on-premises escape hatch.",
      "watchOutFor": "The 500 MB field belongs to a tier, an API version and a model rather than to the service as a whole, so it is not recorded as a product-wide maximum. Model coverage depends on the version: the v4.0 container installation documentation lists Read and Layout, with additional models on v3.1 and v3.0, so the container offering does not mirror the cloud model set at every version. Containers run on a supported Docker host, which does not have to be a Linux operating system itself, and the supported hosts are documented separately. Connected containers send billing traffic to Azure, which is not document upload, and disconnected licensing is a separate arrangement with its own terms.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 1.1044,
        "currency": "GBP",
        "per": "1000_pages",
        "asShown": "S0 Read Pages - £1.1044 per 1K (tierMinimumUnits 0), £0.4417 per 1K (tierMinimumUnits 1000), UK South, currencyCode GBP",
        "source": "https://prices.azure.com/api/retail/prices?currencyCode='GBP'",
        "readAt": "2026-09-15"
      },
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "api",
        "self_hosted",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr",
        "convert"
      ],
      "jobScores": {
        "extract": 88,
        "ocr": 84,
        "convert": 78
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/overview",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Documents are sent to an Azure endpoint; the service stores them encrypted in the same region as the resource and deletes input and results 24 hours after analysis. Separately, Microsoft ships Linux Docker containers so Read and Layout can run on your own host - but connected containers still need an Azure key for billing, and disconnected ones need a purchased commitment plan and an expiring licence file.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Primarily a cloud service, but Microsoft ships Linux Docker containers and supports disconnected deployments. That makes it the only service in the OCR batch we could genuinely test on our own hardware, so it belongs here rather than with the permission-first tools."
      },
      "license": null,
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting text, tables, document structure and key-value fields from documents with the cloud-based Azure AI Document Intelligence service, using the Read, Layout, prebuilt or custom models, with fields returned as strongly typed values, through the REST API, C#, Python, Java and JavaScript SDKs or Document Intelligence Studio",
        "ocr": "extracting printed and handwritten text from PDF, JPEG, PNG, BMP, TIFF and HEIF inputs with the Read and Layout models of the cloud Azure AI Document Intelligence service, with optional add-ons for high resolution extraction, font properties, formulas, barcodes and language detection",
        "convert": "converting an analog or image-only PDF into a PDF with an embedded searchable text layer through the Searchable PDF capability of the cloud Azure AI Document Intelligence service, using the prebuilt-read model with the pdf output option"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 142,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "learn.microsoft.com Document Intelligence documentation (overview, service limits, disconnected and connected containers, Read model, add-on capabilities, FAQ, data privacy and security); Azure AI Language document PII documentation; Azure retail pricing API; the Azure Document Intelligence pricing page at https://azure.microsoft.com/en-gb/pricing/details/document-intelligence/.",
      "profileUrl": "https://dialegein.com/products/azure-ai-document-intelligence/"
    },
    {
      "slug": "bluebeam-revu",
      "name": "Bluebeam Revu",
      "tagline": "Construction-focused PDF markup and takeoff suite with genuine redaction, though the vendor's own sources disagree on which plans include it.",
      "websiteUrl": "https://www.bluebeam.com/product/",
      "summary": "A PDF markup, measurement and review suite built for architecture, engineering and construction rather than general document authoring. Teams annotate 2D and 3D drawings, run quantity takeoffs and measurements, compare revisions, and collaborate in real time through Bluebeam Studio, with companion browser and mobile apps. Redaction, digital signatures and other PDF content operations are sold with the subscription plans, though the vendor's own manual and its own pricing table disagree about whether redaction reaches the entry Basics plan.",
      "bestFor": "AEC project teams and estimators who need shared drawing markups, measurements and quality-control workflows rather than a general-purpose PDF editor.",
      "watchOutFor": "Redaction's plan gating is contradicted by the vendor's own two current sources, so confirm it before buying: the user manual puts it in Complete and Max only - 'Bluebeam Complete and Max plans include redaction tools that permanently remove sensitive text and images from your PDFs' - while the pricing page's own 'Compare all features' table ticks the row 'Redact PDF content permanently' in all four columns, Basics included, on both the US and UK pages (read 2026-09-25). For someone choosing a plan, that means the tick is not enough to buy Basics for redaction: the manual, which is the vendor's statement about the feature itself, says Complete or Max, and neither source is stale on its face, so get the answer in writing from Bluebeam if redaction is the reason for the purchase. Separately, and not in dispute: you cannot redact a PDF that has been digitally signed or certified. Free editing is not established, but the documented non-subscriber read-only access includes viewing, printing and form filling, so the free-use description is scoped by operation. OCR and batch operations are vendor-documented with plan restrictions, and Batch Slip Sheet is Complete or Max. Windows Revu is separate from the browser and mobile companion access, and no current native Mac Revu edition is implied. The redaction entitlement conflict stays unresolved rather than being settled by a pricing tick, applied removal is vendor-documented with untested output, and Revu 20’s July 2026 end of support and December 2026 end of life are recorded for perpetual legacy editions.",
      "pricingModel": "paid",
      "priceFromGbp": 264,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Nemetschek Group",
      "platforms": [
        "web",
        "windows",
        "mac",
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "view",
        "protect",
        "sign"
      ],
      "jobScores": {
        "edit": 82,
        "view": 90,
        "protect": 88,
        "sign": 75
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support.bluebeam.com/user-manual/menus/edit/redaction.html",
        "quote": "Bluebeam Complete and Max plans include redaction tools that permanently remove sensitive text and images from your PDFs. … When you redact content, it’s completely deleted from the PDF’s content stream.",
        "caveat": "The vendor’s own manual, not a test we ran. It establishes two limits it does not remove: the manual places the feature in the Complete and Max plans only, a placement the current pricing page's own comparison table contradicts by ticking redaction in all four columns, and - as with Aspose - applying is a SECOND step. The same page says \"Redacting a PDF is a two-step process: first mark the areas you want to redact, then apply the redaction to permanently remove that content.\" Marking alone leaves the text in the file."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the workflow. Revu runs on Windows and works on files on the machine, while Studio, cloud collaboration and the browser or mobile companion access are separate surfaces, so the web-scoped statement does not describe the product and a no-server badge would not either. Revu 21 subscription activation uses a Bluebeam ID and ordinary offline subscription access requires reauthentication after thirty consecutive days, with a separately documented offline solution, so offline editing is not the same as having no network dependency. The inherited desktop-not-checked wording contradicted the architecture description and is gone.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Revu on Windows. On their servers: Studio, cloud collaboration and browser or mobile companion access. A single answer for the whole product would be wrong for one of them."
      },
      "license": "proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "us",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": "Bluebeam Revu review - Construction PDF markup",
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Revu on Windows",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Studio, cloud collaboration and browser or mobile companion access",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "adding, replacing or deleting existing text in a PDF with the Edit Text tool in Bluebeam Revu, which matches the font, style and size of the text around it but will not wrap added text, and cannot be used on digitally signed or certified PDFs",
        "view": "viewing PDFs in Bluebeam Revu, with multiple documents open in document tabs and a Document Access menu, view rotation that changes only the display and is not saved to the file, and a full-screen Presentation mode, with Revu positioned for viewing multiple large drawings",
        "protect": "password protection, encryption and permission controls for PDFs in Bluebeam Revu, including limits on opening, printing and editing and applying the same security to multiple files at once; plan availability varies by subscription",
        "sign": "digitally signing and certifying PDFs in Bluebeam Revu, with digital signature fields, digital IDs from self-signed certificates or certificates purchased through third-party certificate authorities, signature validation and the Signatures panel, validating and signing against the Windows Certificate Store and PKCS #12 standards, with Adobe CDS signatures also supported"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 57,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "bluebeam.com (product, the US and UK pricing pages including the visible 'Compare all features' table, trials, privacy policy); the Bluebeam user manual page on redaction at https://support.bluebeam.com/user-manual/menus/edit/redaction.html; archived Revu 20 online help. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/bluebeam-revu/"
    },
    {
      "slug": "borb",
      "name": "borb",
      "tagline": "Dual-licensed pure-Python library for creating and manipulating PDFs, with an automatic page-layout engine and no non-Python dependencies.",
      "websiteUrl": "https://borbpdf.com/",
      "summary": "borb is a pure-Python PDF library that both writes new documents and manipulates existing ones. Content is described as Python objects  -  paragraphs, tables, lists, images, charts, barcodes, form fields and annotations  -  and a layout engine places them automatically, handling margins, padding, leading and multi-page flow. It models a PDF as a JSON-like tree of lists, dictionaries and primitives rather than a rendered page, which is how it opens documents, moves and removes individual pages from the page tree, appends one document to another, edits document metadata such as title and author, and extracts text and images.",
      "bestFor": "Python developers who want a pip-installable library with no compiled dependencies, are comfortable creating documents in code rather than from templates, and whose licence position allows AGPL or can fund a commercial tier.",
      "watchOutFor": "The AGPL is the whole decision, and it reaches further than most people expect. Using borb in a closed-source product, or in a paid service, requires a commercial licence  -  borb's own README says commercial use cases require a paid licence, and its pricing page states that any software incorporating borb must itself be open source under the same licence unless you buy one. The commercial tiers are priced per year against a document volume: 250 EUR for up to 1,000 documents a year, 500 EUR to 5,000, 1,000 EUR to 10,000, 5,000 EUR unlimited. Anything specialised is a separate line item at 250 EUR per year each  -  redaction, OCR, Markdown-to-PDF, find-and-replace. Read that redaction point carefully before assuming it is available to you: the open-source library exports a class called RedactAnnotation whose entire body is a docstring, a TODO and pass, so it does nothing whatsoever, and the vendor's own pages disagree about whether the paid add-on removes sensitive content or merely hides it. Two further traps: the AGPL notice in borb's own source adds a Section 7(b) condition that a covered work 'must retain the producer line in every PDF that is created or manipulated using borb', which is a requirement on your output rather than your code; and unless you call UsageStatistics.opt_out(), borb sends read and write usage statistics to a vendor endpoint by default. The ecosystem is also far thinner than ReportLab's  -  a solo-maintained project, a few thousand GitHub stars, and answers that mostly come from the maintainer himself. On telemetry the vendor’s own privacy policy is inconsistent: it describes default read and write telemetry with an opt-out, and later says unlicensed data is not sent without opt-in. That documentary conflict is recorded rather than resolved, so which default applies depends on the version, and claims that document content is excluded are the vendor’s rather than a packet capture.",
      "pricingModel": "freemium",
      "priceFromGbp": 214,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "merge",
        "edit"
      ],
      "jobScores": {
        "convert": 85,
        "merge": 60,
        "edit": 55
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://github.com/borb-pdf/borb",
        "readAt": "2026-10-04",
        "quote": null,
        "caveat": "Not determined, and the record’s own material is why. The listing records that the open-source annotation implementation is a placeholder and that the paid descriptions disagree with each other: one page says it ensures redacted content is permanently and correctly removed, while the pricing page describes applying blackouts, overlays or custom placeholders while ensuring the original content is irreversibly hidden. Hidden and removed are different claims, and the difference is the failure mode this field exists to catch. A versioned implementation and an output test would settle it, so this is a status rather than a finding."
      },
      "processesLocally": true,
      "processesLocallyNote": "The document itself never leaves the machine: it is an in-process Python package with no hosted component, and borb's privacy policy states plainly that 'No document content, metadata, or filenames are transmitted'. But borb is not silent on the network. By default it posts usage statistics  -  event type, document and page counts, version, operating system, licence validity window and company, plus a pseudonymous identifier derived from the connection IP address  -  to a vendor-managed endpoint when it reads or writes a PDF, and it queues those events in memory until a threshold is reached or the process exits. That is opt-out via UsageStatistics.opt_out(), not opt-in, and it happens from inside a locally installed library rather than from a service you chose to use.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Python library that processes files inside the calling process, so documents stay local. One nuance belongs with that verdict: borb sends usage telemetry by default - read and write events posted to a vendor endpoint, with a pseudonymous identifier derived from the connection IP, queued in memory until exit. No document content, metadata or filenames are sent, and it is opt-out rather than opt-in. This is the first record in the index where a locally installed library is network-active by default."
      },
      "license": "Dual-licensed, and the split is by licensee rather than by feature. The same package is available under AGPL-3.0-or-later (PyPI classifier 'GNU Affero General Public License v3 or later (AGPLv3+)'; the repository LICENSE.md offers it 'under a commercial license and under the AGPL license') or under a paid commercial licence whose tiers run from 250 EUR per year for up to 1,000 documents to 5,000 EUR per year unlimited. The commercial add-ons  -  borb_redact, borb_ocr, borb_markdown_to_pdf, borb_find_replace  -  are each a further 250 EUR per year and are gated by a signed licence file that the library verifies against an embedded public key, so they are closed functionality rather than AGPL code with a support contract. Unlike the iText split, the AGPL core and the commercial core are the same artefacts.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "multi",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "PDF creation plus Markdown-to-PDF and OCR add-ons; not a Word or Excel file converter",
        "merge": "merging existing PDF documents and manipulating their page trees with the pure-Python borb library",
        "edit": "editing a PDF with the borb Python library, editing document metadata and appending pages to the page tree, with borb described as a Python library for creating and manipulating PDFs and dual licensed under AGPL and a commercial licence"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 267,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "borbpdf.com (home, pricing); github.com/borb-pdf/borb (README.md, LICENSE.md, PRIVACY_POLICY.md, borb/pdf/__init__.py, borb/pdf/document.py, the toolkit/sink module listing, borb/pdf/layout_element/annotation/redact_annotation.py, borb/pdf/license/license.py, repository tree and metadata via the GitHub API); PyPI JSON API for `borb`; data-api.ecb.europa.eu for the EUR/GBP reference rate.",
      "profileUrl": "https://dialegein.com/products/borb/"
    },
    {
      "slug": "camelot",
      "name": "Camelot",
      "tagline": "Python library dedicated to pulling tables out of PDFs, with a parser chosen per document and pandas DataFrames as the output.",
      "websiteUrl": "https://camelot-py.readthedocs.io",
      "summary": "Camelot extracts tables from text-based PDFs and returns each one as a pandas DataFrame, with exporters for CSV, JSON, Excel, HTML, Markdown and SQLite. It offers a choice of parsers rather than one: lattice reads the ruled grid from the page, stream infers columns from whitespace, network grows a table from text alignments, hybrid merges the line and alignment signals, and an optional neural backend handles dense borderless tables and, with OCR, scans. Each table carries accuracy, whitespace and confidence metrics so poor extractions can be filtered without reading them.",
      "bestFor": "Analysts and engineers turning reports, statements and government tables into DataFrames, especially where the layout is ruled and repetitive and the table regions, columns or row grouping need to be tuned per document.",
      "watchOutFor": "No single parser wins on all documents, and the failure modes are documented per parser rather than hidden. The default lattice parser only works where cells are demarcated by lines; the stream parser needs whitespace between cells and its automatic detection can misjudge the table area when text is far apart vertically, needing edge_tol tuning; the project's own comparison page rates the heuristic parsers at their ceiling on borderless tables, where the optional ml backend roughly doubles the reported TEDS score but pulls in PyTorch. Scanned or image-only PDFs still need the ml and ocr extras, so the README's line that the built-in parsers need a text layer remains true. The dependency story has also moved: ghostscript is no longer required for image conversion (pdfium replaced it in v1.0.0) but is still an optional backend installing a system binary, and the ocr extra pulls rapidocr-onnxruntime, which hard-requires the full opencv-python even though Camelot itself uses the headless build. Finally, the 2.0 documentation contradicts itself on defaults: the advanced page still describes engine='raster' and line_scale 40 as the defaults, while the migration guide and changelog say engine='combined' and line_scale 15.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": null,
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2018,
      "primaryJob": "extract",
      "jobs": [
        "extract"
      ],
      "jobScores": {
        "extract": 88
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://camelot-py.readthedocs.io",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural and documented: read_pdf() takes a path, a URL, raw bytes or any binary file-like object, and the library reads the document in-process. There is no hosted service, no account and no upload endpoint described in the README, docs or package metadata. The only outbound network call possible is one you make yourself by passing an HTTP URL as the filepath.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Python library that reads a file from disk and returns tables. No hosted service exists to send anything to."
      },
      "license": "MIT",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting tables from text-based PDFs with the Camelot Python library, returning each table as a pandas DataFrame and exporting it to CSV, JSON, Excel, HTML, Markdown or SQLite, taking a file path, URL, raw bytes or binary file-like object as input"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 243,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 4,
      "claimsVerifiedByUs": 4,
      "reviewedBy": null,
      "source": "camelot-py.readthedocs.io (user/faq.html, user/how-it-works.html, user/comparison.html, user/migration.html, user/cli.html, user/install-deps.html, user/advanced.html - all served as the Camelot 2.0.0 documentation); github.com/camelot-dev/camelot (README.md and LICENSE on master; pyproject.toml; release notes for v2.0.0, v2.0.0rc1 and v1.0.9; tags v0.1.1, v0.7.3, v0.9.0, v0.11.0 LICENSE files); api.github.com/repos/camelot-dev/camelot (repo metadata and releases); pypi.org/pypi/camelot-py/json (version 2.0.0, requires_dist, extras, classifiers) and pypi.org/pypi/camelot-py/0.7.3/json (older metadata and requires_dist for the dependency history).",
      "profileUrl": "https://dialegein.com/products/camelot/"
    },
    {
      "slug": "camscanner",
      "name": "CamScanner",
      "tagline": "Mobile document scanner with OCR, PDF conversion and cloud sync.",
      "websiteUrl": "https://www.camscanner.com/",
      "summary": "CamScanner turns phone photos of paper into cleaned-up scans and PDFs, with automatic edge detection, cropping, filters and text recognition. Beyond scanning it offers page management, document size reduction through crop area and filter choice plus a Reduce Size share action, format conversion, annotation, e-signing, watermarking and password protection, plus a browser-based PDF toolbox. Files can stay on the phone or sync across devices through a CamScanner account.",
      "bestFor": "Individuals and small teams who want a capable free mobile scanner with OCR and an optional cloud library for syncing across devices.",
      "watchOutFor": "Free use is restricted - OCR text export, extra cloud space and several tools are subscription-only - and cloud sync, OCR and conversions send documents to CamScanner's servers rather than keeping them on the device. On size, the FAQ states that CamScanner does not support compressing a document to a specific size: size falls through the crop area, image filters such as black and white or Ink Saver, a compressed image share for files over 5 MB and a Reduce Size option in the PDF share preview, and very large documents are advised to be shared as a link rather than compressed to a target.",
      "pricingModel": "freemium",
      "priceFromGbp": 4.99,
      "priceBasis": "week",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "windows",
        "mac",
        "ios",
        "android",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "convert",
        "compress",
        "edit",
        "sign",
        "protect"
      ],
      "jobScores": {
        "ocr": 85,
        "convert": 75,
        "compress": 70,
        "edit": 70,
        "sign": 65,
        "protect": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.camscanner.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "The mobile app captures and enhances scans on the device, but the vendor's privacy policy says uploaded files are collected and processed on its servers for OCR, storage and sync, and the web PDF tools are server-side.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Primarily a mobile app, with a hosted web toolbox. The privacy policy states uploaded files are processed on their servers for OCR, storage and sync."
      },
      "license": null,
      "openSource": null,
      "selfHostable": null,
      "interfaces": [
        "http",
        "cli"
      ],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "recognizing text in images or PDFs with the OCR feature of the CamScanner scanner app, extracting that text for later searching, editing or sharing, and searching for images by their recognized content",
        "convert": "document conversion across the documented image, PDF, text and Office directions in CamScanner Agent; Office conversion runs through the Skill and CLI, Office inputs must be 40 MB or smaller and not password-protected, and same-format or arbitrary cross-Office conversion is excluded",
        "compress": "reducing the size of a saved CamScanner document, where the official FAQ entry How do I reduce the size of a saved document says CamScanner does not support compressing a document to a specific size, but documents ways to reduce it: adjusting the crop area, where the smaller the crop area selected on the editing screen the smaller the image; changing the image filter, where modes like black and white or Ink Saver also reduce image size; sharing as images, where after choosing Share as Image files over 5 MB can be shared at Actual Size or compressed proportionally; and sharing as a PDF, where tapping Edit PDF at the bottom of the document screen and then Reduce Size on the preview screen reduces it, with very large documents advised to be shared as a link; it is size reduction of CamScanner documents through scanning choices and share or preview actions rather than a compressor with a target size, quality level, resolution setting, algorithm or percentage, and none of those is claimed",
        "edit": "editing text and areas in images with CamScanner, where the official CamScanner skill and its Image Processing Reference describe a three step image scan then image edit flow that accurately replaces, deletes or moves text in an image while preserving the original layout and visual style, working from the character level OCR indexes returned by the scan step, with an update request replacing a character index range with new text, a delete request removing a text, table, image or stamp area, and a move request placing an area at a target position, producing an edited image file, and where the documented inputs are images in JPG, JPEG or PNG only and PDF inputs are routed to the PDF commands, so editing an existing PDF document is not documented",
        "sign": "adding a signature to PDF documents with the CamScanner web Sign PDF tool, where the official page says you add your signature to PDF documents online and then save the signed file for sharing or recordkeeping, and describes the mark as a signature drawn by hand or uploaded as an image, with seals, logos or cross page seals added when a document needs more than a signature, signing a document yourself or sending it to other people for their signatures with a due date, and importing a file or opening a document from the CamScanner cloud to begin signing, with processing stated to happen on cloud servers, and where the page contains no wording about certificates, digital signatures, timestamps, identity verification or an audit trail, so the documented operation is a visual signature rather than a certificate based digital signature",
        "protect": "adding an opening password to a PDF with the CamScanner web toolbox Protect PDF tool, so recipients must enter the password before viewing the document, producing a protected PDF file to share with the password sent separately, with processing on CamScanner cloud servers"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 428,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "camscanner.com (home, download, security-compliance, agent-docs: the Agent document capabilities page and the MCP connection page, dev.camscanner.com partner API page); CamScanner privacy policy; UK App Store listing. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/camscanner/"
    },
    {
      "slug": "chunkr",
      "name": "Chunkr",
      "tagline": "Document parsing and extraction service, run from their cloud or self-hosted from the open-source release.",
      "websiteUrl": "https://www.chunkr.ai/",
      "summary": "Chunkr turns documents into data for whatever comes next: the Parse API returns HTML or Markdown with bounding boxes for every element, and the Extract API returns structured JSON against a schema you supply, with a citation back to the region each value came from and a confidence score attached. The engineering bet is on vision models rather than text extraction - reading-order detection, layout segmentation, handwriting, formulas and complex tables are all treated as vision problems - and the output is shaped for retrieval pipelines rather than for human reading. It can be used as a managed API with published monthly pricing, or self-hosted from an AGPL-3.0 release, though the two do not run the same models, which is the distinction that matters most on this record.",
      "bestFor": "Developers building document-heavy pipelines who need machine-readable output with provenance: RAG ingestion, form and invoice extraction, and any workflow where a downstream system has to trust a value and be able to point back to where it came from. The confidence scores and per-field citations are the features that make it usable in a pipeline with a human review step, and the self-hosted release is there for teams that cannot send documents out.",
      "watchOutFor": "The open-source release and the paid API are not the same product. The repository states it plainly: the AGPL version uses community and open-source models while the cloud API runs proprietary in-house models \"for higher accuracy, speed, and enterprise reliability\". Anyone who evaluates the self-hosted version and buys on that basis would be buying different accuracy. The free allowance is described inconsistently - the pricing page says 200 credits, while the home page and the page's own structured data say 200 pages - and the two are only the same for PDFs, because a spreadsheet is charged by the cell rather than the page and vision-model processing costs double credits. Pricing is credit-based and scales with volume: the cheapest published plan is $375 a month, which is a commitment rather than a trial, and on-premises deployment is an enterprise conversation rather than a download. Finally, this is extraction software: it reads documents and returns data, and it does not write, modify or redact a PDF at all. The hosted API also has a published end date. Chunkr's documentation states that Chunkr is being acquired by Extend, that the hosted Chunkr API stays fully live through 14 November 2026 and shuts down on 15 November 2026, and that a migration guide covers moving a Parse or Extract integration to Extend. That shutdown applies to the hosted API only: the same documentation says the open-source version stays up, remains available under its existing licence, and needs nothing done if it is run with Docker Compose, so a self-hosted deployment is not affected. Anyone pricing the monthly plans above should read the migration guide first, because an API key does not carry over to Extend and documents and task outputs are not migrated, they have to be retrieved before the shutdown date.",
      "pricingModel": "freemium",
      "priceFromGbp": 280.62,
      "priceBasis": "month",
      "unitPrice": {
        "amount": 0.015,
        "currency": "USD",
        "per": "credit",
        "asShown": "Overage $0.015/credit on the Dev plan, falling to $0.008/credit at Scale; 1 credit per page for Parse and Extract",
        "source": "https://www.chunkr.ai/pricing",
        "readAt": "2026-09-22"
      },
      "hasFreeTier": true,
      "owner": "Lumina AI, Inc. (d/b/a Chunkr)",
      "platforms": [
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract"
      ],
      "jobScores": {
        "extract": 78
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.chunkr.ai/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` structurally rather than on absence: this is a reader. It parses documents into HTML, Markdown or JSON and extracts values with citations; nothing in the feature list, the API surface or the pricing model describes writing to a document or removing anything from one. The confidentiality question a reader should actually ask about this tool is different and is not answered by this verdict - it is what happens to the documents that are uploaded, which is why processesLocally and the zero-retention claim are recorded in the fields above."
      },
      "processesLocally": null,
      "processesLocallyNote": "Genuinely two products with two answers, so left null rather than guessed. The managed API is a hosted service - documents are uploaded and processed on Chunkr's infrastructure, which the security page describes as SOC 2 and HIPAA compliant with \"customizable zero data retention by default\" and deletion on an expiration the customer sets. The AGPL release is deployed by the customer with Docker Compose and can be run entirely inside their own infrastructure, and on-premises deployment is additionally offered to enterprise customers. uploadEndpointHost is deliberately null: setting it would label the self-hosted path as cloud-only, which is the mistake the schema's note on that field warns about. The honest reading is that locality here is a deployment choice, not a product property.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: The AGPL release. On their servers: The managed API. A single answer for the whole product would be wrong for one of them."
      },
      "license": "AGPL-3.0 for the self-hosted release; the managed cloud API is proprietary. The repository states that the open-source version uses community models while the cloud runs in-house models.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "http",
        "library"
      ],
      "dataResidency": "unknown",
      "requiresAccount": true,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "The managed API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "The AGPL release",
          "processing": "customer_server",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting structured data from documents with the Chunkr Extract feature, filling a JSON Schema you define and returning the result in that schema shape with a source citation and a confidence score for each extracted value, accepting a raw document from a URL, file upload or base64, or an existing parse task"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 130,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 4,
      "claimsVerifiedByUs": 4,
      "reviewedBy": null,
      "source": "chunkr.ai, read 2026-09-22 with headless Chrome: the home page (visible text 4249 bytes), the pricing page (874 bytes, mostly a rate table) and the GitHub repository at github.com/lumina-ai-inc/chunkr (6279 bytes), plus the AGPL-3.0 licence fetched as a file from raw.githubusercontent.com (34,523 bytes). Vendor documentation, not independently tested; no API key was obtained, nothing was uploaded and no document was parsed.",
      "profileUrl": "https://dialegein.com/products/chunkr/"
    },
    {
      "slug": "commonlook-office",
      "name": "CommonLook Office",
      "tagline": "Windows add-in that generates accessible PDFs from Word and PowerPoint and walks the author through the checkpoints.",
      "websiteUrl": "https://allyant.com/pdf-accessibility-software-solutions/commonlook-office/",
      "summary": "CommonLook Office is Allyant's authoring-side product: an add-in for Microsoft Word and PowerPoint that collects accessibility information while the document is being written and then generates a tagged PDF from it. It is the counterpart to CommonLook PDF, which repairs documents after the fact - this one tries to stop the problem being created, checking style-to-tag mapping, table structure and the other checkpoints against Section 508, HHS, WCAG and PDF/UA before a PDF exists. It is a Windows add-in installed from an executable and activated with a product key, which is the opposite of the direction CommonLook PDF took in July 2025.",
      "bestFor": "Teams that author their own documents in Word or PowerPoint and would rather the accessible version came out of the authoring tool than be retrofitted afterwards. It is the right shape when you hold the source files and can ask the people creating them to work through a checkpoint pass, and the wrong tool entirely when all you receive is a finished PDF from someone else - which is the situation CommonLook PDF exists for.",
      "watchOutFor": "There is no published price and no self-service path: every call to action on the product page is a demo booking, so budgeting means contacting Allyant or a reseller. It is Windows-only and needs the source documents. The installation manual requires Windows 10 or later with Word 2010 or later, and PowerPoint 2010 or later if you use it, so a Mac-based team cannot run it at all. Installation is an executable that needs a ten-digit product key and activation over the internet or by email, making it a managed deployment rather than an install-and-go. Most importantly, the verification language is the vendor's claim about its own checkpoints: the page says the software offers \"complete verification, covering all conformance criteria for your chosen accessibility standard\". That is a guided process rather than an unattended pass: the workflow collects accessibility information from the author and walks them through checkpoints, so manual judgement is part of it and the claim is not the same as an automated certification. What remains specific to the automated portion is that a checkpoint passing cannot judge whether alternative text actually describes its image or whether the reading order makes sense, which is the part a person still has to settle. The add-in is installed software, and the record found no explicit vendor statement about what it transmits during normal use, so nothing is claimed about that either way.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Allyant",
      "platforms": [
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility"
      ],
      "jobScores": {
        "accessibility": 74
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://allyant.com/pdf-accessibility-software-solutions/commonlook-office/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and structurally: this is an authoring tool for the PDF rather than an operation performed on a finished one. It converts Word and PowerPoint documents into tagged PDFs and guides the author through accessibility checkpoints - style mapping, table tagging, alternative text - and nothing in the feature list removes content from a document that already exists. What it does not establish: anything about CommonLook PDF, the sibling product, which is a separate record with its own evidence, or about whether the add-in's editor can delete content during authoring, which is not the same thing as a redaction feature."
      },
      "processesLocally": true,
      "processesLocallyNote": "The document is authored in Word or PowerPoint on the workstation and the add-in produces the PDF from it, so the content does not have to be sent anywhere to be tagged. Activation is the exception: installation requires a product key registered over the internet or by email, which contacts the vendor's licensing server. That is a licence check rather than document processing and the two should not be confused. No page read states what, if anything, the software sends during normal use, so this is recorded as true on the documented workflow - an add-in operating on a local file - and not on an explicit statement about network traffic.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Windows add-in for Microsoft Word and PowerPoint. The document is authored and tagged on the workstation through Office's own interface, so there is no service for the file to be sent to. Installation activates a product key over the internet, but that is licensing rather than document processing."
      },
      "license": "Commercial, quoted rather than published; a per-seat add-in installed from an executable and activated with a product key",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "generating accessible PDFs from Microsoft Word (doc, docx) and PowerPoint (ppt, pptx) documents with CommonLook Office, which guides the author through accessibility checkpoints before the PDF is generated, maps Word styles to PDF tags, tags simple complex and presentation-style tables, and verifies the result against Section 508, HHS, WCAG or PDF/UA"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 200,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "allyant.com product page for CommonLook Office and manuals.commonlook.com installation guide, both read 2026-09-22 with headless Chrome (visible text 2741 and 4334 bytes respectively). Vendor documentation, not independently tested; the software was not downloaded, no product key was requested and no document was converted.",
      "profileUrl": "https://dialegein.com/products/commonlook-office/"
    },
    {
      "slug": "commonlook-pdf",
      "name": "CommonLook PDF",
      "tagline": "AI-assisted PDF accessibility remediation in the browser or as an Acrobat plug-in, with PDF/UA, WCAG and HHS validation.",
      "websiteUrl": "https://allyant.com/pdf-accessibility-software-solutions/commonlook-pdf/",
      "summary": "CommonLook PDF is Allyant's commercial PDF accessibility remediation product. It auto-tags documents with AI, provides advanced and simplified editing paths, supports manual tagging and structural fixes for tables, lists, forms and document elements, validates output against PDF/UA, WCAG and HHS, and attaches a downloadable validation report to each remediated file. It is sold in two delivery modes: a web application and a desktop edition that Allyant's support guide describes as an Adobe Acrobat Pro or Pro DC plug-in (formerly CommonLook PDF GlobalAccess). The desktop product's current published version is 5.17, dated 11 September 2024; the web app's version is not published on the current product/resource pages, so no single version is asserted for both. Editing means remediating an existing PDF's accessibility structure and tags, reading order, alt text, headings, tables/lists and form-field labels in the Advanced or Simplified editor - not generic body-text authoring in a word processor. Pricing is quote-only; the only public entry point is a request form for a free 7-day trial or a demo. The trial is not a free tier, and the separate CommonLook PDF Validator is a different free product. The web edition is upload-based; the desktop edition runs inside Acrobat, and no absolute no-upload guarantee is made for it.",
      "bestFor": "Large teams and non-technical staff who have to clear a backlog of inaccessible PDFs and want a guided, standards-mapped remediation workflow with validation reports, rather than a bare tag editor.",
      "watchOutFor": "The product is quote-only: no price or checkout is published, and the free 7-day trial is a time-limited sales form, not a free tier. The web edition is upload-based and Allyant's privacy policy says submitted documents are processed/stored on servers in the United States and/or Canada; the desktop edition is an Acrobat plug-in that runs locally, but no current page states it never uploads, so the record does not claim all-local processing. The desktop product's latest published version is 5.17 (11 September 2024); the web app's version is not exposed, so do not treat 5.17 as the web version. Editing is accessibility-structure remediation of existing PDFs - tags, reading order, alt text, headings, tables/lists and form-field labels - not generic body-text editing, OCR or a full document editor. AI/manual tagging and a passing PDF/UA/WCAG/HHS check are not a guarantee of semantic or legal compliance; human review remains necessary, and the vendor itself warns that automation alone is not sufficient for complex content. PDF/UA, WCAG and HHS support is the vendor's claim about its checkpoints, not an independent certification or a validator guarantee. The separate CommonLook PDF Validator is not this product. Owner is recorded as the Allyant trading name; the legal operating entity is NetCentric Technologies Inc. doing business as CommonLook, now trading as Allyant. No source licence is offered.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Allyant",
      "platforms": [
        "web",
        "windows",
        "mac"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "edit"
      ],
      "jobScores": {
        "accessibility": 88,
        "edit": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://allyant.com/pdf-accessibility-software-solutions/commonlook-pdf/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": null,
      "processesLocallyNote": "Mixed by edition. The web edition is upload-based: the documented workflow starts with Upload a PDF and ends with Download accessible files, and Allyant's privacy policy says documents submitted for processing are handled on servers in the United States and/or Canada. The desktop edition is an Adobe Acrobat Pro/Pro DC plug-in and runs inside Acrobat on the local machine, but no Allyant page was found stating that it never uploads, so this record does not infer an absolute local-only answer. The field stays null because one boolean would be wrong for one of the editions.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: The Acrobat plug-in, Windows, The Acrobat plug-in, macOS. On their servers: The web edition. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary commercial software from Allyant (legal entity NetCentric Technologies Inc., doing business as CommonLook, now trading as Allyant). No public price list or checkout is published; the purchase path is a request form for a free 7-day trial or a demo quote. The 7-day trial is time-limited and is not a free tier. The separate CommonLook PDF Validator is a different free product in the suite, not a free edition of CommonLook PDF. No source licence is offered.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "The web edition",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "The Acrobat plug-in, Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "The Acrobat plug-in, macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "remediating an existing PDF for accessibility with CommonLook PDF in the web or Acrobat plug-in edition, using AI-driven automatic tagging, advanced or simplified editing, manual tagging, structural fixes for tables/lists/forms and other document elements, and validation against PDF/UA, WCAG and HHS with a downloadable report of passed, failed and warning issues. The scope records validation/checking and the documented remediation/editing workflow, while making clear that a vendor validation report and automated/manual tagging are not a guarantee of semantic or legal accessibility compliance and do not replace human review",
        "edit": "editing an existing PDF's accessibility structure in CommonLook PDF's Advanced or Simplified editor: correcting the tag tree, reading order, alt text, headings, tables/lists and form-field labels, applying structural fixes and re-validating the remediated PDF. The scope is limited to the documented accessibility-remediation editing workflow and does not claim generic body-text/word-processor authoring, OCR, arbitrary content editing or a general PDF editor; OCR and interactive-element creation are described by the vendor as separate pre-remediation steps, not as CommonLook's own OCR capability"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 153,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://allyant.com/pdf-accessibility-software-solutions/commonlook-pdf/ (product, advanced/simplified editing, AI/manual tagging, tables/lists/forms, PDF/UA/WCAG/HHS validation, 7-day trial; read 2026-10-16); https://support.allyant.com/support/solutions/articles/156000020003-commonlook-pdf-advanced-editor-quick-start-guide (current Advanced Editor tags/reading order/alt text/tables/headings; modified 13 Oct); https://support.allyant.com/support/solutions/articles/156000367421-web-based-commonlook-pdf-simplified-editor-quick-start-guide (current Simplified Editor reading order/alt text/tables/forms; modified 30 Mar); https://allyant.com/commonlookresources/ (desktop latest 5.17, 11 Sep 2024); https://www.allyant.com/privacy-policy (US/Canada hosting); https://www.allyant.com/about/licence-terms or terms (licence/trial; no source licence); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/commonlook-pdf/"
    },
    {
      "slug": "datalogics-adobe-pdf-library",
      "name": "Adobe PDF Library",
      "tagline": "Commercial PDF SDK built on Adobe's own engine, sold and supported by Datalogics.",
      "websiteUrl": "https://www.datalogics.com/adobe-pdf-library",
      "summary": "Adobe PDF Library is the commercial SDK that uses the same PDF engine as Adobe Acrobat, sold and supported by Datalogics rather than by Adobe. It creates, converts, modifies, secures and processes PDFs from C++, .NET and Java on Windows, Linux and macOS, covering the parts of the specification that trip other libraries - colour spaces, embedded fonts, XFA forms, digital signatures and print workflows. Version 21 is the current line, and there is a containerised deployment path for teams that would rather not install it.",
      "bestFor": "Enterprises and OEMs whose requirement is fidelity to the PDF specification, particularly in regulated industries and high-volume document automation, where a rendering difference between your output and Acrobat's is a business problem rather than a cosmetic one. It is also the choice for teams that need XFA or the newer Adobe extensions, which third-party engines tend to implement imperfectly.",
      "watchOutFor": "The published figure is a starting point rather than the whole cost: $5,999 a year buys internal use on one platform, and OEM distribution, SaaS use and per-server deployment are all priced separately and higher, with royalties on top for OEMs. The free trial is a trial, not a free tier. It is also a licence bought from a reseller of somebody else's technology - the engine is Adobe's and the vendor is Datalogics - so support and roadmap questions involve two companies, and Adobe's own strategic direction for the library is not something Datalogics controls. Finally, the vendor's own comparison material positions it explicitly against Apryse and Nutrient, which is useful reading but is also marketing written by one of the three.",
      "pricingModel": "paid",
      "priceFromGbp": 4489.17,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Datalogics",
      "platforms": [
        "windows",
        "linux",
        "mac",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "sign",
        "convert",
        "ocr",
        "merge",
        "extract",
        "compress"
      ],
      "jobScores": {
        "edit": 85,
        "protect": 85,
        "sign": 80,
        "convert": 80,
        "ocr": 75,
        "merge": null,
        "extract": null,
        "compress": null
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.datalogics.com/adobe-pdf-library",
        "readAt": "2026-09-22",
        "quote": "PAdES, CMS, RFC 3161 timestamps, and PAdES policy signatures. Manage passwords, encryption, redaction, permissions, watermarks, and document locking.",
        "caveat": "RECORDED AS UNVERIFIED AND LEFT THERE DELIBERATELY. Redaction appears twice on the product page, once in that feature line and once in the FAQ (\"It also supports document encryption, password protection, redaction, and permission management\"), and both times it is a word in a list. Neither says whether the content is removed from the page or merely covered, and this index's whole reason for holding the field is that those two are different. Datalogics' site has no redaction-specific page - searching the rendered document for one found nothing. What would settle it: the API reference for a redaction call, or a canary test. Until then a reader should assume nothing, and in particular should not read \"supports redaction\" from one of the three most expensive SDKs here as reassurance."
      },
      "processesLocally": true,
      "processesLocallyNote": "An embeddable SDK that runs inside your own application, on your own servers, desktops or containers. Datalogics operates no processing service in that path. The same company also sells pdfRest, a hosted API, which is a separate product with its own record.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An embeddable SDK that runs inside the application you build, on your own servers, desktops or containers. Datalogics operates no processing service in that path; the same company sells pdfRest, a hosted API, which is a separate product."
      },
      "license": "Commercial, licensed annually: OEM (flat annual fee per platform plus royalties), SaaS, or internal and end-user use per server or desktop",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": "Adobe PDF Library review - Commercial PDF SDK",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "modifying existing PDF documents in the officially published .NET samples: optional content layer states, transparency flattening, page labels and low-level PDF objects",
        "protect": "password-based PDF security with access permissions and encryption through Document.Secure, including the requirement that the document be fully saved for changes to take effect",
        "sign": "digitally signing a PDF with the Datalogics Adobe PDF Library SignDoc class, setting the signature field, credential data and digest category and choosing among the documented signature types CMS, RFC3161 trusted timestamp and PAdES baseline B-T, as documented in the APDFL 18 .NET Framework API reference",
        "convert": "converting a document to the PDF/A or PDF/X standard with the Datalogics Adobe PDF Library, using PDFAConvertParams and PDFXConvertParams to control the conversion, including options to remove all annotations and actions from the output, rasterize pages when fonts cannot be embedded, abort when XFA form content is present and either ignore or validate conversion errors, as documented in the APDFL 18 .NET Framework API reference",
        "ocr": "OCR of rasterized PDF pages and images through the .NET API, placing recognized text behind the image so the content becomes searchable",
        "merge": "merging two PDF documents together, through the officially published .NET sample",
        "extract": "enumerating document information through the officially published .NET samples: bookmarks, document info, layers, paths and XMP metadata",
        "compress": "documented optimisation"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1028,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "datalogics.com: the Adobe PDF Library product page and the pricing and licensing page, read 2026-09-22 with headless Chrome, plus the European Central Bank reference rate for the same date. Vendor documentation, not independently tested; the SDK was not downloaded and no PDF was processed.",
      "profileUrl": "https://dialegein.com/products/datalogics-adobe-pdf-library/"
    },
    {
      "slug": "dochub",
      "name": "DocHub",
      "tagline": "Browser PDF editor and e-signature tool wired into Google Drive and Gmail.",
      "websiteUrl": "https://dochub.com/",
      "summary": "DocHub is a browser-based PDF editor and e-signature service. You upload a PDF or import from Google Drive, Dropbox or OneDrive, then edit embedded text, annotate, add fillable form fields, merge, split or reorder pages, and sign it or send it for signature with tracking. Uploaded documents live in your DocHub account on its storage until you delete them. Free accounts can edit, sign and share within daily and monthly limits.",
      "bestFor": "Google Workspace-centric individuals and teams that need to fill, edit and e-sign PDFs in a browser without installing desktop software.",
      "watchOutFor": "Cloud only: files are uploaded and stored until you delete them, free accounts are capped by daily and monthly limits, and premium tools require DocHub Pro. Its whiteout and redact tool covers content rather than removing it. Redaction behaviour is not independently tested and the vendor documentation conflicts: the linked help article describes movable whiteout annotations, while the current pricing matrix describes permanent text and image removal. Neither marketing language nor reversibility inside the editor establishes what an exported PDF contains, so an applied and exported file would need extraction and object inspection before a Removes or Covers verdict is assigned. Current pricing describes a shared three-use monthly allowance across core free features rather than unspecified daily or monthly limits, and Pro documents Bulk Send, so bulk signing is vendor-supported with a plan restriction rather than general PDF batch processing. Document-password protection appears in the enterprise Site License comparison, so Protect is qualified by operation and plan. Cloud storage and optional AI workflows are vendor-reported.",
      "pricingModel": "freemium",
      "priceFromGbp": 5.93,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "sign",
        "merge",
        "protect"
      ],
      "jobScores": {
        "edit": 85,
        "sign": 85,
        "merge": 75,
        "protect": 55
      },
      "redaction": "covers_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://help.dochub.com/knowledge-base/document-editing/adding-whiteout-or-redactions-to-your-document",
        "quote": "The Whiteout Tool allows you to easily cover up and erase content on a PDF document. … lets you frame a box over any area of your document you want to cover or erase with whiteout. … This will create a boxed annotation window that is filled with white space.",
        "caveat": "The vendor’s own help article, not a test we ran. The wording decides the verdict: the tool creates a boxed ANNOTATION filled with white space, and an annotation is something added to the page - nothing here says the covered characters leave the file. The same article notes that the black variant (\"Redact\") requires the paid Pro plan while whiteout is available without it, so which of the two a reader gets depends on their plan."
      },
      "processesLocally": false,
      "processesLocallyNote": "Documents are uploaded and saved in your account, and the vendor's help centre states they are stored in encrypted AWS S3 storage until you delete them. The editor runs in the browser but the document does not stay on your machine.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. The help centre states documents are uploaded and stored in AWS S3 until deleted."
      },
      "license": null,
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "field and form preparation; not editing original PDF text",
        "sign": "downloading a PDF from DocHub as a digitally certified copy, or receiving one automatically from a Sign Request, where the PDF carries an embedded X.509 PKI digital signature issued by DocHub that indicates the document has not been modified since signing and proves its authenticity, is LTV enabled, and may embed signer details such as name, email and geolocation in the signature reason",
        "merge": "merging documents into one single combined PDF in the DocHub web editor, from the Page Manager or Page Controls panel using the merge and append file option, importing one or more PDFs from the device, cloud storage or the users own DocHub account and choosing whether the incoming file is inserted before or after a page of the current document, with the combined document remaining editable and able to be sent for signatures",
        "protect": "adding password protection to a downloaded PDF with the password protect option in the Encrypt group of the PDF Options in DocHub's download or export dialog, which according to the help article adds password encryption to the downloaded PDF, so the protection is applied to the exported file rather than to the copy stored in the account"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 150,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "dochub.com; dochub.com/pricing; help.dochub.com knowledge base articles on security, data retention, editing, whiteout/redaction and mobile; legal.dochub.com.",
      "profileUrl": "https://dialegein.com/products/dochub/"
    },
    {
      "slug": "docling",
      "name": "Docling",
      "tagline": "IBM-started open-source library that turns PDFs and office documents into structured Markdown, HTML or JSON with layout, table and reading-order models.",
      "websiteUrl": "https://docling-project.github.io/docling/",
      "summary": "Docling converts PDF, DOCX, PPTX, XLSX, HTML, EPUB, LaTeX, email, audio and image files into a single in-memory document model described by layout, reading order, table structure and picture classification, then exports that model as Markdown, HTML, JSON, DocTags, WebVTT or DocLang. It runs entirely in-process as a Python library with a CLI and a bundled HTTP server, and it is the one of the two rivals here that can be driven with no GPU at all on a CPU-only install. Layout, table and OCR models are downloaded from Hugging Face on first use.",
      "bestFor": "Teams that need a permissively licensed converter they can embed in a Python pipeline and run on their own machines, including air-gapped and CPU-only ones, and who care about breadth of input formats more than top-end accuracy on ugly scans.",
      "watchOutFor": "Accuracy on hard PDFs is its weak point, and the proof is the competitor's own benchmark: Datalab's olmocr-bench comparison scores Docling at 50.3 overall and 64.0 on born-digital PDFs against Marker's 76.0 and 83.5. On top of that, the first conversion downloads several gigabytes of model weights, so a cold start on a locked-down or air-gapped machine fails unless the models are pre-fetched, and the default OCR engine selection is a real quality decision rather than a default you can ignore.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 4,
        "currency": "USD",
        "per": "1000_pages",
        "asShown": "'Docling for IBM watsonx' - the managed instance of the same REST API, USD 4 per 1,000 pages pay-as-you-go",
        "source": null,
        "readAt": "2026-09-15"
      },
      "hasFreeTier": true,
      "owner": "LF AI & Data Foundation",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": 2024,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "convert",
        "ocr"
      ],
      "jobScores": {
        "extract": 78,
        "convert": 62,
        "ocr": 65
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://docling-project.github.io/docling/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: pip install docling gives an in-process library plus a local CLI, with no hosted component in the package and no account. The project's README lists local execution for sensitive data and air-gapped environments as a feature. One exception to be aware of: the same package can be pointed at an OpenAI-compatible inference server for VLM and picture-description enrichment, and `docling convert-remote` talks to a docling-serve instance; in those configurations page images do leave the machine, by the operator's own choice.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An in-process Python library and CLI with no hosted component and no account. One exception, recorded in the note: the optional VLM picture-description path and the convert-remote command can be pointed at a server, so page images leave only if the operator configures it that way."
      },
      "license": "MIT for the Docling codebase. The optional OCR and vision-language model weights are licensed separately by their original packages, and the README directs users to those licences rather than covering them.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli",
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "library",
          "name": "The Python library and CLI",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": [
            {
              "name": "Docling codebase",
              "licence": "MIT",
              "version": null,
              "note": null
            },
            {
              "name": "Optional OCR and VLM model weights",
              "licence": "Licensed separately by their original packages",
              "version": null,
              "note": "The README directs users to the individual model licences; MIT does not cover them."
            }
          ]
        },
        {
          "id": "serve",
          "name": "docling-serve",
          "processing": "customer_server",
          "platforms": [
            "self_hosted",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting structured content from documents with the Docling Python library or CLI, which parses formats including PDF, DOCX, PPTX, XLSX, HTML, EPUB and images into the unified DoclingDocument representation and exports it to Markdown, HTML, JSON, DocTags or DocLang, with the advanced PDF understanding the project lists as page layout, reading order, table structure, code and formulas",
        "convert": "renditions only: exporting the parsed Docling document to serialized files with the library export methods, Markdown through export_to_markdown, HTML through export_to_html, plain text through export_to_text, DocTags and DocLang, VTT and a dictionary form, which serialise the Docling Document rather than converting between document formats, with no DOCX, PPTX, XLSX or PDF output, no round trip and no fidelity claim",
        "ocr": "running OCR on scanned pages and images in Docling with a selectable engine among RapidOCR, Nemotron-OCR, EasyOCR, ocrmac, tesseract CLI and tesserocr, each installed as an extra package, with the language set through the single OcrOptions.lang field either as engine native codes or as iso: prefixed BCP-47 tags, an error raised when the selected engine has no model for the requested language, and an option to send OCR requests to a remote KServe v2 inference server"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 96,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "docling-project.github.io/docling (usage index, OCR concepts page, API server managed-service page); github.com/docling-project/docling (README, LICENSE, pyproject.toml); raw docs/usage/gpu.md, docs/getting_started/installation.md and docs/examples/pii_obfuscate.py from the same repository; pypi.org/pypi/docling JSON API for release dates; api.github.com repository metadata; ibm.com/products/docling product page, re-read 2026-09-25 for the managed-service hosting line ('Managed API-based Docling service. Instance deployed on AWS.'); github.com/datalab-to/marker README, read 2026-09-25, for the olmocr-bench composition and its own wording that olmocr-bench is 'a third-party benchmark' linking github.com/allenai/olmocr.",
      "profileUrl": "https://dialegein.com/products/docling/"
    },
    {
      "slug": "docraptor",
      "name": "DocRaptor",
      "tagline": "Hosted HTML-to-PDF API built on the Prince engine, with CSS Paged Media and tagged accessible output.",
      "websiteUrl": "https://docraptor.com/",
      "summary": "DocRaptor is a commercial REST API that turns HTML and CSS into PDFs using the Prince XML engine rather than a browser, and can also emit XLS and XLSX from HTML or XML. Because Prince implements CSS Paged Media directly, it handles running headers and footers, page-level size and orientation changes, footnotes, crop marks, PDF bookmarks, CMYK output and tagged PDFs for accessibility, and it can produce fillable PDF forms from HTML form elements. Official client libraries exist for most languages, and a free account can generate five documents a month plus unlimited watermarked test documents.",
      "bestFor": "Developers generating long, heavily paginated documents - invoices, statements, reports, books - who need paged-media layout that a browser engine renders badly, and who are willing to send the source document to a third-party API.",
      "watchOutFor": "It is a hosted service with client libraries rather than an embedded engine: the official examples send source content or a URL to DocRaptor’s endpoint, and the renderer runs on their side, so an API client SDK is the accurate description and a local Prince installation is not what these examples do. Your HTML and its data leave your infrastructure and are processed on DocRaptor's AWS servers, with a data-retention window you configure, so this is not usable for content that cannot go to a vendor. The entry price also buys only 125 documents a month; at volume the per-document rate is what matters, and it improves with the plan tier. Small plans are metered strictly rather than throttled - beyond 125 documents you pay per document, and test-mode output is watermarked. The operational limits matter more than size here: a synchronous generation runs for one minute by default, asynchronous jobs get ten minutes, and 30 requests can run at once, while hosted-document output is capped at 100 MB. The cited page states no hard input or output size or page cap for general conversion. Test mode watermarks its output, and the free allowance covers production documents.",
      "pricingModel": "freemium",
      "priceFromGbp": 11.13,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Artifex Software",
      "platforms": [
        "api"
      ],
      "launchedYear": 2010,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://docraptor.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "The HTML or the URL to fetch is sent to https://api.docraptor.com/docs and rendered there; nothing is generated on your machine. DocRaptor's privacy policy states that when you send document data it retains a copy of your input and output documents 'only until you have downloaded the document and the time you specify for data retention has expired', and that it does 'NOT retain your original input or the generated document past the data retention period' unless you use its document debugging or document hosting services. The shortest retention setting deletes the input as soon as it is consumed and the output as soon as it is downloaded, or after 15 minutes if it is not downloaded; the longest is a week. Documents are encrypted in transit and at rest on AWS.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. The HTML or document you send for conversion is posted to api.docraptor.com and processed there. There is no self-hosted or offline edition."
      },
      "license": "Proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "us",
      "requiresAccount": true,
      "watermarkOnFree": false,
      "title": "DocRaptor review - Hosted HTML-to-PDF API",
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {},
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 322,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "docraptor.com (home, about, plans, signup, security-and-privacy, documentation index, documentation/api/making_documents, documentation/api/limits, documentation/api/test_documents, documentation/api parameters, documentation/article/1273806-how-overage-works, documentation/article/1067527-document-storage-privacy-vs-debugging-assistance); legal.docraptor.com (privacy policy v9.0, effective 2026-06-03); ECB euro foreign exchange reference rates, 2026-09-15. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/docraptor/"
    },
    {
      "slug": "documenso",
      "name": "Documenso",
      "tagline": "Open-source e-signature platform you can self-host or use as a hosted cloud.",
      "websiteUrl": "https://documenso.com/",
      "summary": "Documenso is an open-source e-signature platform, currently at release 2.20.0 (8 October 2026), that can be self-hosted or used through the vendor's hosted cloud. You upload a PDF (or a DOCX that the server converts to PDF), add recipients and fields such as signature, date, name and text, then send it for signing with an audit trail, direct links and optional templates. It prepares recipients, fields and workflow settings around the uploaded document; it does not modify the PDF's visible text, images or layout. The open-source Community Edition is AGPL-3.0 and free; the Business Edition is a fixed yearly self-hosted licence for production use; Enterprise is tailored/quote-based with SLAs and priority support. Hosted plans run from Free (5 documents/month) through Individual, Teams and Platform. The hosted service is not the AGPL edition, and self-hosting is a deployment/data-location choice rather than a guarantee about every configured email, verification or webhook path.",
      "bestFor": "Teams that want an auditable signing flow they can run on their own infrastructure, or a lower-cost hosted alternative to DocuSign; teams that need to modify PDF body text or layout should use a different content tool instead.",
      "watchOutFor": "It signs and tracks documents rather than modifying their visible PDF content: no redaction, compression, merging, OCR, layout changes or general content changes. Recipient/field/template configuration is workflow preparation, not document content modification. The AGPL licence and the paid Business and Enterprise editions matter if you plan commercial self-hosting, and the project has paused external pull requests, so community contributions are limited to issue reports. Self-hosting decides where documents are stored, not what every configured path sends; recipient links, storage backends, verification and webhook integrations are configured rather than implied by the licence. The current GDPR documentation states EU data centres for hosted application data and document storage, but the generic privacy policy contains a US transfer/processing clause, so check the DPA and subprocessors for a specific deployment. The hosted cloud and the AGPL Community Edition are different offers; hosted prices are current vendor list prices in USD and are not a price for the open-source edition. No GBP price is verified and no currency conversion is made.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Documenso, Inc.",
      "platforms": [
        "web",
        "api",
        "self_hosted"
      ],
      "launchedYear": 2023,
      "primaryJob": "sign",
      "jobs": [
        "sign"
      ],
      "jobScores": {
        "sign": 88
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://documenso.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Documenso has three delivery modes. The hosted web app and hosted API run on Documenso infrastructure, and the current GDPR documentation says Documenso Cloud application data is stored in data centres within the European Union, document storage uses EU-based infrastructure, and backups are in geographically separate EU locations; the generic privacy policy also contains a US transfer/processing clause, so contractual/subprocessor details should be checked for a given deployment. The self-hosted Community/Business/Enterprise editions run on the customer's own infrastructure and storage. The self-hosted edition is customer_server; the hosted web/API editions are vendor_cloud. No single all-local or all-cloud claim fits the product.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Self-hosted Community/Business/Enterprise. On their servers: Hosted web application, Hosted REST API. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Open-source Community Edition under AGPL-3.0, with separate commercial self-hosted Business and Enterprise licences and hosted cloud plans. The Community Edition is free; the Business Edition is a fixed yearly licence for production use; Enterprise is tailored/quote-based with SLAs and priority support. Hosted cloud is Free (5 documents/month), Individual USD 25/month, Teams USD 40/month including five users (additional users USD 8/month), and Platform USD 250/month. No GBP price is verified, so priceFromGbp remains null. The cloud and self-hosted editions have different deployment and support terms; the hosted cloud is not the AGPL Community Edition.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "http"
      ],
      "dataResidency": "eu",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Hosted web application",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "Hosted REST API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted Community/Business/Enterprise",
          "processing": "customer_server",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "running an electronic signature workflow in Documenso by uploading a PDF or starting from a template, assigning recipients as signers, approvers, viewers, assistants or CC, placing signature and other fields on the document and sending it for signing in parallel or in sequence, after which each recipient signs by drawing, typing or uploading a signature image and the completed PDF is sealed at the platform level with an X.509 certificate that proves integrity and authenticity, with an audit log attached and an optional trusted timestamp from a time stamping authority"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 153,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://documenso.com/ (product/cloud and self-hosted editions); https://github.com/documenso/documenso/releases/tag/v2.20.0 (release 2.20.0, 8 October 2026); https://github.com/documenso/documenso (AGPL-3.0, repository created 2023); https://docs.documenso.com/docs/users/documents/upload (PDF used as-is; DOCX converted to PDF; no encrypted/password-protected PDFs); https://docs.documenso.com/docs/users/documents/add-fields and /docs/concepts/field-types (signature/date/name/text fields); https://docs.documenso.com/docs/developers/api (REST API v2 at app.documenso.com/api/v2, API key, document/recipient/field/template endpoints); https://documenso.com/pricing (Free 5 docs/month; Individual USD 25; Teams USD 40 incl. 5 users, +USD 8/user; Platform USD 250; read 2026-10-16); https://documenso.com/self-hosted (Community/Business/Enterprise); https://docs.documenso.com/docs/compliance/gdpr (EU cloud data centres); https://documenso.com/terms and /privacy (Documenso, Inc.; US transfer clause); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/documenso/"
    },
    {
      "slug": "docuseal",
      "name": "DocuSeal",
      "tagline": "Open-source document signing and fillable PDF forms, self-hosted or cloud.",
      "websiteUrl": "https://www.docuseal.com/",
      "summary": "An open-source platform for building fillable PDF forms and collecting signatures. A visual builder places signature, date, file, checkbox and other field types; documents go out by email, shared link or an embedded signing form, with audit logs and optional SMS identity verification. It runs as a self-hosted Docker deployment or on the vendor's US or EU cloud, with a free tier and a paid Pro plan that unlocks email volume and integrations. Self-hosting is a deployment choice rather than a guarantee about every communication: the project documents local disk or AWS, Google and Azure storage, and SMTP delivery, so what leaves the organisation depends on configuration.",
      "bestFor": "Developers and small businesses that want an embeddable, self-hostable signing and form-filling engine they can white-label.",
      "watchOutFor": "The free cloud tier allows only ten signature request emails a month, and bulk send, SSO, automated reminders and white-labelling need Pro. The licence is AGPL-3.0, and the Section 7(b) additional terms require that interactive interfaces retain the original attribution. That is an attribution condition rather than a ban on commercial or competing use, so the two should not be run together; Pro features carry their own separate licence. Read the exact version’s licences before building on it, and take your own advice on what the AGPL obliges you to do. Self-hosting decides where the documents live, not what every configured path transmits: storage backend, SMTP delivery, recipient access, SMS verification and webhooks are separate facts, and each follows from the configuration rather than from the licence.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "api",
        "self_hosted"
      ],
      "launchedYear": 2023,
      "primaryJob": "sign",
      "jobs": [
        "sign",
        "edit"
      ],
      "jobScores": {
        "sign": 88,
        "edit": 65
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.docuseal.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Cloud service: uploaded documents and user data are stored on DocuSeal’s cloud, primarily AWS US-Northern Virginia, with a separate EU cloud. The on-premises edition runs on servers you control, and self-hosting is a deployment choice rather than a guarantee about every communication: the project documents local disk or AWS, Google and Azure storage, and SMTP for delivery, so what leaves the organisation depends on how it is configured. Recipient delivery, SMS verification and webhooks are further configured paths, so hosting and recipient access are separate facts.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Open source and self-hostable with Docker, with a free Community Edition. Testing our own instance is the honest comparison against their cloud."
      },
      "license": "AGPL-3.0 with Section 7(b) additional terms",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "http",
        "library"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "running a document signing workflow in DocuSeal by uploading a document or starting from a template and placing fields with the PDF form builder, adding multiple submitters who are invited by automated email to review, fill and sign, with signatures drawn or typed in the signing tool or applied as a signature image, after which each submitter receives a copy of the filled and signed files and the completed PDF is automatically signed with a platform PDF eSignature that can be verified through the platform for authenticity, with an audit log available alongside the completed document",
        "edit": "building fillable PDF form templates and placing fields through the WYSIWYG field builder, embedded text field tags or the HTML API; not general PDF content editing"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 61,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "github.com/docusealco/docuseal (repository, README, API metadata); docuseal.com (home, pricing, privacy, GDPR, docs, resources, FAQ, sign-documents-online).",
      "profileUrl": "https://dialegein.com/products/docuseal/"
    },
    {
      "slug": "docusign",
      "name": "DocuSign",
      "tagline": "Cloud e-signature and agreement management, with audit trails.",
      "websiteUrl": "https://www.docusign.com/",
      "summary": "DocuSign is a cloud e-signature and agreement-management platform. You upload a document, add recipients and signing fields, then send it for electronic signature with an audit trail and a completion certificate. Beyond signing it offers contract lifecycle management, remote notarisation, web forms, workflow automation and identity checks, plus APIs and a large library of integrations. Signing and storing documents is free; sending to other people needs a paid plan or trial.",
      "bestFor": "Organisations that need high-volume, compliance-grade e-signature with enterprise controls, audit trails and deep integrations.",
      "watchOutFor": "The ongoing free account is for signing, and sending is available during a free trial while ongoing sending needs an eligible paid plan, so there is no free way to send a document to somebody else for signature on an ongoing basis. Recipients generally need no account, which makes the account requirement a sender question. Bulk Send is vendor-supported with plan and automation allowances. The eSignature features are separate from the individually entitled IAM, CLM and notarisation products. Documents are processed on DocuSign’s servers rather than on your device. Agreement Data stays at rest in the region assigned to the account, while limited transaction and authentication data and any enabled integrations may cross regions; the region cannot be moved for an existing account, and cloning the account to a new region is a separate documented route.",
      "pricingModel": "freemium",
      "priceFromGbp": 12,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Docusign, Inc.",
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "sign",
      "jobs": [
        "sign"
      ],
      "jobScores": {
        "sign": 93
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.docusign.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "DocuSign's own data residency page states that agreement data is persistently stored in one of five DocuSign data centre regions and transferred for notifications and signing. Everything is uploaded; nothing is processed on your device.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Their data residency page states agreement data is stored in one of five DocuSign regions."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": {
        "amount": 12,
        "currency": "GBP",
        "period": "month",
        "planName": "Personal, monthly billing",
        "asShown": "\"£12\" on the Personal plan with the Monthly billing cycle; the page's default Annual view reads \"£ 8 /month\" and \"£96 billed annually\"",
        "source": "https://ecom.docusign.com/en-GB/plans-and-pricing/esignature",
        "readAt": "2026-10-05"
      },
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "running an electronic signature workflow in Docusign by creating an envelope from documents or a template, assigning each recipient a recipient type that defines their role, including signers, in person signers, carbon copy recipients, certified delivery recipients, agents, editors and intermediaries, placing tabs that give each recipient input such as a Sign Here tab positioned by fixed, AutoPlace or PDF form field transformation, and sending the envelope to remote recipients by email or to embedded recipients inside an application, with signing complete once recipients have entered data for all of their tabs"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 119,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "docusign.com; docusign.com products pages; docusign.com free-account; docusign.com privacy/data-residency; ecom.docusign.com plans and pricing; support.docusign.com. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/docusign/"
    },
    {
      "slug": "dompdf",
      "name": "dompdf",
      "tagline": "PHP HTML-to-PDF renderer with its own CSS 2.1 layout engine and no browser to install.",
      "websiteUrl": "https://dompdf.github.io/",
      "summary": "dompdf is an HTML-to-PDF converter written in PHP: it reads a stylesheet, lays the document out itself, and writes a PDF, without a headless browser and without an external PDF library. It handles most of CSS 2.1 plus a few CSS3 rules - @import, @media and @page - and complex tables with row and column spans, which is most of what a business document needs. It can optionally use PDFlib for rendering instead of its bundled engine, which is faster and lighter on memory at the cost of a commercial dependency.",
      "bestFor": "PHP applications that need to produce a document from HTML they already have, in an environment where installing a browser or running a rendering service is not acceptable. The project's own framing is the useful one: it is a style-driven renderer that eliminates dependencies on external PDF libraries.",
      "watchOutFor": "The documented limitations are the ones that bite in production, and they are specific. dompdf is \"not particularly tolerant to poorly-formed HTML input\", so a template that a browser silently repairs may render wrongly or not at all - the project recommends enabling its HTML5 parser or validating the markup first. Worse for reports, table cells are not pageable: a table row has to fit on a single page, so a long table that spans pages is a design constraint rather than something the renderer solves. Elements are also rendered on the active page when they are parsed, which is the kind of behaviour that produces surprises when content is generated conditionally. CSS support stops at 2.1 plus a little, so a modern layout will need rewriting. And the licence is LGPL-2.1 - copyleft, which for a linked PHP library is a real consideration for a closed-source product and not a formality.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://dompdf.github.io/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and structurally: dompdf renders HTML into a PDF and never opens an existing one, so there is no document for a redaction feature to act on. What it does not establish: that the output is safe to share. As with every generator in this index, it renders whatever the template is given, and the documented intolerance of malformed input is a rendering risk rather than a privacy one."
      },
      "processesLocally": true,
      "processesLocallyNote": "A PHP library in your own process. There is no service, no account and no network call, though it will fetch external stylesheets and images over http or ftp when a template asks it to - which is the application's configuration rather than a vendor service.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A PHP library running in your own process. No service and no account; it will fetch external stylesheets and images over http or ftp when a template asks, which is the application's own configuration rather than a vendor service."
      },
      "license": "LGPL-2.1",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting HTML and CSS to PDF with the Dompdf PHP library, which renders HTML passed to loadHtml together with inline styles, linked stylesheets and presentational HTML attributes using a layout engine the project describes as mostly CSS 2.1 compliant with a few CSS3 properties, produces the PDF through render and emits it through stream, and lets the caller set paper size and orientation through setPaper, with the project documentation stating that CSS flexbox and CSS Grid are not supported"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 120,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "dompdf.github.io, the project's site, read 2026-09-22 with headless Chrome, including the features, requirements and known-issues sections; the licence from the repository's LICENSE.LGPL file. Project documentation, not independently tested; the library was not installed and no document was rendered.",
      "profileUrl": "https://dialegein.com/products/dompdf/"
    },
    {
      "slug": "dropbox-sign",
      "name": "Dropbox Sign",
      "tagline": "Hosted e-signature for sending, signing and tracking agreements.",
      "websiteUrl": "https://sign.dropbox.com/",
      "summary": "Dropbox Sign, formerly HelloSign, is a cloud e-signature service for sending, signing and tracking agreements, with templates, signer fields and validation, in-person signing, bulk send, reminders, audit trails and branding. It connects to Dropbox, Google Drive, OneDrive, Salesforce and HubSpot, and a separate API lets developers embed signing into their own apps and websites. Recipients can sign without creating an account. Paid plans start at $15 USD per month for an individual.",
      "bestFor": "Small and mid-sized teams already working in the Dropbox, Google or Microsoft ecosystems that want straightforward e-signature without enterprise complexity.",
      "watchOutFor": "Fully hosted with no offline or self-hosted mode - documents are uploaded to and stored on Dropbox's servers. Published prices are in USD, not GBP, and the cheaper tiers are per user. The free plan carries a documented three-request monthly limit and a signer limit rather than an unqualified yes. Sender account requirements are separate from account-free recipients. Billing cadence and currency are recorded as published, and the web plans are distinct from the separate API plans.",
      "pricingModel": "freemium",
      "priceFromGbp": 11.13,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Dropbox",
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "sign",
      "jobs": [
        "sign"
      ],
      "jobScores": {
        "sign": 90
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://sign.dropbox.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "The signing service uploads and processes documents on the vendor’s servers, which is what the record can evidence; that does not establish that no browser-side work happens, so it is not written as a statement about the device. Storage is regional in a limited sense: the United States is the default at-rest region, and UI Premium and API Premium can select alternative at-rest storage for documents. Dropbox states that active editing, sending and signing temporarily processes copies on United States servers even when regional storage is chosen, and API request storage depends on the API configuration rather than on sender or signer location.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Their privacy policy states documents are processed and stored on their servers."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "creating and sending a signature request through the Dropbox Sign API from uploaded or URL referenced documents, delivered to signers by email, with signers added by name and email address and an optional order, grouped signers, CC recipients, fields placed per document as signature, initials, date signed, text, checkbox, radio, dropdown or hyperlink fields or through text tags, and signature options allowing a signature to be drawn, typed or uploaded, where the API returns a signature request id, a signing URL and per signer status with signed timestamps and the completed files are available through the files endpoints"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 98,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "sign.dropbox.com; sign.dropbox.com pricing and trust pages; sign.dropbox.com/about/privacy; help.dropbox.com data residency. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/dropbox-sign/"
    },
    {
      "slug": "equidox",
      "name": "Equidox",
      "tagline": "Cloud PDF remediation service: upload a document, tag it in a browser with automated detectors, export accessible PDF, HTML or ePub.",
      "websiteUrl": "https://equidox.co/",
      "summary": "Equidox is a hosted PDF remediation tool: you upload a PDF to its cloud application, and it uses computer vision and machine learning to detect text zones, headings, lists, tables, images and form fields, which you then confirm or correct in the browser. It exports tagged, accessible output as PDF, HTML or ePub, and its HTML preview shows how a screen reader would read the page so the reading order can be checked as you work. A separately sold on-premises edition runs the same application, its AI engine and its datastore as a Linux virtual appliance inside the customer's own network, and Equidox AI offers fully automated batch remediation of templated documents.",
      "bestFor": "Accessibility and compliance teams that need a browser-based, collaborative remediation tool staff can learn quickly, and organisations with a steady flow of similar documents such as statements, invoices or provider directories.",
      "watchOutFor": "In the default cloud deployment your document leaves your network: the vendor's user guide says remediation is done online, and the FAQ says original PDFs are stored in a Google Cloud Storage instance, hosted in Google regional data centres in Iowa, Las Vegas, South Carolina or Montreal. The company publishes no retention period and no automatic deletion guarantee - it says stored files may be archived or backed up and can be destroyed on request, with deletion driven by a written request rather than by a timer, so treat retention as something to settle contractually before uploading confidential documents. The remedy is the on-premises .ova appliance, which the vendor sells on the promise that no data leaves your network, but that is a second deployment rather than a setting.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": null,
      "platforms": [
        "web",
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility"
      ],
      "jobScores": {
        "accessibility": 85
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://equidox.co/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "The default deployment is a hosted SaaS application, and both sides of the flow happen on Equidox's infrastructure: the user guide states Equidox is a cloud-based application where all remediation is done online and the FAQ states original PDF documents are stored in a Google Storage instance in Google regional data centres. Documents are selected with the browser's own file picker, which is why the upload host is recorded from the application URL the vendor publishes rather than from a documented API endpoint. There is one genuine exception, sold separately: an on-premises edition ships as a virtual appliance - a pre-configured Linux .ova image for VMware or VirtualBox - which runs the core application, the AI engine and the datastore inside the customer's own network with no cloud dependencies and no internet access required. That deployment is self-hosted, not local-processing on a desktop.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Remediation is done online in the browser and the vendor states uploaded PDFs are stored in a Google Cloud Storage instance, with no retention period published. An on-premises .ova appliance is sold separately, which is a second deployment rather than a setting."
      },
      "license": "commercial; annual subscription with concurrent-user licensing, or an unlimited organisation-wide licence; SaaS or on-premises virtual appliance",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "browser",
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "remediating an existing PDF for accessibility with Equidox Software, using the AI Smart Zone Detector to detect and tag text and headings, the List Detector for lists including nested lists and the Table Detector for rows, columns and complex cell structures, correcting reading order with the one-click re-order tool, adding image alt text or marking decorative images as artifacts, entering form field tooltips in the Form Pane, and checking the structure in an HTML preview before export, with the software available as cloud SaaS for PC or Mac or as an on-premises web appliance"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 333,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "equidox.co (home; pdf-solutions/pdf-accessibility-software/ feature list, comparison table and deployment options; pdf-solutions/high-volume-solutions/ for Equidox AI, zip and API batch upload; pdf-solutions/pdf-remediation-services/; equidox-on-prem/ for the .ova appliance, components and minimum specs; about/about-us/ for company history and Onix Networking; about/contact-us/ for the concurrent-licensing demo transcript; resources/accessibility-education-tools/faq/ for licensing model, encryption, Google Cloud Storage, regional data centres and the accessibility checker answer; privacy-policy/; accessibility-policy/); userguide.equidox.co (First Look, Documents); app.equidox.co (loaded directly - returns the Equidox single-page application shell, \"We're sorry but eqv doesn't work properly without JavaScript enabled\"); cioinfluence.com news item on the 2022 on-premises release for the vendor quote on data leaving the network.",
      "profileUrl": "https://dialegein.com/products/equidox/"
    },
    {
      "slug": "foxit-pdf-editor",
      "name": "Foxit PDF Editor",
      "tagline": "Commercial PDF editor with OCR, genuine redaction and eSign.",
      "websiteUrl": "https://www.foxit.com/pdf-editor/",
      "summary": "Foxit PDF Editor is a subscription or perpetual PDF application for Windows, macOS, web, iOS and Android. It edits text, images and pages, merges and splits, converts to and from Word, Excel and PowerPoint, runs OCR on scans, creates and fills forms, applies password protection and permissions, and redacts content. Tiers matter: PDF Editor covers desktop and web, while PDF Editor+ adds the mobile apps and Smart Redact, which detects and removes hidden text and metadata automatically.",
      "bestFor": "Organisations replacing Acrobat at scale that want genuine redaction, perpetual-licence options and centralised admin - including regulated teams that must strip personal data before sharing documents.",
      "watchOutFor": "Only US dollar prices were found. The perpetual licence excludes AI, Workspace, Smart Redact and cloud features, and the Smart Redact path sends documents to Foxit's Azure-hosted cloud for processing, so this is not uniformly an on-device tool. Smart Redact’s FAQ specifies an initial 50-document allowance with further purchases, and Editor+ inclusion does not mean unlimited use; suggested redactions can be reviewed before application, so flawless automatic detection and independently proven removal are not implied. The editor no longer carries an HTTP API entry, because the vendor sells separate developer APIs. Subscription and perpetual licence scope is recorded with the published 14-day trial, trial output stays unknown, multiple-region residency needs a service-specific source, and Compare is recognised in the taxonomy where supported.",
      "pricingModel": "paid",
      "priceFromGbp": 8.15,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": null,
      "platforms": [
        "windows",
        "mac",
        "web",
        "ios",
        "android",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "ocr",
        "convert",
        "merge",
        "sign",
        "compress",
        "compare"
      ],
      "jobScores": {
        "edit": 90,
        "protect": 88,
        "ocr": 85,
        "convert": 85,
        "merge": 82,
        "sign": 78,
        "compress": 72,
        "compare": null
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.foxit.com/ai/smart-redact/",
        "quote": "Foxit’s Smart Redact uses AI to automatically identify and remove sensitive data including names, IDs, emails, and more, without manual tagging.",
        "caveat": "This page documents Smart Redact, which is an AI add-on sold as requiring Foxit PDF Editor+ separately. The manual redaction feature is documented elsewhere and is NOT established by this page - the tier note on the guide covers which editions include it. Vendor wording, not a test. The page also claims \"99.9% accuracy\", which is a marketing figure with no method attached and should not be read as a measurement."
      },
      "processesLocally": null,
      "processesLocallyNote": "It depends on the feature. The installed editor works on files on the machine, and the vendor now documents Local AI running offline on the user’s hardware. Smart Redact is separate and identified as Azure cloud processing with vendor-reported deletion rather than an independently verified retention result, and other AI services have their own paths. An aggregate requires-account answer cannot describe subscription, cloud and AI workflows together, so it is left unspecified rather than answered for the wrong workflow.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Foxit PDF Editor installed on Windows and macOS. On their servers: Local AI on the user’s hardware, Smart Redact in the vendor cloud and other AI services. A single answer for the whole product would be wrong for one of them."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Foxit PDF Editor installed on Windows and macOS",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Local AI on the user’s hardware, Smart Redact in the vendor cloud and other AI services",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing existing PDF content in the Foxit PDF Editor mobile edition, where the official user manual for version 11.2.0 documents editing an existing text object by placing the cursor in the text box and typing or removing text and changing the font, size, color and alignment, moving or deleting a text paragraph, and moving, resizing, rotating, replacing, exporting or deleting an existing image object, described in the manual as functionality available to subscribers",
        "protect": "protecting PDF files in the Foxit PDF Editor mobile edition, where the official user manual for version 11.2.0 documents setting an open document password and switching on document restrictions that disable selected actions, with the same password required to remove security, protecting a file with a certificate on Android only using a certificate stored on the device, redacting text, images and pages, including by search, with the redaction applied permanently and not undoable, and encrypting with Microsoft Information Protection rights policy templates, with files protected that way saved as PPDF files",
        "ocr": "recognising text in scanned PDFs and images with Foxit PDF Editor on Windows, where the official Foxit support article Performing OCR on a scanned document or image PDF, dated 14 August 2025 and headed Foxit PDF Editor for Windows, says running OCR on a scanned document or image based PDF makes the text searchable and editable, describes running Make Searchable (run OCR) while creating a PDF from a scanner through File Create From Scanner or Convert From Scanner, and for version 12 describes Convert then Recognize Text Current File with a dialog for the OCR language including a custom language entry, for the whole document or a page range, and for output as plain text, searchable PDF or editable text, where a second article dated 2 July 2024 says the multilanguage version of Foxit PDF Editor gets OCR language packs from the Foxit add-ons page, and where a third article dated 19 May 2025 records that PDFs already processed by third party OCR such as ABBYY FineReader can produce duplicate text layers and search results when OCR is applied again, with the article noting that support for versions 11 and 12 ended on 13 August 2025 and that version 14 is the one to upgrade to",
        "convert": "converting files to PDF and PDFs to other formats in the Foxit PDF Editor mobile edition, where the official user manual for version 11.2.0 documents creating a PDF from Microsoft Word, Excel, PPT, TXT, HTML and image files and from a webpage URL, and exporting a PDF to Microsoft Word in doc or docx format, Excel, PowerPoint, text as plain or rich text, an image or HTML, with the converted file saved in the same folder as the source PDF file",
        "merge": "merging multiple PDF files into a single PDF in the Foxit PDF Editor mobile edition, where the official user manual for version 11.2.0 documents choosing Merge PDFs, selecting the documents to combine and confirming the selection, optionally deleting an unwanted file before merging and optionally renaming the output, after which the app reports where the merged PDF was saved",
        "sign": "signing a PDF in the Foxit PDF Editor mobile edition, where the official user manual for version 11.2.0 documents creating a signature by drawing it, inserting an image of it from the device or capturing it with the camera and then placing it on a page, or on a subscription creating a signature with a digital certificate stored on the device by selecting the certificate and entering its password, and verifying a digital signature already present in a PDF through the Digital Signatures pane with options to view the certificate and add it to a trusted certificates list, with an applied signature described as no longer editable or movable and earlier signed versions accessible from the same pane",
        "compress": "reducing PDF file size through the Optimize PDF File feature in the Foxit PDF Editor desktop editions for Windows and Mac",
        "compare": "compares two PDF files"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 653,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "foxit.com pdf-editor product, pricing, features, PDF Editor+ and scan-to-PDF-OCR pages; foxit.com/ai/smart-redact/; foxit.com privacy policy. Read via a text-extraction proxy because foxit.com is client-side rendered.",
      "profileUrl": "https://dialegein.com/products/foxit-pdf-editor/"
    },
    {
      "slug": "foxit-pdf-sdk",
      "name": "Foxit PDF SDK",
      "tagline": "Commercial PDF library for embedding rendering, editing, signing and redaction in your own application.",
      "websiteUrl": "https://developers.foxit.com/",
      "summary": "Foxit PDF SDK is a commercial library that puts Foxit's own PDF engine inside your application, with one core API across Windows, macOS, Linux, iOS, Android and the web. It covers rendering, annotations, form filling, digital signatures, OCR, PDF/A conversion and redaction, and the redaction is sold as a separate add-on rather than included. It is the same engine family as Foxit's desktop editor, sold to developers who need to build the feature themselves.",
      "bestFor": "Product teams embedding PDF viewing, annotation or form handling into an application they ship, and teams who want one vendor across mobile, desktop and web rather than a different library per platform. The redaction add-on is aimed squarely at regulated industries - legal, government and insurance are the three the vendor names.",
      "watchOutFor": "Redaction is an add-on, not part of the base SDK. A team that licenses the PDF SDK and later needs to redact has bought the wrong thing, and the feature that lawyers and compliance officers care most about is the one sold separately. There is no published price at all: every page ends in \"Request a quote\", and licensing is negotiated per platform and per project, so this record cannot tell you what it costs and neither can the vendor's website. A 30-day trial is the only free route, which is why the free-tier field is false rather than unverified - a trial is not a free tier. Pricing per platform also means the cost scales with how many platforms you ship on, which is easy to underestimate for a library advertised on cross-platform reach. The current desktop and server guide documents a 30-day trial with watermarks on generated pages, so the trial watermark is vendor-documented and scoped to that SDK trial. OCR and other specialised modules have platform-dependent availability, redaction is an optional licensed module, and the Office-to-PDF conversion add-on is separate from the bidirectional Conversion SDK rather than merged with it. Needing an add-on is not a judgement about the purchase, and how price scales across projects and platforms is not claimed without a quote.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Foxit Software Incorporated",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "ios",
        "android",
        "web",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "sign",
        "ocr",
        "convert"
      ],
      "jobScores": {
        "edit": 85,
        "sign": 80,
        "ocr": 75,
        "convert": 75
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://developers.foxit.com/add-ons/redaction/",
        "readAt": "2026-09-22",
        "quote": "Safely Remove Text and Media - Foxit's PDF redaction library safely removes text, graphics, and images quickly and easily.",
        "caveat": "The vendor's own add-on page states removal in three separate places, and one of them says permanent: \"automatically find and permanently remove sensitive text and metadata before documents are shared\". The page also claims metadata is removed automatically, which is more than many tools in this index document. What this does not establish: a test. This is the vendor's description of its library, not a canary run through it, and the index records eight redaction verdicts as tested while this is not one of them. It also does not establish that calling the API correctly is easy - the two-step mark-then-apply trap that this index documents for Aspose and others is a pattern this page does not address either way."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded library, so it runs inside the application that links it, on a device or a customer server. No server involved is a poor aggregate for that, because a customer server is a server and the web and mobile editions differ. The vendor explicitly documents local licensing without telemetry or runtime licence-server calls, which is attributed to the vendor rather than presented as a new network test.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Foxit PDF SDK linked into an application on a device or customer server. On their servers: Licence validation where enabled, plus web and mobile editions. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Commercial, quoted per project and per platform; 30-day trial",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Foxit PDF SDK linked into an application on a device or customer server",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Licence validation where enabled, plus web and mobile editions",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing existing PDF content with the Foxit PDF SDK for Desktop and Server, where the developer guide documents page objects for adding and removing text, path, image and form objects on a page and setting their properties, and a paragraph editing module that inserts, deletes and modifies existing text including its content and format, with join, split, link and unlink operations on text blocks, supported on Windows, Linux and Mac from C, C++, Java, C#, Python, Objective-C and Go, requiring the AdvEdit add-on licence and SDK version 10.0 or later",
        "sign": "creating, verifying and removing digital signatures in PDF documents with the Foxit PDF SDK for Desktop and Server, using the built-in signature callbacks for the Adobe.PPKLite filter with the adbe.pkcs7.detached subfilter and a SHA-256 digest or the legacy adbe.pkcs7.sha1 subfilter, signing with a certificate file and its password, getting and setting signature properties and customising signature field appearance, and creating PAdES signatures with the ETSI.CAdES.detached subfilter at the B-B, B-T, B-LT and B-LTA levels the guide defines, with timestamp servers configured through the TimeStampServer and TimeStampServerMgr classes, PAdES being documented as supported from SDK version 7.0",
        "ocr": "running OCR on scanned documents and image-based or mixed PDFs with the Foxit PDF SDK for Desktop and Server, where the developer guide documents initialising an OCREngine with a resource directory and languages, configuring OCRConfig options for picture detection, denoise, deskew and resolution, running OCRPDFPage, OCRPDFDocument or OCRPDFDocuments to produce a searchable PDF that adds a text layer or an editable PDF that writes recognition results into document content, and using OCRConvertTo to export recognised content to Word, Excel, PowerPoint or HTML, on Windows and Linux x64 with a licence that includes the OCR module and an OCR add-on resource package, the ABBYY OCR resource package being required from version 12.0, and a command-line OCR tool documented from version 11.1 with page range, language, editable output and output format options",
        "convert": "standardising PDF versions and converting to standard-compliant output such as PDF/A, PDF/E and PDF/X through the Compliance add-on, which needs its own resource package and a licence unlock code; not Office, HTML or arbitrary format conversion"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 304,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "developers.foxit.com: the SDK landing page, the features index and the Redaction add-on page, all read 2026-09-22 with headless Chrome, plus the site footer and the privacy policy URL. Vendor documentation, not independently tested; the SDK was not downloaded and no trial was run.",
      "profileUrl": "https://dialegein.com/products/foxit-pdf-sdk/"
    },
    {
      "slug": "fpdf2",
      "name": "fpdf2",
      "tagline": "Pure-Python PDF creation library with Unicode font embedding, successor to PyFPDF.",
      "websiteUrl": "https://github.com/py-pdf/fpdf2",
      "summary": "fpdf2 builds PDFs from Python by drawing them: you add pages, place text and images, and control the layout yourself, which is a different job from feeding HTML to a renderer. It is written entirely in Python with few dependencies, embeds and subsets TrueType fonts so Unicode text works properly, and is the maintained successor to PyFPDF. Its documentation is unusually complete for a small library, including a security section, and the project describes itself as mature and actively maintained.",
      "bestFor": "Python projects that want precise control over a generated document - a label, a certificate, a form, a report with exact placement - rather than a stylesheet-driven conversion. It is also the natural choice where adding a browser or a heavy native dependency to a container is unwelcome, since it needs neither.",
      "watchOutFor": "Primarily a programmatic PDF generator, with basic HTML rendering via write_html; it does not implement full HTML5 or CSS. That is the difference that decides whether it is the right tool: a template you already hold in HTML and CSS will reach a renderer such as WeasyPrint faster, and fpdf2 will have you placing content yourself. The feature list also covers encryption and digital signing, and those apply to the documents it generates rather than to an existing PDF, which it does not edit.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "protect",
        "sign"
      ],
      "jobScores": {
        "convert": 80,
        "protect": null,
        "sign": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://github.com/py-pdf/fpdf2",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence and structurally: fpdf2 creates PDFs rather than opening them, so there is no existing document for a redaction feature to operate on. What it does not establish: that a generated document is safe. Its own documentation has a security section, which is about the library's handling of input such as fonts and SVG rather than about the content of what it outputs."
      },
      "processesLocally": true,
      "processesLocallyNote": "A Python package that runs in your own interpreter. There is no service and no account, and the library makes no network calls of its own, so a document is generated and written entirely on your machine.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Python package running in your own interpreter. No service, no account, and no network calls of its own."
      },
      "license": "LGPL-3.0",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "protect": "encrypts the PDF it generates, not an existing file",
        "sign": "signs the PDF it generates, not an existing file"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 496,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "The project repository at github.com/py-pdf/fpdf2, read 2026-09-22 with headless Chrome, including the README's description, feature list and development-status statement. Project documentation, not independently tested; the package was not installed and no PDF was generated.",
      "profileUrl": "https://dialegein.com/products/fpdf2/"
    },
    {
      "slug": "fpdi",
      "name": "FPDI",
      "tagline": "PHP library that imports pages from existing PDFs into FPDF, mPDF, TCPDF and tFPDF templates.",
      "websiteUrl": "https://www.setasign.com/products/fpdi/",
      "summary": "FPDI lets a PHP application use pages from an existing PDF as templates inside a PDF it is generating: you take a page from a source document and place it as the background of a page you write yourself. That is the mechanism behind personalised letters on a pre-printed form, certificates with a fixed design, and documents assembled from existing artwork. It works with the common PHP generation libraries - FPDF, tFPDF, mPDF and TCPDF - and the vendor says it has been downloaded more than 150 million times through Packagist, which makes it one of the most widely deployed PDF components in the world.",
      "bestFor": "PHP applications that need to overlay generated content onto an existing design, where redrawing the background in code is impractical. It is also a common dependency of other PHP PDF tooling, so a reader may already have it in their dependency tree without knowing.",
      "watchOutFor": "The free library cannot read every PDF, and the limitation is documented rather than obvious: importing pages from documents that use compressed cross-reference streams and object streams, which were introduced with PDF 1.5, and that introduction date does not establish how common they are - or from encrypted and password-protected files requires a separate paid add-on, the FPDI PDF-Parser, licensed per developer. A developer who tests with an old sample PDF and then meets a real customer file can therefore hit this in production rather than in development. The project is also a component rather than a complete tool: it imports pages, and everything else - text, layout, fonts - comes from whichever generation library it is paired with, so its quality is partly the other library's. And although the licence is MIT and the vendor says it is free for commercial use, the add-on is not, so \"FPDI is free\" is true of the part many projects start with and false of the part they end up needing. Imported pages also do not generally preserve interactive forms, annotations, or document-wide bookmarks, layers and actions; URI link annotations are a documented opt-in exception from FPDI 2.4.0. Encrypted input and the paid parser remain separate distinctions, and the parser carries its own developer licence. Imported pages also do not generally preserve interactive forms, annotations, or document-wide bookmarks, layers and actions; URI link annotations are a documented opt-in exception from FPDI 2.4.0. Encrypted input and the paid parser remain separate distinctions, and the parser carries its own developer licence.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Setasign GmbH & Co. KG",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.setasign.com/",
        "readAt": "2026-09-22",
        "quote": "Our open-source solution FPDI let PHP developers import pages of existing PDFs into reusable templates for common PDF generation libraries such as FPDF, tFPDF, mPDF or TCPDF.",
        "caveat": "Recorded as `none` on absence: FPDI copies pages from one document into another and nothing in its description removes content from a page. What it does not establish is anything reassuring, and this is the one record in the batch where that deserves saying plainly rather than in passing: FPDI IMPORTS a page, which means a PDF that was redacted by covering content can be imported with the covering still over the original text, and FPDI has no way to know the difference. A tool that moves pages between documents is a way for a badly redacted file to keep circulating, not a way to fix one."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded PHP library, so it runs in the process that includes it and the host application decides what happens to the files. The library itself makes no network call that the documentation describes, but embedded operation does not establish the host application’s data flow, so this is a statement about the library rather than a guarantee that nothing leaves the infrastructure.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A pure-PHP component you require inside your own application. No service and no account; the source PDF and the generated one never leave your infrastructure."
      },
      "license": "MIT (FPDI itself); the FPDI PDF-Parser add-on is commercial, licensed per developer",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "importing pages from existing PDFs into a template; not a Word, Excel or image converter"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 906,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "setasign.com: the vendor's home page, read 2026-09-22 with headless Chrome, including the FPDI description, the add-on's limitations and the company footer. Vendor documentation, not independently tested; the library was not installed and no page was imported.",
      "profileUrl": "https://dialegein.com/products/fpdi/"
    },
    {
      "slug": "genius-scan",
      "name": "Genius Scan",
      "tagline": "On-device mobile scanner with OCR, PDF creation and optional cloud sync.",
      "websiteUrl": "https://thegrizzlylabs.com/genius-scan",
      "summary": "Genius Scan turns phone photos of paper into straightened, enhanced PDFs using document detection and perspective correction. Its privacy policy states that OCR, PDF generation and image processing all run on the device, and the free tier is unlimited for basic scanning and carries no ads, and the paid Ultra tier is what adds OCR, cloud backup and sync, web access, advanced organisation and extra export targets. The company also licenses its scanning engine to other apps as an SDK.",
      "bestFor": "Privacy-conscious mobile users and field teams who want a strong free scanner and prefer documents to stay on the device unless they deliberately opt into cloud sync.",
      "watchOutFor": "OCR, cloud backup and sync, web access and enhanced organisation need the paid Ultra subscription. Creating an account moves documents onto the vendor's servers, and the optional AI renaming feature sends first-page text to OpenAI.",
      "pricingModel": "freemium",
      "priceFromGbp": 29.93,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "ios",
        "android"
      ],
      "launchedYear": 2010,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "merge",
        "protect"
      ],
      "jobScores": {
        "ocr": 85,
        "merge": 70,
        "protect": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://thegrizzlylabs.com/genius-scan",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Without an account, OCR, PDF generation and image processing all run on the device, in the vendor's own words. Creating an account is what changes that: document sync and backup, web access, exports and analytics have their own destinations rather than one. The vendor's storage section permits storage in the European Union or in countries it considers adequate under European rules, which is wider than the EU alone, and the opt-in renaming feature sends first-page text to OpenAI. A European company is not on its own a promise that processing stays in Europe. The vendor's pricing page states that scans are produced without watermarks. That is a vendor-reported answer rather than an output test, and we have not run one.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A mobile app, so a browser probe cannot drive it. Its value here is the opposite of most: the vendor states OCR, PDF generation and image processing all run on the device unless you create an account. Worth revisiting if a mobile probe method is ever built."
      },
      "license": null,
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "applying text recognition to scans in the Genius Scan mobile app, where the help centre documents a Text Recognition setting that is switched on and then applied to new documents, a Manage Languages menu where at least one language must be active or the feature cannot process documents, and exporting the recognised text by copying it from the Text tab or by exporting the document as text, including several documents at once, with the help centre stating the feature requires an advanced plan and the pricing page listing OCR under Ultra rather than Basic",
        "merge": "merging documents together in the Genius Scan mobile app as part of the scanning workflow, alongside adding and moving pages of a scanned PDF; not a general-purpose PDF merge tool",
        "protect": "encrypting the PDFs Genius Scan creates, listed as PDF encryption under PDF creation in the app features; not app lock, access permissions, certificates or DRM"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 239,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "thegrizzlylabs.com (Genius Scan, pricing, about, enterprise, press); help.geniusscan.com privacy policy. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/genius-scan/"
    },
    {
      "slug": "ghostscript",
      "name": "Ghostscript",
      "tagline": "PostScript and PDF interpreter and SDK for converting, rasterising and compressing.",
      "websiteUrl": "https://www.ghostscript.com/",
      "summary": "Ghostscript is an interpreter for PostScript and PDF that also ships as an embeddable graphics engine and SDK. From the command line it renders and converts documents to raster or vector formats, rewrites PDFs through its pdfwrite device - including downsampling images to shrink files - and can produce searchable output through an OCR device. It is a conversion and print engine rather than an interactive editor: it manipulates content by re-interpreting it, not through object-level editing tools.",
      "bestFor": "Developers and print, archive or SaaS pipelines that need a scriptable, embeddable conversion and compression engine running on their own infrastructure.",
      "watchOutFor": "The AGPL terms are strict and commercially significant: Artifex states you cannot deploy the open-source build as part of a server-based application or service without disclosing your own application's full source under AGPL. Commercial embedding normally means buying a licence, and Artifex publishes no list price.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Artifex Software",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": 1988,
      "primaryJob": "compress",
      "jobs": [
        "compress",
        "convert",
        "ocr"
      ],
      "jobScores": {
        "compress": 88,
        "convert": 90,
        "ocr": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.ghostscript.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural rather than a vendor claim: Ghostscript is an installed interpreter and SDK that reads and writes files on the machine it runs on, with no vendor service in the path. It is often embedded in server pipelines, but that server belongs to the customer - Artifex never sees the documents.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed interpreter and embeddable SDK. It runs wherever you put it, including your own servers, but Artifex never sees the documents."
      },
      "license": "AGPL-3.0, dual-licensed with a commercial licence from Artifex",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "compress": "reducing output PDF size when Ghostscript's pdfwrite device rewrites a PDF, using documented controls such as duplicate-image detection, compressed fonts and streams, and Flate or JPEG image parameters; pdfwrite creates a new PDF and may not carry across non-marking information such as comments",
        "convert": "converting supported PostScript, PDF, XPS, PCL or PXL input to a newly written PDF through Ghostscript's pdfwrite device, where the output should look the same as the input but is not the same file and non-marking content such as comments may not carry across",
        "ocr": "OCR through the pdfocr8, pdfocr24 and pdfocr32 devices in Ghostscript builds that include the Tesseract engine, which render input to an image, OCR it and wrap the image as a PDF with the recognised text added as invisible text; not available in every build"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 402,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "ghostscript.com; ghostscript.readthedocs.io (home, Readme, Use); artifex.com/licensing. Licence confirmed in the official docs and on the Artifex licensing page.",
      "profileUrl": "https://dialegein.com/products/ghostscript/"
    },
    {
      "slug": "gimagereader",
      "name": "gImageReader",
      "tagline": "Desktop GUI that runs the Tesseract OCR engine over images and PDFs.",
      "websiteUrl": "https://github.com/manisandro/gImageReader",
      "summary": "A desktop graphical front-end that drives the Tesseract OCR engine. It imports images and PDFs from disk, a scanner, the clipboard or a screenshot, lets you define recognition areas manually or automatically, and shows the recognised text beside the page. Output can be plain text, hOCR, or a searchable PDF generated from hOCR, with a spellcheck step before export. Recognition runs against your own Tesseract installation.",
      "bestFor": "Linux and Windows users who want a visual, batch-friendly way to run Tesseract over scans and image-only PDFs without memorising command-line flags.",
      "watchOutFor": "Graphical only, with no command line or API of its own, so automation means scripting Tesseract directly. There is no macOS build, no redaction and no general PDF editing, and OCR quality plus available languages depend entirely on which Tesseract version and language data you install separately. The Tesseract library version is tied to the build or package you install, and installing a different executable on its own does not necessarily change the OCR engine the application links against. Graphical only is what the project documents; the absence of a documented API is not proof that every command-line capability is absent.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "windows",
        "linux"
      ],
      "launchedYear": 2014,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "convert",
        "edit"
      ],
      "jobScores": {
        "ocr": 85,
        "convert": 70,
        "edit": 50
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/manisandro/gImageReader",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is a desktop application, so recognition runs on the machine that installed it, and its architecture is local rather than a service. That is the documented design and not an audit: this review did not capture traffic, and dependency downloads, network storage and the packaging on a given distribution are outside what it establishes.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed desktop application linking against a locally installed Tesseract. No service, no upload, no account."
      },
      "license": "GPL-3.0",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": "gImageReader review - Tesseract OCR GUI",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "recognising text in images and PDF documents with gImageReader, which the project describes as a Gtk and Qt front end to tesseract-ocr, importing images and PDFs from disk, scanning devices, the clipboard and screenshots, defining the recognition area manually or automatically, processing multiple images and documents in one go, and recognising to plain text or to hOCR with the recognised text displayed next to the image for post-processing including spell checking",
        "convert": "generating a PDF from hOCR recognition output, either as a reconstructed document or as the source image with an invisible selectable text layer; not arbitrary input or output conversion",
        "edit": "correcting recognised text and hOCR output, not editing an existing PDF"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 419,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "github.com/manisandro/gImageReader (repository, README, API metadata, latest release, CMakeLists, project wiki compiling notes).",
      "profileUrl": "https://dialegein.com/products/gimagereader/"
    },
    {
      "slug": "goodnotes",
      "name": "Goodnotes",
      "tagline": "Tablet-first note-taking and PDF annotation with sync, collaboration and AI.",
      "websiteUrl": "https://www.goodnotes.com/",
      "summary": "A note-taking app built around stylus handwriting, with notebooks, an infinite whiteboard and typed documents in one library. It imports PDFs for markup, keeps handwriting searchable, and adds optional cloud sync and collaboration. Recent versions add AI summarisation, transcription of recorded meetings and study sets.",
      "bestFor": "People who want a tablet-first notebook that doubles as a PDF markup tool, and teams or schools that need shared notebooks, admin controls and compliance paperwork.",
      "watchOutFor": "The free plan is deliberately tight - three notebooks, 100 MB of storage and a 5 MB import limit. Full AI is an add-on rather than something the paid tiers include: the pricing page lists an AI Pass at $9.99 a month on top of whichever plan you choose, the tiers themselves carry only basic or partial AI, and the AI page's own answer to whether AI is in the standard plan is that features vary by tier.",
      "pricingModel": "freemium",
      "priceFromGbp": 11.99,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Goodnotes Limited",
      "platforms": [
        "ios",
        "android",
        "windows",
        "mac",
        "web"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit"
      ],
      "jobScores": {
        "view": 92,
        "edit": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.goodnotes.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the edition and the feature. Apple local and iCloud workflows are separate from the ones that use Goodnotes Cloud: the official Cloud documentation says Android, Windows and Web documents use Goodnotes Cloud with offline copies syncing later, so not accessing content is not the same as not storing it. Free exports are vendor-documented as watermarked, the 5 MB import limit belongs to the free plan, and Pro includes advanced AI with limited credits while the AI Pass adds entitlement and credits rather than being required for every advanced AI feature. Current pricing and support also differ on whether the free document limit is three total or three of each type, and on sharing eligibility, so the conflict is recorded rather than resolved.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A tablet and desktop app, so a browser probe cannot drive it. Its privacy policy is unusually explicit that notes and documents stay on the device unless cloud backup is enabled."
      },
      "license": "proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "opening and viewing imported PDFs and Goodnotes documents in the app, documented for Android, Windows and Web; not a standalone PDF viewer",
        "edit": "PDF annotation and markup, not editing original PDF text"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 161,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "goodnotes.com (home, pricing, terms and conditions, privacy policy); Apple App Store search for the app record. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/goodnotes/"
    },
    {
      "slug": "google-chrome-pdf-viewer",
      "name": "Google Chrome built-in PDF viewer",
      "tagline": "Chrome's PDF viewer, which OCRs scanned PDFs automatically on your device.",
      "websiteUrl": "https://support.google.com/chrome/answer/16215622",
      "summary": "Chrome renders PDFs in a normal browser tab with no separate application: zoom, fit to page or width, rotate, text search and keyboard navigation with caret browsing. You can draw with a pen or highlighter in chosen colours, erase annotations and draw a signature, then save the file with or without those changes. Google documents automatic on-device OCR that turns a scanned PDF into searchable, selectable text.",
      "bestFor": "Anyone who simply needs to read a PDF, search it, or lift text out of a scanned document without installing anything - which is most people, most of the time.",
      "watchOutFor": "Annotation stops at drawing, highlighting and a hand-drawn signature. There is no redaction, no page management, no compression and no format conversion, and on Android the edit action hands the file to Google Drive.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "windows",
        "mac",
        "linux",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit",
        "ocr",
        "sign"
      ],
      "jobScores": {
        "view": 85,
        "edit": 62,
        "ocr": 62,
        "sign": 58
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support.google.com/chrome/answer/16215622",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Mixed and worth reading carefully. Google states the scanned-PDF conversion is completed on your device without sending data to Google or third parties, so both rendering and OCR are local. But the optional save-to-Drive flow uploads the open PDF, and on Android the edit action opens the file in Google Drive - those paths are cloud processing. A PDF opened from a website is also fetched over the network from its host.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Chrome on Windows, macOS and Linux, Chrome on Android. On their servers: Saving to Drive, and the Android edit action. A single answer for the whole product would be wrong for one of them."
      },
      "license": null,
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "desktop",
          "name": "Chrome on Windows, macOS and Linux",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Chrome on Android",
          "processing": "in_process",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "save-to-drive",
          "name": "Saving to Drive, and the Android edit action",
          "processing": "vendor_cloud",
          "platforms": [],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing PDFs in the Chrome PDF viewer on a computer, where the Chrome Help article documents opening a PDF in Chrome and opening it in a new tab, managing the page display with Zoom in and Zoom out, Fit to page and Fit to width, and Rotate for the page orientation, navigating with a setting that turns on navigating pages with a text cursor, caret browsing toggled with F7, tab focus on the PDF, and arrow key navigation by character or word with Shift to select, and a setting at chrome://settings/content/pdfDocuments that chooses whether PDFs open in Chrome or download to the device",
        "edit": "draw, highlight and a hand-drawn signature",
        "ocr": "converting scanned PDFs of physical documents to searchable and selectable text in the Chrome PDF viewer, where the Chrome Help article states that scanned PDFs accessed through the viewer are automatically converted using Optical Character Recognition, that after the conversion the text can be highlighted, searched, copied, pasted and found within the document, and that the conversion is completed on the device without sending any data to Google or third parties",
        "sign": "a hand-drawn signature only"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 491,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "support.google.com Chrome help on using the PDF viewer, desktop and Android versions. Vendor documentation, not independently verified.",
      "profileUrl": "https://dialegein.com/products/google-chrome-pdf-viewer/"
    },
    {
      "slug": "google-cloud-vision-document-ai",
      "name": "Google Cloud Vision API and Document AI",
      "tagline": "Google's cloud OCR: Vision for text in images, Document AI for structured extraction.",
      "websiteUrl": "https://cloud.google.com/vision",
      "summary": "Two Google-hosted, consumption-billed services at different levels, which is why they share one entry. Cloud Vision is an annotation API whose OCR modes return text and layout - for sparse text in an image, or structured pages for dense documents. Document AI is a processor platform: enterprise OCR returns text and layout with deskew and rotation correction, while separate processors add form parsing, invoices, expenses, bank statements, and custom classifiers and splitters that return key-value pairs and entities. Neither returns a redacted document.",
      "bestFor": "Developers who need high-volume text or layout extraction from images and PDFs, or teams that need typed form fields, business-document entities and document classification.",
      "watchOutFor": "Two products sit behind this listing and their limits are not the same. Cloud Vision takes images up to 20 MB and PDFs up to 1 GB; Document AI is 40 MB online and 1 GB in batch, with page limits that depend on the processor. An eligible imageless online request can span 30 contiguous pages from page one instead of the 15 usually quoted. The linked data-usage notice is Vision's and does not establish Document AI retention or processing behaviour, and Document AI values do not apply to Vision. Neither is a redaction tool.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 1.5,
        "currency": "USD",
        "per": "1000_units",
        "asShown": "Vision Text Detection / Document Text Detection - per 1,000 units: \"Free\" (first 1000 units/month), \"$1.50\" (units 1001-5,000,000/month), \"$0.60\" (5,000,001+)",
        "source": "https://cloud.google.com/vision/pricing",
        "readAt": "2026-09-15"
      },
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": 2016,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "extract"
      ],
      "jobScores": {
        "ocr": 85,
        "extract": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://cloud.google.com/vision",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Documents are uploaded to Google Cloud. Online requests are processed in memory rather than persisted, while batch requests store the file briefly and delete it after processing. There is no self-hosted deployment: the only on-premises-style option is documented as deprecated.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Cloud service. Documents are uploaded to Google Cloud for processing, and the only on-premises-style option is documented as deprecated."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "detecting and extracting text with Google Cloud OCR, where the documentation separates Cloud Vision text detection on images and on PDF and TIFF files, including online synchronous small batch annotation of PDF, TIFF and GIF files and the TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features, from Document AI Enterprise Document OCR, which detects and extracts text and layout information from PDFs, scanned document images and Microsoft DocX files with configurable image quality score, language hints and rotation correction, and optional add-ons for math formulas, font style information and checkbox extraction that require Enterprise Document OCR version 2.0 or later, with Cloud Vision text detection described as a globally available REST API with a default quota of 1,800 requests per minute",
        "extract": "Document AI processors, structured fields rather than plain text"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 159,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "cloud.google.com Vision and Document AI pricing pages; Google Cloud Vision and Document AI documentation (OCR, PDFs, data usage, quotas, features, overview, regions, limits, processors, file types); Google Cloud free-features documentation; the 2016 Vision beta announcement.",
      "profileUrl": "https://dialegein.com/products/google-cloud-vision-document-ai/"
    },
    {
      "slug": "gotenberg",
      "name": "Gotenberg",
      "tagline": "Self-hosted Docker API for document-to-PDF conversion and PDF manipulation.",
      "websiteUrl": "https://gotenberg.dev/",
      "summary": "Gotenberg is a Docker container that exposes an HTTP API for turning URLs, HTML, Markdown and Office documents into PDFs, using bundled headless Chromium and LibreOffice so you do not have to run those yourself. The same API post-processes PDFs: merge, split, rotate, watermark, stamp, flatten forms, read and write metadata and bookmarks, embed attachments, convert to PDF/A or PDF/UA, and encrypt with passwords. It can also pull inputs from, and push results to, your own S3-compatible storage, and official SDKs exist for several languages.",
      "bestFor": "Backend and platform teams that need dependable PDF generation and manipulation inside their own network without paying a hosted conversion service.",
      "watchOutFor": "It is an API with no user interface at all, so you must run, scale and secure the container yourself. The image is large because it bundles Chromium and LibreOffice. The clients listed on the documentation site are maintained by different people, so they should be checked individually rather than described as official SDKs.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "merge",
        "edit",
        "protect"
      ],
      "jobScores": {
        "convert": 85,
        "merge": 75,
        "edit": 70,
        "protect": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://gotenberg.dev/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Files are sent to the Gotenberg instance the operator runs. That instance may be on the same machine or on remote infrastructure, and the software itself is not a hosted service, so the honest statement is about the deployment rather than about the product. It is also not a zero-outbound component: the documentation covers converting a URL, downloading remote resources, filtering outbound requests, webhooks and file downloads, so what leaves depends on how the instance is configured.",
      "locality": {
        "verdict": "self_hosted",
        "label": "your own instance",
        "detail": "This runs on a server you operate rather than on your own device: The container, on Linux, A self-hosted instance, The HTTP API it exposes. Documents do not reach a server the vendor runs, and they do not stay in your browser either."
      },
      "license": "MIT",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "linux",
          "name": "The container, on Linux",
          "processing": "customer_server",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "A self-hosted instance",
          "processing": "customer_server",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "The HTTP API it exposes",
          "processing": "customer_server",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting content to PDF over HTTP with Gotenberg, where the official routes overview states that every route accepts a multipart form data POST request and returns a file, and lists the conversion routes as converting a web page by URL at /forms/chromium/convert/url, an HTML file at /forms/chromium/convert/html, Markdown files at /forms/chromium/convert/markdown, and office documents such as docx, xlsx and pptx at /forms/libreoffice/convert",
        "merge": "merging multiple PDF files into a single PDF with Gotenberg at the /forms/pdfengines/merge route, where the official page states that files are combined in alphanumeric order, numbers first then alphabetical, and that since version 8.37.0 files sharing a filename are all kept and merge in upload order, the route taking a required list of PDF files and returning the merged PDF, with an optional output filename header that defaults to a randomly generated UUID name",
        "edit": "modifying existing PDFs through documented manipulation routes: writing metadata and bookmarks, flattening form fields and annotations, and stamping or rotating pages; not editing page text or page content",
        "protect": "encrypting PDF files with Gotenberg at the /forms/pdfengines/encrypt route, where the page documents a user password required to open the PDF and an owner password that grants full access and lifts the permission restrictions and defaults to the user password, an owner password alone producing an owner-only PDF since version 8.34.0, allow flags for printing, copying, modifying, annotating, filling forms and assembling pages, and a response that is the encrypted PDF or a ZIP archive when several input files are given, with the page stating that permission restrictions are advisory and not cryptographically enforced once the document opens, and that encryption strength such as AES-256 and permission handling depend on the active PDF engine, with QPDF honouring each permission individually, pdfcpu restricting all permissions if any one is denied, and PDFtk supporting neither owner-only encryption nor permission restrictions"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 250,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 0,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "gotenberg.dev; gotenberg.dev docs (introduction, routes); github.com/gotenberg/gotenberg LICENSE. Licence confirmed on homepage and repo.",
      "profileUrl": "https://dialegein.com/products/gotenberg/"
    },
    {
      "slug": "grobid",
      "name": "GROBID",
      "tagline": "Machine-learning extraction of scholarly PDFs into structured XML/TEI for citation and metadata mining.",
      "websiteUrl": "https://github.com/grobidOrg/grobid",
      "summary": "GROBID reads a PDF and returns structured XML: a TEI-encoded document with the header metadata, the body, the bibliography and the in-text citations resolved as far as it can. It is built for scientific and technical articles rather than for general documents, and its accuracy on that shape of document is the reason it is widely embedded in scholarly search and repository pipelines. It is a Java service, deployed as a Docker container or a WAR, and it only reads - it never writes a PDF back out.",
      "bestFor": "Research groups, repository and discovery platforms, and anyone building a citation graph from a corpus of academic PDFs. It is built for that specific job, and it is the one here that emits TEI rather than plain text or Markdown.",
      "watchOutFor": "It is narrow by design. The models are trained on scholarly layouts, so a general business document, a form or a two-column newsletter is outside what it is tuned for, and the documentation does not present it as a general-purpose extractor. It is also heavy to run: a Java service with deep-learning models, Docker, and enough memory that the project's own advice is to deploy your own instance rather than use the public demo, which carries quotas and exists for evaluation. The batch command-line mode is documented as deprecated, so a shell pipeline built on it has an expiry date. Output is TEI XML, which is powerful and needs real post-processing before it is useful to anyone who is not already working in that format.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "self_hosted",
        "linux",
        "windows",
        "mac"
      ],
      "launchedYear": 2011,
      "primaryJob": "extract",
      "jobs": [
        "extract"
      ],
      "jobScores": {
        "extract": 85
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://github.com/kermitt2/grobid",
        "readAt": "2026-09-22",
        "quote": "GROBID includes a comprehensive web service API, Docker images, batch processing, a JAVA API, a generic training and evaluation framework (precision, recall, etc., n-fold cross-evaluation), systematic end-to-end benchmarking on thousand documents and the semi-automatic generation of training data.",
        "caveat": "Recorded as `none` because the tool reads documents and emits XML - it does not write or modify a PDF at all, so there is no redaction feature and no output document in which content could be left behind. The basis is the project's own description of its surface, quoted above, and it establishes absence from the feature set rather than a test we ran. What it does not establish: that every downstream system built on GROBID's output is safe, since the XML it emits contains the full extracted text."
      },
      "processesLocally": true,
      "processesLocallyNote": "Self-hosted is the documented deployment: your own Docker container or WAR, so the document is parsed on your own machine. Two things sit outside that, and neither is the whole PDF. The project supports reference and funder consolidation through biblio-glutton and the CrossRef REST interface, with funder matching as an optional step; those paths may send extracted metadata to another service, which is metadata rather than necessarily the document. Separately the project runs a public demo server that accepts uploads and is rate limited and quota limited, and anything sent there has left your device. Self-hosting is not by itself proof that nothing is sent anywhere, which is why both are named rather than folded into one answer.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Self-hosted by design: the documented deployment is your own Docker container or WAR, so the document is parsed on your own machine. Two things sit outside that and neither is the whole PDF. The project supports reference and funder consolidation through biblio-glutton and the CrossRef REST interface, with funder matching as an optional step, and those paths may send extracted metadata to another service - metadata rather than necessarily the document. Separately there is a public demo server, which is a quota-limited evaluation endpoint and one we will not put documents through. Self-hosting is not by itself proof that nothing is sent anywhere, which is why both are named. Probing this means deploying it, which needs Docker on the runner."
      },
      "license": "Apache-2.0 (documentation CC-0, annotated training data CC-BY)",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting and parsing structured data from PDF documents with GROBID, where the documentation describes it as a machine learning library that extracts, parses and restructures raw documents such as PDF into structured XML TEI encoded documents with a focus on technical and scientific publications, naming header extraction for title, abstract, authors, affiliations and keywords, references extraction and parsing, citation context recognition, full text extraction and structuring, PDF coordinates for bounding boxes and parsing of names, affiliations, addresses and dates, served through the REST endpoints /api/processHeaderDocument, /api/processFulltextDocument and /api/processReferences, which each take a PDF as a required multipart input and return TEI XML or BibTeX through the Accept header, with optional consolidation against Crossref or biblio-glutton and a documented 204 response when no content could be extracted, and with the error reference stating that a PDF with no text blocks, such as a scanned document without OCR, cannot be processed"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 400,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "The project repository and grobid.readthedocs.io, read 2026-09-22 with headless Chrome. Project and vendor documentation, not independently tested; no PDF was put through it for this record.",
      "profileUrl": "https://dialegein.com/products/grobid/"
    },
    {
      "slug": "groupdocs",
      "name": "GroupDocs",
      "tagline": "Document SDK family for .NET, Java, Node.js and Python, from the company behind Aspose.",
      "websiteUrl": "https://www.groupdocs.com/",
      "summary": "GroupDocs is a family of document SDKs for .NET, Java, Node.js and Python that covers viewing, conversion, comparison, annotation, e-signature, merging, watermarking, metadata, parsing, search, assembly and redaction, across more than 200 file formats including PDF. The pitch is that a developer gets document handling without automating Microsoft Office or Adobe Acrobat, and the family is sold either component by component or as GroupDocs.Total, which licenses all of it together. It is a sibling brand of Aspose, sharing the same owner and the same shape of product line.",
      "bestFor": "Application teams in the .NET and Java world who need several document capabilities - view, convert, sign, redact - and would rather buy one family than integrate four vendors. It is also a reasonable answer for a team that needs Office formats and PDF in the same pipeline without installing Office on a server.",
      "watchOutFor": "It is a family sold in pieces, and the pieces do not share a licence unless you buy Total: a team that starts with the viewer and later needs redaction is looking at a second purchase, and the component names are similar enough that a comparison chart is worth reading twice. The redaction component's own page says it can \"hide or remove\" sensitive information, which is the distinction this index exists to draw - hiding is not redacting, and a reader must not take the presence of a redaction component as proof that content leaves the file. Licensing is pricing is published as starting configurations rather than being quote-only: component products commonly start at USD 1,199, Total at USD 2,999 and the Total family pack at USD 4,499, read on 4 October 2026, and those are starting points rather than what every deployment pays. And the family spans four runtimes, so it is worth checking that the component you need exists in yours rather than assuming one codebase covers all four. Redaction needs its output mode named rather than a verdict: the .NET documentation describes rasterised PDF as the default save path, with options for original-format output. Rasterised output loses searchable text and original metadata, and visible annotations need removing separately when they are sensitive, so the practical tradeoff is part of the answer. The family is an on-premise SDK scope, which is distinct from the brand’s apps and cloud APIs. Python via .NET and Node.js via Java are wrappers rather than independent native engines, and feature parity between them is not implied.",
      "pricingModel": "paid",
      "priceFromGbp": 897.24,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Aspose Pty Ltd",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "sign",
        "extract",
        "view",
        "merge"
      ],
      "jobScores": {
        "edit": 80,
        "convert": 75,
        "protect": 75,
        "sign": 75,
        "extract": 70,
        "view": 70,
        "merge": null
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://products.groupdocs.com/redaction/",
        "readAt": "2026-09-22",
        "quote": "Document Redaction Library - Hide or remove private information from various file types. Edit text or images to eliminate sensitive content. Manage file metadata using our advanced features.",
        "caveat": "RECORDED AS REMOVES_CONTENT ON A JUDGEMENT, AND THE CAVEAT IS THE IMPORTANT PART. The page offers both verbs - \"Hide or remove private information\" - and lists \"Remove or Edit Text\" among its features, so a removal capability is documented; that is what earns the verdict. But the same sentence offers HIDING as an alternative, and the page never says which operation writes what to the file, so this is a library where the caller chooses between covering content and removing it. That is the same two-step trap this index documents for Aspose, Bluebeam, Nutrient, PDFelement and MuPDF, and a reader must use the removing mode deliberately. What would settle it: the API reference for the removal operation, or a canary test through the .NET package. Until then, treat \"GroupDocs has redaction\" as \"GroupDocs can redact if you call the right thing\"."
      },
      "processesLocally": true,
      "processesLocallyNote": "Libraries that run inside your own application, on your own servers, in .NET, Java, Node.js or Python. GroupDocs operates no document processing service in that path; documents are opened and written on your infrastructure.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Libraries that run inside your own application on .NET, Java, Node.js or Python. GroupDocs operates no document processing service, so documents are opened and written on your own infrastructure."
      },
      "license": "Commercial, per component or as GroupDocs.Total; free trials available",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF documents programmatically with GroupDocs.Editor for .NET, where the official tutorial documents loading a PDF through PdfLoadOptions with an optional password into an Editor instance, generating an editable intermediate document as HTML-like content through PdfEditOptions with pagination enabled to preserve page breaks, replacing text, images and layout elements in that editable content, and saving the result back to PDF through the save options, in a .NET 6 or later environment, with a commercial licence required for non trial deployments",
        "convert": "converting PDF files with GroupDocs.Conversion for .NET, where the documentation states that the component converts PDF documents to other file formats and also converts other formats to PDF, and its PDF conversion page documents conversions from PDF to Word, Excel, PowerPoint, HTML and images including PNG, JPG and TIFF, converting a single page to an image, and PDF to the eBook formats AZW3, EPUB and MOBI, running on Windows, Linux and macOS with .NET Framework 4.6.2 or .NET 6.0 and later, and requiring no installation of Microsoft Word, Excel or PowerPoint",
        "protect": "adding, updating, removing and checking document passwords through GroupDocs.Merger for .NET, including adding a password to a PDF with permissions; not encryption algorithms, certificates, DRM or signatures",
        "sign": "signing PDF documents with GroupDocs.Signature for .NET using a digital signature based on an existing PFX certificate, where the documentation states that digital signatures are created from existing PFX certificates containing a private key for signing and a public key for verification, that DigitalSignOptions takes the certificate from a file path or a stream together with its password, plus optional contact, reason and location descriptions and a visible flag deciding whether the signature appears on the page, and that the Sign method writes the signed PDF, with the component running on Windows, Linux and macOS on .NET Framework 4.6.2 or .NET 6, 8 or 10 and requiring no external software, and with the XAdES type property documented as applying to spreadsheet documents only and having no effect on PDF",
        "extract": "extracting text, metadata, images, tables and annotations from PDF documents through GroupDocs.Parser for .NET, using GetText or GetText(pageIndex) for a whole document or a selected page; not OCR or arbitrary document conversion",
        "view": "rendering PDF documents with GroupDocs.Viewer for .NET, where the official Render PDF documents page states that the component renders PDF files to HTML, PNG and JPEG and that it can be used to implement a simple PDF viewer in a .NET web or desktop application, documents that a Viewer instance takes a document from a file or stream and that the View method renders the whole document or specific pages, and describes HTML output with embedded or external resources and a fixed layout that is the default for PDF or a fluid layout in which graphic content such as images is ignored, PNG and JPG output with selectable width and height or the original page size, rendering of text comments and popup notes, and a TryRepair load option added in version 24.5 that is off by default for structurally corrupted PDFs, with the supported page layout input formats listed as PDF, XPS, OXPS, TEX and OFD with automatic format detection from the file header, running on Windows, Linux and macOS on .NET Framework 4.6.2 or .NET 6 and later without external software such as Microsoft Office",
        "merge": "merging PDF files with GroupDocs.Merger for .NET, joining documents into one and optionally carrying bookmarks; not arbitrary cross-format merging or every GroupDocs runtime"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 114,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "groupdocs.com: the home page, and products.groupdocs.com/redaction/ for the redaction component, both read 2026-09-22 with headless Chrome, including the site footer's copyright line. Vendor documentation, not independently tested; no package was installed and no document was processed.",
      "profileUrl": "https://dialegein.com/products/groupdocs/"
    },
    {
      "slug": "icepdf",
      "name": "ICEpdf",
      "tagline": "Open-source Java PDF engine for rendering, converting, extracting and signing.",
      "websiteUrl": "https://www.icepdf.org/",
      "summary": "ICEpdf is an open-source Java PDF engine that renders, converts and extracts PDF content inside a Java application or on a web server, and it ships a viewer as well as a headless engine. It is contributed and administered by ICEsoft Technologies and distributed under Apache-2.0 with source code and reference implementations that the project describes as commercial quality. It can also create and verify certificate-based digital signatures, with PKCS#12 and PKCS#11 signer handlers, configurable signature appearance and optional TSA timestamps. It is the library other Java PDF vendors name when they describe what developers try first.",
      "bestFor": "Java projects that need to render or extract from PDFs and want an open-source engine they can read and modify, particularly where an embedded viewer is useful. It is also a reasonable thing to evaluate before buying a commercial Java library, which is exactly the role its competitors' marketing assigns it.",
      "watchOutFor": "There are two sources of truth here and they differ in age and status. The canonical official site https://www.icepdf.org/ is live, but its product documentation is frozen: resources/documentation.html lists ICEpdf 4.2.2 release notes dated 23 August 2011, the Developer's Guide is dated 22 August 2011, and the footer reads 2009. A live URL is not the same as current product documentation; stale vendor docs do not by themselves establish that the project is abandoned. The official site links no code host. A repository at https://github.com/pcorless/icepdf was identified independently in earlier research and describes itself as ICEpdf, Apache-2.0, with releases up to v7.4.1 on 10 May 2026; that is independent evidence, not an official-site source link. Signature support imports BouncyCastle CMS classes, and PDF/A signature edits need the optional icepdf-fonts jar.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "ICEsoft Technologies Inc.",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "extract",
        "convert",
        "edit",
        "sign"
      ],
      "jobScores": {
        "view": 60,
        "extract": 60,
        "convert": 60,
        "edit": null,
        "sign": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://icepdf.org/",
        "readAt": "2026-09-22",
        "quote": "ICEpdf is an open source Java PDF engine that can render, convert, or extract PDF content within any Java application or on a Web server.",
        "caveat": "Recorded as `none` on absence, and it is the weakest kind of absence in this index: the page describes rendering, conversion and extraction in one sentence and does not enumerate features at all, so nothing can be concluded from what is missing. It is recorded as `none` rather than `unverified` only because the stated scope is reading and producing content, with no editing feature described anywhere - but a reader should treat this as the least established verdict in the batch, and it would be better left `unverified` if the project were maintained enough to warrant checking. As it is, checking costs more than the answer is worth."
      },
      "processesLocally": true,
      "processesLocallyNote": "A Java library and viewer that run in your own JVM or servlet container. ICEsoft operates no document processing service in that path.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Java library and viewer running in your own JVM or servlet container. ICEsoft operates no document processing service in that path."
      },
      "license": "Apache-2.0",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing and rendering PDF documents with ICEpdf, where the official overview describes an open source 100 percent Java PDF library for displaying PDF documents within a Java application that can act as a stand alone PDF viewer or be embedded as a viewer component, and the 4.2 release it documents renders PDFs up to version 1.6 (Acrobat 7.0), with the viewer providing zoom in and out, rotate, next and previous page, fit to window, width or actual size and pan, multipage continuous and side by side view types, a utility pane with outlines and document search, document information and permissions dialogs, text selection and clipboard functions, and search result highlighting on the pages where results occur, documented for Windows, Linux, Solaris and Mac OS X running Sun J2SE 1.5, 1.6 or 1.7",
        "extract": "extracting content from PDF documents with ICEpdf, where the official overview lists PDF content extraction as using ICEpdf to extract PDF document metadata, text and images, and the deployment scenarios page says ICEpdf can be deployed to client workstations for interactive viewing as well as to headless server environments for non visual PDF content conversion and extraction applications, with the product documented as 100 percent pure Java and usable with any J2SE or J2EE JVM version 1.5.0 or greater",
        "convert": "converting PDF documents to other file formats with ICEpdf, where the official overview says the library can render PDFs to an image file in PNG, JPEG or GIF in a server side web application, and that it can be used to convert rendered PDF pages to images, SVG documents and other file formats, and the deployment scenarios page says the servlet renders the requested files server side, converts them to a specified image format and serves the pages back in the form of a standard web page, with the site documenting release 4.2 and describing the product as 100 percent pure Java",
        "edit": "editing PDF documents with ICEpdf, where the official overview lists support for document editing and saving for Link Annotation edits and separately states support for interactive link annotation actions of the uri, launch and resource kinds, and its PDF Link Annotations section says ICEpdf can be configured to support interactive link annotations via a mouse and that an annotation callback gives developers flexibility in which types of link annotation actions they wish to support, so the documented edit capability is adding and saving link annotations and their actions rather than changing existing text, images or page layout, in a 100 percent pure Java library documented at release 4.2",
        "sign": "signing and verifying PDF documents with ICEpdf, where the maintained repository at https://github.com/pcorless/icepdf has an acroform signature package with SignatureDictionary, SignatureFieldDictionary, SignatureHandler and SignatureManager, the signer handlers Pkcs12SignerHandler for a PKCS#12 keystore and Pkcs11SignerHandler for PKCS#11 tokens, and a DocumentSigner that writes a signed digest and a PDF 32000-1 12.8.1 byte range into the SignatureDictionary /Contents and /ByteRange entries; Pkcs7Generator creates a PKCS#7 signature from an X509 certificate chain and private key through BouncyCastle CMS, and the examples/signatures module documents Pkcs12SignatureCreation with a keystore file, certificate alias and password, a hasPermissionToSignDocument check, a SignatureWidgetAnnotation added to the interactive form, a BasicSignatureAppearanceCallback with SignatureAppearanceModelImpl, plus Pkcs11SignatureCreation and SignatureVerification; SignatureType distinguishes SIGNER and CERTIFIER; verification covers the adbe.pkcs7.detached, adbe.pkcs7.sha1, ETSI.CAdES.detached and adbe.x509.rsa_sha1 subfilters with certificate, CRL and OCSP verification classes; and the release notes document v7.3.0 adding a digital signature annotation tool with certificate selection, appearance edits and signature image inclusion, v7.3.2 adding PKCS#11 signature selection, and v7.4.0 adding TSA-configured signing with the signed timestamp attached to the signing certificate plus time-stamp validation and verification improvements; drawn or handwritten signatures are not claimed, only the signature image placed in the appearance, and signature widget annotations are distinct from the link annotations the edit job covers"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 596,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://www.icepdf.org/ (canonical final page; https://icepdf.org/ returns 301 to http://www.icepdf.org/ and then to https://www.icepdf.org/; home read 2026-10-18: open-source Java PDF engine, ICEpdf 4.2/4.0 items and 2009 footer; https://www.icepdf.org/resources/documentation.html read 2026-10-18: ICEpdf 4.2.2 release notes dated 23-08-2011, Developer's Guide 22-08-2011, 2009 copyright; the official site links no code host; independently identified https://github.com/pcorless/icepdf is not an official-site link and was not re-read for this URL audit. Nothing downloaded or tested.)",
      "profileUrl": "https://dialegein.com/products/icepdf/"
    },
    {
      "slug": "ilovepdf",
      "name": "iLovePDF",
      "tagline": "Broad web PDF toolkit with desktop, mobile and API companions.",
      "websiteUrl": "https://www.ilovepdf.com/",
      "summary": "iLovePDF is a cloud service offering around thirty tools for merging, splitting, compressing, converting to and from Office formats, editing, OCR, signing, redacting and password-protecting documents. One account covers a Windows and macOS desktop app and iOS and Android apps, and a separate iLoveAPI product exposes the tools to developers. Free use works but is limited; paid Premium tiers lift those limits.",
      "bestFor": "General users and small businesses that want a broad PDF tool set across web, desktop and mobile. The web tools need no install; the Windows, macOS, iOS and Android apps are separate downloads, and one account covers them.",
      "watchOutFor": "The web service uploads your files to iLovePDF's servers, and it is a poor fit for confidential documents or heavy automation without a paid plan. The free tier restricts which tools you can use and how much you can process, and the limits are set per task rather than once for the product: the pricing page read on 4 October 2026 lists 100 MB for merge and 200 MB for compression on the limited tier, so there is no single maximum to quote. Some tools need an account and some work without one, and the desktop and mobile apps are separate downloads rather than something the web service gives you.",
      "pricingModel": "freemium",
      "priceFromGbp": 5,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "windows",
        "mac",
        "ios",
        "android",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "merge",
      "jobs": [
        "merge",
        "compress",
        "edit",
        "convert",
        "sign",
        "ocr",
        "protect"
      ],
      "jobScores": {
        "merge": 80,
        "compress": 80,
        "edit": 65,
        "convert": 75,
        "sign": 75,
        "ocr": 70,
        "protect": 75
      },
      "redaction": "covers_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": null,
        "readAt": "2026-09-17",
        "quote": null,
        "caveat": "Tested on the web tool, where the black boxes are drawn over the text and nothing is removed. The vendor separately advertises permanent removal in its desktop application, which we have not tested. This verdict describes the web tool we tested and no other workflow."
      },
      "processesLocally": false,
      "processesLocallyNote": "Applies to the web service, where files are processed within iLovePDF's cloud platform. Their desktop app is the exception: the vendor states it processes files locally on your computer. One product, two opposite answers.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Their security page describes files processed within their platform."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "iLovePDF: PDF tools, features and limitations",
      "originalPricing": {
        "amount": 60,
        "currency": "GBP",
        "period": "year",
        "planName": "Premium, annual billing",
        "asShown": "GBP 5 per month, billed as 60 GBP annually; monthly billing is 9 GBP",
        "source": "https://www.ilovepdf.com/pricing",
        "readAt": "2026-10-04"
      },
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "merge": "merging PDF files with the iLovePDF web Merge PDF tool, where the official user guide section for Merge PDF says that to merge two or more PDFs you select the documents, that you can arrange the files however you like before merging them, that you can also combine several password protected documents into one, and that you upload the selected files, process them and then download the merged file, and where the Merge PDF tool page says you can combine PDFs in the order you want, with the guide pointing to the Merge PDF limits for each account type instead of stating a single numeric limit",
        "compress": "compressing PDF files with the iLovePDF web Compress PDF tool, where the official user guide section for Compress PDF says that to compress PDF files you select the documents, upload the file or files to optimize, choose between extreme, high or regular compression level and then hit the Compress PDF button, and that the higher compression, the lower file size and quality, with the button downloading your reduced PDF, and where the Compress PDF tool page says it reduces file size, with the guide pointing to the Compress PDF limits for each account type instead of stating a single numeric limit",
        "edit": "adding content to PDF pages with the iLovePDF web Edit PDF tool, where the official user guide section for Edit PDF says that to add elements or text to a page you choose from the Text, Image or Shape icons in the Edit PDF toolbar, that you can resize or move any element on the page where it was created, that you can change the colour, transparency, border color, rotation, format or line thickness of your images, shapes or texts using their property bars, and that you then click the Edit PDF button to process the file, and where the Edit PDF tool page describes it as editing a PDF by adding text, shapes, comments and highlights, so the documented capability is adding and formatting new elements and comments rather than changing existing text, images or page layout",
        "convert": "converting documents between PDF and other formats with the iLovePDF web conversion tools, where the official user guide documents the Convert to PDF tools as JPG to PDF with portrait or landscape orientation, with or without margin, and an option to merge all images into a single PDF, WORD to PDF turning a .docx into a non-editable document, POWERPOINT to PDF turning a .pptx into a non-editable document, EXCEL to PDF turning a .xlsx into a PDF, and HTML to PDF from a pasted URL with orientation and margin options, and the Convert from PDF tools as PDF to JPG including extracting all the pictures in a zip file, PDF to WORD producing an editable .docx, PDF to POWERPOINT producing an editable .pptx where each page becomes a slide, PDF to EXCEL producing an Excel document, and PDF to PDF/A for long term archiving and preservation, with each tool deferring its limits to the account type rather than stating a number",
        "sign": "signing PDF documents with the iLovePDF web Sign PDF tool, where the official user guide documents signing your own document by uploading it and choosing a signature from the sidebar menu, drawn by hand, uploaded as an existing signature or typed as text, optionally adding fields such as date and initials, then clicking Sign PDF to download the signed PDF, and documents collecting e signatures by creating a signature request in which you add signers, include signing fields, adjust security parameters and send, after which all signers receive an email with access to the document and can read and sign it, and once the process is complete you receive a copy of the signed document with the option to download an audit trail, and where the Sign PDF tool page describes signing a document yourself or sending a signature request to others, and the guide contains no wording about certificates, digital signatures, PAdES, eIDAS or timestamps, so the documented signatures are visual and workflow signatures rather than certificate based digital signatures",
        "ocr": "converting non selectable PDF files into selectable and searchable PDF with the iLovePDF web OCR PDF tool, where the OCR PDF tool page says it converts non selectable PDF files into selectable and searchable PDF, and where the official FAQ says that converting a scanned PDF to an editable document requires optical character recognition, described as a system that converts non selectable and scanned text to office documents, with no language options, accuracy figure, page or size limit stated on the pages read",
        "protect": "protecting PDF files with the iLovePDF web Protect PDF tool, where the official user guide says that to secure a PDF with a password you upload the document, choose a user password to encrypt and secure your PDF, and then hit the Protect PDF button to add the password to the file, that the separate Unlock PDF tool removes the password from a PDF file, and that each tool defers its limits to the account type, and where the Protect PDF tool page says it encrypts your PDF with a password, with no owner password, permission flags, algorithm or key length documented on the pages read"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 57,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "ilovepdf.com; ilovepdf.com pricing, help/security, help/privacy and desktop pages. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/ilovepdf/"
    },
    {
      "slug": "ironpdf",
      "name": "IronPDF",
      "tagline": "Commercial in-process PDF library for .NET, Java, Python and Node.js, priced in perpetual per-developer tiers.",
      "websiteUrl": "https://ironpdf.com/",
      "summary": "IronPDF is a commercial library, published by Iron Software for .NET with editions for Java, Python and Node.js, that generates PDFs from HTML and edits existing ones from inside the caller's own process. Its rendering path is a Chromium engine, so HTML, CSS, JavaScript and web fonts convert at browser fidelity, while a PDFium-based layer handles the object model: merging, splitting, rotating and reordering pages, AcroForm filling and flattening, metadata and bookmarks, AES password encryption, digital signatures, and redaction that deletes the underlying text and images rather than drawing over them. It also writes PDF/A and PDF/UA output for archival and accessibility requirements.",
      "bestFor": "Closed-source .NET, Java, Python or Node.js teams that need high-fidelity HTML-to-PDF generation without operating a headless browser themselves, or that need to edit, sign and genuinely redact existing PDFs, and that are willing to buy a perpetual per-developer licence and budget separately for the right to redistribute.",
      "watchOutFor": "The published price buys the right to use the library internally. Every tier may be deployed inside your own web, intranet or desktop application, but the EULA forbids distributing the software to third parties and forbids SaaS use, and on the Lite tier that right is not sold at any price. The vendor counts developers or development machines, and defines project and location limits separately from that count, so the two are worth reading as different quantities. Redistribution is its own matter again: OEM and SaaS redistribution, SDK distribution and air-gapped development are separate options whose eligibility and fees depend on the tier, and the older combined add-on quotation is not reproduced here. Promotional figures are dated where they appear.",
      "pricingModel": "paid",
      "priceFromGbp": 740.96,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Iron Software",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2015,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "sign",
        "merge",
        "compress",
        "accessibility"
      ],
      "jobScores": {
        "edit": 88,
        "convert": 90,
        "protect": 85,
        "sign": 80,
        "merge": 85,
        "compress": 75,
        "accessibility": 60
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://ironpdf.com/tutorials/pdf-redaction-csharp/",
        "quote": "This tutorial covers permanently removing sensitive content from PDF documents in C# .NET, including text patterns, image regions, metadata, and embedded scripts.",
        "caveat": "Vendor documentation for a developer library, not a test we ran, and it describes a capability rather than a guarantee about any particular call. The same page lists removal by regex match, by coordinate region, and metadata cleanup as separate operations, so a redaction is only as complete as the options a developer passes to it."
      },
      "processesLocally": true,
      "processesLocallyNote": "The library runs inside the application that hosts it, on the customer’s own machine or server, which is what the documentation describes. That is a statement about the library rather than about every deployment: the vendor documents licence validation against a licensing server and an optional URL-to-PDF path that fetches a URL you supply, so the record does not claim to enumerate every network call a configured application might make. The vendor’s statements about document handling are theirs rather than a measurement we ran.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An in-process .NET library. The vendor states documents are not sent to Iron Software and everything runs locally; the only network calls described are licence validation and the optional URL-to-PDF render."
      },
      "license": "Proprietary commercial. Perpetual per-developer licence in named tiers (Lite, Plus, Professional, Unlimited, and negotiated Enterprise), each setting the permitted number of developers, locations and applications. Redistribution and SaaS use require Royalty-Free Redistribution Coverage as a paid add-on, and the vendor sells that coverage only against Plus, Professional and Unlimited: its own pricing note reads \"Not available for the Lite license\".",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "replacing existing text in PDF documents with the IronPDF .NET library, where the official Replace Text in PDF how-to says the replace text action can be applied to any PdfDocument object whether newly rendered or imported, using ReplaceTextOnAllPages with the old and the new text, ReplaceTextOnPage for a single page and ReplaceTextOnPages for multiple specified pages, with zero based page indexes, support for newline characters in the replacement text and an optional custom font and size on the page method, raising an exception when the old text cannot be found, and saving the edited PDF to a new file, with the page showing version 2026.10",
        "convert": "converting other formats into PDF and PDF pages into other formats with the IronPDF .NET library, where the official how-to guides document DOCX to PDF through the DocxToPdfRenderer class and RenderDocxAsPdf taking a file path, a byte array or a stream with DocxPdfRenderOptions for mail merge and page setup, image to PDF for single or multiple JPG, PNG or TIFF images through ImageToPdfConverter.ImageToPdf with customizable placement, and further official guides for HTML file, HTML string, HTML element, HTML zip, ASPX, JavaScript, Markdown, RTF, URL and XML to PDF, and document PDF to HTML through the SaveAsHtml method, PDF to SVG through the PdfToSvg namespace converting page by page, and rasterizing PDF pages into PNG, JPEG or TIFF image files through RasterizeToImageFiles",
        "protect": "protecting PDF documents with passwords and permissions using the IronPDF .NET library, where the official Passwords and Permissions guide documents a user password, also called the open password, which is required to open and view the document, and an owner password, also called the permissions password, which controls permissions for editing, printing and other actions, set through the SecuritySettings UserPassword and OwnerPassword properties, with permissions that can make a document unprintable, read-only and encrypted, an EncryptionType setting whose values are Rc4_128 for 128 bit RC4 as the default, Aes_128 for 128 bit AES and Aes_256 for 256 bit AES, each listed with the PDF version and minimum Acrobat reader it requires, a note that RC4 remains the default so existing code is unaffected but is cryptographically weak and that AES is recommended for new documents, and opening a protected document through PdfDocument FromFile with a password that the library detects as user or owner and uses to grant the corresponding access level",
        "sign": "signing PDF documents with the IronPDF .NET library, where the official Signing PDF Documents guide distinguishes three separate things, applying a certificate based digital signature with an X509Certificate2 certificate, stamping a visual handwritten signature image onto a document, and adding an interactive form field for users to sign electronically, where the HSM guide documents signing through the PKCS#11 API with a UsbPkcs11HsmSigner built from the library path, a PIN, a token label and a key label so that private keys stay on the device, and where the Verify PDF Signatures guide documents reading verified signatures through PdfDocument GetVerifiedSignatures, which returns VerifiedSignature objects whose SignerCertificate and CertificateChain properties expose the signer X.509 identity, the issuing CA, validity dates, a SHA 256 thumbprint, the raw DER bytes and the intermediate certificates up to the root",
        "merge": "merging PDF documents with the IronPDF .NET library, where the official How to Merge or Split PDFs guide says IronPDF merges multiple PDF files into one document using the Merge method, and its quickstart merges two documents loaded with PdfDocument FromFile into a single document that is saved with SaveAs, with the inputs documented as existing PDFs or PDFs rendered from an HTML string, file or URL, and with the guide stating no ordering, bookmark or metadata preservation behaviour for the merged output",
        "compress": "reducing PDF file size through the PdfDocument compression API, which re-encodes embedded images as JPEG at a chosen quality and can strip the PDF structure tree; not lossless compression and no guaranteed size reduction",
        "accessibility": "exporting PDF documents to the PDF/UA accessibility standard with the IronPDF .NET library, where the official Export PDF/UA Documents guide says PDFs are exported using the SaveAsPdfUA method on a PdfDocument, or built with RenderHtmlAsPdfUA straight from HTML, that the library writes both PDF/UA-1 (ISO 14289-1) and PDF/UA-2 (ISO 14289-2:2024) while tagging the document so screen readers and other assistive technologies can read it, that PDF/UA defines how a PDF carries its structure through a tagged content tree, alternative text for images, a declared reading order and a document language, that an existing PDF can be loaded and converted to the standard in one call, and that examples produce PDF/UA-1 by default while PDF/UA-2 is written using a version parameter"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 32,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "ironpdf.com (homepage, /licensing/ full licence comparison table, /docs/license/eula/, /docs/license/license-keys/, /ai-info/ official AI information page, /tutorials/pdf-redaction-csharp/, /product-updates/milestones/); ironsoftware.com (/about-us/ company history, /privacy-info/, /suite/); docs.nuget.org flat-container and registration API for the IronPdf package version history; frankfurter.dev and open.er-api.com for the USD/GBP rate.",
      "profileUrl": "https://dialegein.com/products/ironpdf/"
    },
    {
      "slug": "itext",
      "name": "iText",
      "tagline": "Java and .NET PDF library with an AGPL-3.0 core and component-specific licensing.",
      "websiteUrl": "https://itextpdf.com/",
      "summary": "iText is a PDF library for Java and .NET, split into an open-source core that creates, edits and manipulates documents at the object level, and a set of add-ons that cover HTML-to-PDF conversion, redaction, OCR, compression, XFA flattening and advanced typography. It is one of the oldest PDF toolkits still in wide use and is embedded in server-side document pipelines rather than offered to end users as an application. The core is dual-licensed, so the same binaries can be used free under AGPL-3.0 or paid for under a commercial licence that removes the copyleft obligations.",
      "bestFor": "Engineering teams that need a mature, deeply documented PDF engine inside a Java or .NET backend, where AGPL-3.0 is acceptable or the budget exists for a commercial licence.",
      "watchOutFor": "The dual licence is the entire commercial story and it is stricter than most open-source PDF libraries. iText's own AGPL page states that using the core in a non-AGPL environment is a legal violation and requires disclosing the full source of your own application, so the free route is only open to projects that are themselves AGPL. A closed-source product needs a commercial licence for the core as well as the add-ons, and both are quote-only. The add-ons are not licensed alike, which the subtitle used to imply: the vendor’s own community and get-started pages identify pdfHTML, pdfSweep and pdfOCR as open source, while pdfCalligraph, pdfXFA and pdfOptimizer are closed source. Buying the core does not include every add-on. Embedded deployments and the AWS or REST packaging are distinct editions rather than one web service, and a renderer component, not core PDF creation, is what a View membership should rest on.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Apryse",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2000,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "merge",
        "compress",
        "accessibility",
        "sign",
        "view",
        "ocr",
        "extract"
      ],
      "jobScores": {
        "edit": 90,
        "convert": 85,
        "protect": 80,
        "merge": 80,
        "compress": 70,
        "accessibility": 50,
        "sign": 40,
        "view": 20,
        "ocr": null,
        "extract": null
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://itextpdf.com/products/pdf-redaction-pdfsweep",
        "readAt": "2026-09-22",
        "quote": "pdfSweep is an iText Core add-on for Java and C# (.NET) that removes (redacts) information from a PDF document in a reliable and secure way … After adding a digital \"blackout bar\" over the sensitive text, image or part of an image, pdfSweep changes the document's rendering instructions causing the hidden content of your digital document to become impossible to extract.",
        "caveat": "WEAKER BASIS THAN IT SHOULD BE, THOUGH LESS WEAK THAN IT WAS. The page body did not render on the first pass and only the title could be read, which is how this verdict was originally recorded. Re-read with headless Chrome on 2026-09-22, the body does render and describes the mechanism itself. But that is product-page prose rather than API documentation, so the verdict still rests on a vendor's marketing description of what the call does to the file rather than on a contract for it. Someone should read the pdfSweep API documentation directly, or run the canary, and replace this. Read from vendor wording, not tested by us."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: an in-process library distributed as JARs (Maven) or DLLs (NuGet). There is no hosted component, and files are read and written by the host application's own code on the local filesystem. Apryse separately markets an iText Suite BYOL listing on AWS Marketplace described as using a REST API, which would move processing to the customer's own AWS deployment rather than an Apryse service.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An in-process Java and .NET library. There is no hosted component and no vendor service in the path, so documents are parsed and written inside the calling application."
      },
      "license": "Dual-licensed per licensee rather than per module: the iText Core toolkit and most of its add-ons are available under AGPL-3.0, or under a commercial licence that removes the source-disclosure obligation for closed-source products. pdfHTML - the most commonly used add-on, and the one that converts HTML to PDF - is dual-licensed this way, not commercial-only. pdfCalligraph is the add-on iText names as genuinely closed source. iText publishes no single page allocating every add-on, so this is established add-on by add-on rather than in general.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing an existing PDF by opening it with a reader and a writer and adding additional content such as a new page, a paragraph or an image, with examples for Java and .NET",
        "convert": "converting HTML and CSS to PDF through the pdfHTML add-on of the iText PDF SDK; not arbitrary format conversion and not part of the base library",
        "protect": "encrypting PDFs with a user and/or owner password and decrypting a PDF with its owner password, as shown in the iText Core security examples for Java and .NET",
        "merge": "merging multiple PDFs into one as part of the PDF manipulation features of iText Core/Community for Java and .NET",
        "compress": "automatically optimising PDFs, including in bulk, through the pdfOptimizer add-on of the iText PDF SDK; not part of the base library",
        "accessibility": "creating PDF/UA documents and running PDF/UA-1 conformance checks through the PdfUADocument and PdfUAConfig APIs of iText Core, including setting the document as tagged and accessibility properties on form fields; the checks are programmatic support for many, not all, Matterhorn Protocol checkpoints",
        "sign": "digitally signing PDFs through iText's high level signing API, with examples for Java and .NET",
        "view": "rendering PDF pages to image output such as JPG, PNG or an in-memory image through the licensed pdfRender add-on, for example to preview a page as an image; this is rasterising to an image, not on-screen display, and is not part of the base library",
        "ocr": "OCR text recognition in scanned documents, PDFs and images through the pdfOCR add-on of the iText PDF SDK; not part of the base library",
        "extract": "extracting text from PDFs using text extraction strategies and location extraction strategies, as demonstrated by the Parsing PDFs examples in Java and .NET"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 387,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "itextpdf.com (AGPLv3 licence page, Open-Source statement, How to buy / pricing, iText Suite and iText Core product pages, pdfSweep product page, privacy policy); itextpdf.com KB page 'Before we start: installing iText Core | .NET'; apryse.com news post 'PDFTron Acquires iText' and the Apryse site navigation; the iText KB footer, read at https://kb.itextpdf.com/itext/licensing-itext (404 page shell showing 'Copyright Apryse').",
      "profileUrl": "https://dialegein.com/products/itext/"
    },
    {
      "slug": "jpedal",
      "name": "JPedal",
      "tagline": "Pure Java PDF library for rendering, extraction, viewing and manipulation, with published prices.",
      "websiteUrl": "https://www.idrsolutions.com/jpedal",
      "summary": "JPedal is a Java PDF library with no native dependencies: one jar, no JNI, runs on any JVM from Java 17. It renders pages to images, extracts text and images, includes an embedded Swing viewer, and handles manipulation, digital signing, forms including XFA, annotations and inspection. It is sold with a one-off server or OEM licence and optional annual support, and the vendor publishes its prices rather than requiring a sales conversation - which in this index is nearly unique among commercial PDF SDKs.",
      "bestFor": "Java teams that need PDF handling inside the JVM without shelling out to a native tool, particularly where an embedded viewer matters - the vendor's own comparison notes that neither PDFBox nor iText ships one. The absence of native dependencies is the other reason teams pick it: one jar means no version mismatches and no separate process to babysit.",
      "watchOutFor": "Its redaction entry is a word in a feature list rather than a described mechanism, so this index records the verdict as unverified - a reader who needs redaction should check what the API actually does to the file before relying on it. The licence is commercial, and while the pricing is published, the model is a one-off server or OEM fee with support billed annually after the first year, which is a different cash profile from a subscription and worth modelling before comparing it with one. The comparison material on the vendor's own site is unusually direct about competitors - it names iText's AGPL obligation and PDFBox's lack of a viewer and of commercial support - and it is marketing written by a party with an interest in the outcome, however accurate the individual statements are. Being pure Java with no native code is a real benefit and also a limit, but the limit is not rendering fidelity: language architecture does not establish how well a renderer reproduces a page, so anything needing a browser-grade renderer is a question about output rather than a scope boundary to declare.",
      "pricingModel": "paid",
      "priceFromGbp": 710.9,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "IDRsolutions",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "view",
        "extract",
        "convert",
        "sign",
        "protect",
        "merge"
      ],
      "jobScores": {
        "edit": 80,
        "view": 80,
        "extract": 75,
        "convert": 75,
        "sign": 70,
        "protect": null,
        "merge": null
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.idrsolutions.com/jpedal",
        "readAt": "2026-09-22",
        "quote": "PDF rendering to image, embedded PDF viewer, text extraction and search, PDF manipulation, digital signing, redaction, form handling (AcroForms and XFA), annotations, and PDF inspection.",
        "caveat": "RECORDED AS UNVERIFIED, and it is the third record in this campaign where a redaction feature exists but the mechanism is undocumented. The word appears once, in that list, and nowhere on the page is it explained: nothing says whether content is removed from the page or covered, and there is no redaction-specific page to read - the site's navigation offers converters, viewer pages and a buyer's guide but nothing about redaction. It is not `none`, because the feature is claimed to exist. What would settle it: the API documentation for the redaction call, or a canary test during the trial, which the vendor explicitly invites."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded Java library, so it runs inside the application that includes it, on whatever infrastructure that application runs on, which can include a server. That is not the same as a server-free deployment, and it is not a statement about the host application’s network behaviour.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Java library that runs in your own JVM, on-premise or in your own cloud. IDRsolutions operates no document processing service; the vendor's own framing is that it runs in the same JVM with no native process bridge."
      },
      "license": "Commercial: one-off server or OEM licence, with optional annual support and maintenance after 12 months",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "manipulating PDF documents with the JPedal PdfManipulator class, where the official Manipulate PDF files in Java page, labelled v2026.07, says JPedal provides a PDF Manipulator class for easy manipulation, editing, and creation of PDF files, documents loading a document from a File, byte array, InputStream or URL including password protected files, creating a new empty document, writing the document to a File, byte array or OutputStream, and applying manipulations that include adding text, images, shapes and annotations, adding, copying, removing, moving, swapping, reversing and reordering pages, rescaling pages and page content, cropping and rotating pages, embedding and attaching files, isolating and n-up pages, adding and removing bookmarks, setting document info, getting setting and removing metadata, setting the initial view, generating a table of contents, page and document queries, and sanitising or optimising operations that include flattening layers, redacting text, removing JavaScript, embedded files, hyperlinks, metadata, annotations, initial view and blank pages, rewriting streams, downsampling images and optimising colour palettes, with no operation among the sixty six documented headings that edits or replaces existing text, existing images or existing layout",
        "view": "viewing PDF files with the JPedal Java viewer, where the official documentation says JPedal includes a comprehensive PDF viewer that uses Swing and optionally JavaFX, that the Viewer is customizable and written in Java but can be run from other languages or the command line, that JavaFX is an optional plugin used to enable the page flow mode, and that a viewer is opened through the Viewer class with setupViewer and the OPENFILE command or by running java -jar jpedal.jar with the view option, with the product page listing single page and continuous page display, document navigation, text search, zoom, scale and rotate of pages, a customisable interface and look and feel, and image viewing capabilities, in a 100 percent Java viewer running on Java 17 and later",
        "extract": "extracting content from PDF files with the JPedal Java library, where the official extraction documentation says JPedal is a pure Java PDF library for extracting text, images and metadata, and its capability table lists word list extraction returning each word with bounding box coordinates, unstructured text as seen on the page, structured text as a logical hierarchy of headings, paragraphs, tables and lists, text search returning the page coordinates of all matches for a search string, images in JPEG, JPEG2000, JBIG2 and PNG and other embedded formats, and metadata covering page count, dimensions, author, date, XMP and DocInfo fields, with extraction of unstructured text from a specified rectangular area, document outline extraction, and a structured text extractor whose file output modes include EPUB, HTML, JSON, Markdown, XML and YAML, on Java 17 or later with no third party dependencies",
        "convert": "converting PDF documents to other formats with the JPedal Java library, where the official Convert PDF to Image documentation says JPedal converts PDF pages to raster images in pure Java, writing output directly to AVIF, BMP, GIF, HEIC, JPEG, JPEG2000, PNG, TIFF or WEBP or returning a Java BufferedImage for in-memory processing, that all conversion methods accept either a float scaling value or a width and height integer array to constrain output dimensions and that the fit to size option preserves aspect ratio, and that the BufferedImage path creates no temporary files, and where the Convert PDF to PDF/A-3 documentation says the PdfA3Converter class converts PDF files into PDF/A-3 files from Java or the command line, that only conformance level B is currently supported, and that the conversion result lists any issues and any lossy changes made to fix them, with a minimum Java version of 17 and a legacy Java 8 build from August 2024 available",
        "sign": "digitally signing PDF files with the JPedal Java library, where the official Digitally Sign PDF files documentation, shown at version 2024.11, says JPedal supports PAdES Baseline Level B signatures and requires a PKCS #12 keystore containing the private key and X.509 certificate, a valid certificate, a certificate signature algorithm of SHA256 with RSA and a private key usage that includes digitalSignature, and documents the PdfSigner signPdf static method taking the input and output file locations, the keystore password, the keystore file, a signer name, a location, a reason and a document access permission level, where P1 allows no changes otherwise the signature is invalidated, P2 allows no changes except filling in forms, instantiating page templates and signing, and P3 includes those plus annotation creation, deletion and modification, and where the page contains no wording about timestamps, timestamp authorities, signature verification or a visible signature appearance",
        "protect": "protecting PDF files with a password using the JPedal Java library, where the official Encrypt PDF Files in Java documentation, shown at version 2026.05, says PDF encryption restricts access to document content so that only recipients with the correct password can open or read a file, that JPedal provides an API to apply password protection and configure encryption settings programmatically through the PdfManipulator class, that a document is loaded and written with writeDocument taking the output document and a password which sets the password required to open the document, with byte array and OutputStream versions of the method, and that additional encryption behaviour is configured through EncryptionSettings before writing, the documented example being whether document metadata should be encrypted, while the page names no encryption algorithm, key length, owner password or permission flags",
        "merge": "merging PDF files with the JPedal Java library, where the official Merge PDF files documentation, shown at version 2025.05, says JPedal merges PDFs into a single new file containing all the pages from the provided files and leaves the original files untouched, that the PdfMerge command line tool accepts input files and options in any order while merging the files in the order they appear in the arguments with the last argument always being the output file, and that the PdfMerge Java API offers static convenience methods for merging two files or an array of files into one, with overloads taking a password for each input and overloads taking a list of merge options such as the interleave option, while the merge page itself states nothing about bookmarks or metadata, and where the manipulation index separately says the merged output preserves fonts, images and page structure from each input file"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 210,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "idrsolutions.com/jpedal, read 2026-09-22 with headless Chrome, including the feature list, the licensing statement, the comparison table and the FAQ. Vendor documentation, not independently tested; no licence was obtained and no PDF was processed.",
      "profileUrl": "https://dialegein.com/products/jpedal/"
    },
    {
      "slug": "jpgtopdf",
      "name": "jpgtopdf",
      "tagline": "A JPG to PDF converter that builds the PDF in your browser and never uploads your images.",
      "websiteUrl": "https://jpgtopdfmobile.com/",
      "summary": "jpgtopdf turns JPG, JPEG and PNG images into a single PDF inside the browser tab, so the pictures are never sent to a server. Add one photo or a batch, drag them into order, choose A4, Letter, Legal or fit-to-image, and set quality and compression for portals with a size limit. There is a camera button for photographing a document, one-tap presets for Aadhaar, PAN, passport and licence photos, and an installable version that keeps working with no connection. It converts images to PDF and does nothing else: no recognition of text, no editing of a PDF you already have, and no compression of one.",
      "bestFor": "Turning a photo or a stack of photos into a PDF on a phone, especially an identity document for a form or a KYC upload, without sending the picture to somebody else's server.",
      "watchOutFor": "The strongest limitation here is not about the file. The page loads Google Analytics and Google AdSense and sets two tracking cookies, expiring in November 2027, before a visitor is asked anything; there is no privacy policy, no terms and no cookie policy anywhere on the site, and the Privacy link scrolls to a reassurance about files rather than a policy. Your images stay on your device and your visit does not. On the work itself it is narrow by design: no text editing, no OCR, and it cannot shrink a PDF you already have.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "windows",
        "mac",
        "linux",
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 74
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-10-07",
        "source": "https://jpgtopdfmobile.com/about.html",
        "quote": "It does not read or edit the text inside your document - that is OCR, and a dedicated tool does it better.",
        "caveat": "Recorded as none from the feature list rather than from a denial. The controls are add images, reorder, page size, quality, compression and convert, and the site's own list of what it does not do names the other absences. A converter that takes pictures and produces a PDF has no content to remove, and this is a finding about scope rather than a claim that they handle redaction well."
      },
      "processesLocally": true,
      "processesLocallyNote": "Verified rather than reported, and twice. The conversion completed while every outbound request was recorded, and nothing carried the file; then it completed again with the browser's network switched off, which no upload could have contributed to. The one route by which a file leaves is the Share to WhatsApp button, which hands the finished PDF to another app at the reader's own choice.",
      "locality": {
        "verdict": "no_upload_observed",
        "label": "no upload observed",
        "testedAt": "2026-10-21T11:49:00.216Z",
        "method": "Playwright with a uniquely marked test file: a PDF for most tools, and a marked PNG for tools that only accept pictures. Chromium does not expose file bytes to the debugger, so we observe that a multipart request carried a redacted file part and record the host it went to. We cannot confirm the contents."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [],
      "jobScopes": {
        "convert": "converting images to PDF with the jpgtopdf browser tool at jpgtopdfmobile com, where the official page says it accepts JPG, JPEG and PNG inputs including mixed batches, produces one standard PDF with one image per page, lets you drag the images into the order you want so they are merged in exactly that order, offers page sizes of A4, Letter, Legal or fit to image, image quality of High, Medium or Low and file size of Larger sharpest, Balanced or Smallest file, runs the conversion in the browser on your device using the open source jsPDF library and never uploads the files, offers one tap ID document presets for Aadhaar, PAN card, passport and licence, states there is no watermark, no account and no page limit, and provides a Download PDF option and WhatsApp sharing, while the page says it does not read the text of the image and lists editing text inside the PDF as not supported"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1010,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "Vendor pages fetched 2026-10-07: the homepage, about, contact, and all sixteen pages in their own sitemap. Plus an instrumented browser run and an offline run on the same date, and the submission email from the vendor.",
      "profileUrl": "https://dialegein.com/products/jpgtopdf/"
    },
    {
      "slug": "jspdf",
      "name": "jsPDF",
      "tagline": "Client-side JavaScript library that generates PDFs in the browser or in Node.",
      "websiteUrl": "https://github.com/parallax/jsPDF",
      "summary": "jsPDF builds a PDF in the browser, in the page the user is already looking at, without a server and without uploading anything. It also runs under Node. It is the default way a web application offers \"download this as a PDF\" for something it has already drawn, and it has been for years. Text, images, vector drawing, fonts you supply yourself, and an API surface large enough that the project now ships two compatibility modes so that old plugins and new features can coexist.",
      "bestFor": "Web applications that need to produce a PDF from data already in the browser - a receipt, a ticket, a report, a filled-in form - where sending the content to a server to be rendered would be slower, more expensive, or simply not allowed. It is the client-side counterpart to the server-side generators in this index.",
      "watchOutFor": "The Unicode trap is the one that catches everybody: the fourteen fonts built into the PDF specification are limited to ASCII, so any text outside it needs a font embedded that actually contains the glyphs, and without one you get garbled characters rather than an error. A reader who tries accented European text, let alone Chinese or Arabic, and sees nonsense has met the documented limitation rather than a bug. The project is also mid-migration in a way that affects code: a merge with the yWorks fork created two API modes, and the default is the compatibility mode that keeps old plugins working but leaves out transformation matrices and patterns, so a tutorial written against the advanced API may not run as written. Finally, it is co-maintained rather than owned by one company, which is fine and normal for a library this size, but it means the original author is no longer the person setting its direction.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "yWorks",
      "platforms": [
        "web",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://github.com/parallax/jsPDF",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and this is a structural absence rather than a judgement about a feature list: jsPDF generates a PDF from nothing. It has no document to open and therefore no content to remove, and nothing in its documentation describes redaction. What it does not establish: that a PDF produced with it is safe. A client-side generator is the tool that will faithfully print whatever field it is handed, so the risk it carries is the opposite of redaction - it is a way for sensitive data to reach a document that the user then downloads and keeps."
      },
      "processesLocally": true,
      "processesLocallyNote": "It runs in the browser or in your own Node process and writes bytes to a download or a file. There is no service, no account and no network call in the library, so nothing about the document leaves the device unless the application using it sends it somewhere. That property is the reason it is chosen over the hosted HTML-to-PDF services in this index.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A JavaScript library that runs in the browser or in your own Node process and writes bytes to a download or a file, so generating a PDF needs no vendor-hosted rendering service. That is not the same as an empty network, and the difference is worth stating: its browser file-loading module performs XMLHttpRequest GET requests for resources the caller names, such as an image or a font it has been asked to embed. Loading a resource is not uploading a document, and neither proves the other. What holds is that nothing about the document leaves the device unless the application using the library sends it somewhere."
      },
      "license": "MIT",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "generating PDF documents in JavaScript with the jsPDF API, including creating a document, adding text and saving the PDF; not converting other file formats and not editing existing PDFs"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 419,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "The project repository at github.com/parallax/jsPDF, read 2026-09-22 with headless Chrome, including the README's licence section, installation instructions and API-mode explanation. Project documentation, not independently tested; the package was not installed and no PDF was generated.",
      "profileUrl": "https://dialegein.com/products/jspdf/"
    },
    {
      "slug": "leadtools-pdf-sdk",
      "name": "LEADTOOLS PDF SDK",
      "tagline": "Commercial PDF SDK for .NET, C++ and mobile targets, with OCR, forms, conversion and automatic redaction alongside the PDF API.",
      "websiteUrl": "https://www.leadtools.com/sdk/pdf",
      "summary": "LEADTOOLS is a broad commercial SDK family - imaging, recognition, document, medical and vector toolkits - and the PDF SDK is the part that covers PDF: a library API for creating, loading, viewing and saving PDFs, form fields, annotations and bookmarks, encryption/permissions and digital signatures, and conversion in both directions against PDF/A and other standards. The PDF library sits inside a larger recognition stack, but OCR is not presented as included in the PDF SDK: the PDF page says PDF controls can be combined with OCR/recognition, while the current OCR page is the separate Apryse OCR add-on to the Apryse Server SDK, running in the customer application, converting image-based PDFs to searchable PDFs/text in 80+ languages, with a separate Handwriting ICR module and Smart Data Extraction for tables/key-values. Redaction similarly depends on the separate Document Analyzer component. The deployment surface is wide: Windows, Linux, macOS, Android, iOS and web targets. Licensing is quote-only and the licensed-product/platform matrix needs confirming; current help material identifies version 23.",
      "bestFor": "Teams building a document application across several platforms at once, and particularly those who need recognition and PDF handling together - scanning, OCR, forms processing, document analysis and redaction in the same codebase. It is a heavy SDK bought by OEMs and product teams rather than a component added to an existing app, and a reader wanting to manipulate one PDF will find it is priced and sized for something else entirely.",
      "watchOutFor": "LEAD Technologies has been acquired by Apryse, so this is no longer an independent alternative to the largest SDK vendor in this index; what the acquisition means for licensing and support is not established by anything read. There is no published price: LEADTOOLS is quote-only, with per-developer/deployment licensing described only in general terms and a contact-based evaluation, not a free tier. OCR is a separate boundary: the current OCR page is an Apryse OCR add-on to the Apryse Server SDK (not the LEADTOOLS PDF SDK itself), runs on the customer's infrastructure, converts image-based PDFs to searchable PDFs/structured text in 80+ languages, and uses a separate Handwriting ICR module for handwriting and Smart Data Extraction for tables/key-values; a PDF SDK licence should not be assumed to include it. Redaction depends on the separate Document Analyzer component, and automatic detection of account/Social Security numbers needs testing on your own documents before compliance reliance. The SDK surface is broad, so the licensed-product and platform matrix needs confirming; the PDF-specific capabilities are a subset of a family that also covers medical imaging and vector graphics. Redaction is described in permanent and temporary modes; masking with annotations is not the same as content removal.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Apryse",
      "platforms": [
        "windows",
        "linux",
        "mac",
        "android",
        "ios",
        "web",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "extract",
        "view",
        "ocr",
        "sign",
        "protect",
        "merge",
        "compress"
      ],
      "jobScores": {
        "edit": 80,
        "convert": 78,
        "extract": 75,
        "view": 75,
        "ocr": 72,
        "sign": 70,
        "protect": 70,
        "merge": null,
        "compress": null
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.leadtools.com/sdk/pdf",
        "readAt": "2026-09-22",
        "quote": "Additionally, by leveraging PDF image and text redaction and the LEADTOOLS Document Analyzer SDK component, user-defined information such as account numbers and social security numbers can be removed from the PDF automatically.",
        "caveat": "Recorded as removal on the vendor's own wording - \"can be removed from the PDF automatically\" - and it is a claim about a specific toolchain rather than about the library as a whole: the sentence names both \"PDF image and text redaction\" and the separate Document Analyzer component as what makes automatic removal possible. A tutorial on the same site, \"Redact Text in PDF Using RegEx in C# and VB.NET\", corroborates that redaction is a documented API operation rather than a marketing bullet. What it does not establish: whether the removal is irreversible in the way PrizmDoc's \"no traces of the text\" describes, since the wording here is about the operation succeeding rather than about what remains in the file; and whether a licence at any given level includes the Document Analyzer component the sentence depends on. Nothing was tested, and this is one of the verdicts in the index where a test would be worth more than the documentation it currently rests on."
      },
      "processesLocally": true,
      "processesLocallyNote": "The PDF libraries run inside the application linking them, with no vendor service in that path. That is a statement about the SDK components, not every deployment: the vendor also describes hosted backends for some web components, and the OCR add-on runs inside the customer application on customer infrastructure according to its page. Architecture is not an independent traffic test.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A commercial SDK compiled into the application you build. The PDF library and the Document Analyzer component that drives automatic redaction both run in your own process on your own infrastructure; LEADTOOLS operates no processing service in that path and there is no account."
      },
      "license": "Commercial, quote-only. LEADTOOLS PDF SDK is licensed per developer and deployment; no published price, tier, evaluation limit or free tier was found. Evaluation requires contacting the vendor. The product is now owned by Apryse (LEAD Technologies was acquired), and OCR is a separate add-on/module rather than an included PDF SDK entitlement; confirm the licensed-product and platform matrix before purchase.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "in_process",
          "platforms": [
            "android"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "in_process",
          "platforms": [
            "ios"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "web",
          "name": "Web",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF annotations and markup, and related structural updates, with the LEADTOOLS PDF SDK, where the official PDF SDK page says LEADTOOLS supports reading, displaying, editing, and writing PDF annotations and markups that work with Adobe Acrobat and other compliant readers, and that users can collaborate by writing comments and drawing shapes on top of the document without making permanent changes, and where the Leadtools.Pdf help feature list, Help Version 23.0.2024.2.29, documents PDF Annotations as load and save annotations, create, edit, delete, add and reply to annotations, show and hide all annotations, and read and write annotation viewing flags across the listed annotation types, and separately lists PDF Document Text and Annotation Deletion as deletion of visible text, graphics and images with regions marked for deletion, page operations of extract, delete, insert or replace pages, bookmark create, extract, update and delete, document metadata create, extract and update, form field loading, filling and saving, document initial view settings, and PDF JavaScript extract, write, replace and delete, with no operation on those pages that edits or replaces existing page text, images or layout, and with the rich document editing of font styles, paragraph styles and text formatting documented for the separate Document Editor product at https://www.leadtools.com/sdk/document/document-editor-html5 rather than for the PDF SDK",
        "convert": "converting documents to and from PDF with the LEADTOOLS Document Converter component, where the PDF SDK page says the Document Converter API can perform conversion to and from PDF and lists converting to and from PDF for PDF/A, other document and Office formats, images, HTML, EMF and SVG, together with conversion between PDF and PDF/A, conversion between PDF standards versions, linearizing PDFs for Fast Web View, distilling Postscript into PDF and converting PDF documents into ISO compliant PDF/A-1b files, and where the Document Converter page names Adobe Acrobat PDF and PDF/A, Microsoft Office DOC DOCX XLS XLSX PPT PPTX PST EML MSG and XPS, CAD formats such as DXF DWG and DWF, TIFF JPEG PNG EXIF and HEIC among raster images, Plain Text RTF HTML MOBI and ePUB, and IBM AFP MO DCA IOCA and PTOCA, says images and documents can be converted to SVG, and documents deployment on Windows, Linux, macOS, Android, iOS and Web for .NET 6 and later, .NET Framework, .NET MAUI, Xamarin, UWP, WinForms, ASP.NET and web services, programmed in C#, VB, XAML, Java and HTML or JavaScript",
        "extract": "extracting content from PDF documents with the Leadtools.Pdf assembly in the LEADTOOLS PDF SDK, where the official help introduction says the assembly supports extraction of text, hyperlinks, annotations, form field data, digital signatures, bookmarks and metadata, and its PDF text and image extraction feature list names extraction, selection, searching and retrieving of text in PDF documents, detection of text links, indexing of text to an optimized speed, extraction of images embedded within a PDF document and saving them into many raster formats, extraction of internal links between pages, and creation extraction and update of document metadata covering title, author, subject, keywords, creation date, modification date, producer and PDF version, and where the PDF SDK page says data such as unicode text and form fields, images, fonts, annotations, shapes, hyperlinks, bookmarks, table of contents and document metadata can be parsed, updated and extracted, with PDF Portfolio schema, embedded PDF files and PDF attachments extractable, documented at help version 23.0.2024.2.29",
        "view": "viewing PDF files with the Document Viewer component of the LEADTOOLS PDF SDK, where the PDF SDK page says you load and view any PDF file using the Document Viewer API framework, and its Online Demo Applications section for the HTML5 and JavaScript Document Viewer states that the following features are demonstrated: load a document from local disk and url, use thumbnail viewer for page selection, view any bookmarks included in the document, and interactive zooming and panning, and where the Document Viewer SDK page describes an OEM ready document viewing solution for .NET in C# and VB and for HTML5 and JavaScript with viewing features including text search, memory efficient paging, inertial scrolling and vector display, able to view raster and document formats alike, with the HTML5 and JavaScript edition building zero footprint web applications without plug ins and the .NET edition targeting Windows and Xamarin desktop applications, while the same demo list also names drawing annotations and printing documents and annotations, which are not carried here because annotation authoring and printing are separate capabilities, and the PDF SDK page claims about viewing accuracy and speed are marketing rather than documented test results",
        "ocr": "running OCR through the separate Apryse OCR add-on to the Apryse Server SDK, not the LEADTOOLS PDF SDK itself: accepting scanned images or image-based PDFs, converting them to searchable PDFs and structured text with position data, supporting 80+ languages, running inside the customer application on customer infrastructure, with a separate Handwriting ICR module for handwriting and Smart Data Extraction for tables/key-value pairs. The scope records the documented OCR add-on behavior and its PDF input/searchable-output path, and explicitly keeps it separate from the PDF SDK entitlement: no claim that OCR is included in the PDF SDK, no free tier, no hosted-service claim, and no guarantee of recognition accuracy, layout fidelity or legal/compliance outcomes",
        "sign": "digitally signing PDF documents with the LEADTOOLS PDF SDK, where the PDF SDK page says the PDF SDK libraries can add digital signatures to PDF files, retrieve information from embedded signatures and verify signatures to see whether the PDF has been manipulated, and the Leadtools.Pdf help feature list says a digital signature can be added to a PDF document from a PFX file and that relevant information can be retrieved from the embedded signature, and where the same PDF SDK page says that when combined with the eSignature support integrated in the LEADTOOLS Document Viewer, developers can also add simple electronic signatures to the PDF before creating the digital verification certificate, with no algorithm, digest, timestamp, signature appearance or validation policy documented on the pages read",
        "protect": "protecting PDF documents with encryption and permissions using the LEADTOOLS PDF SDK, where the Leadtools.Pdf help feature list, at help version 23.0.2024.2.29, documents PDF encryption and decryption as password encryption and decryption with 40 and 128 bit RC4 and 256 bit AES, setting or modifying document security permissions, and removing encryption for existing PDF documents, and where the PDF SDK page says the LEADTOOLS PDF libraries fully support PDF encryption and PDF permissions to control editing, printing at high and low resolution and copying content, with neither page documenting owner versus user passwords, encryption defaults or a permission matrix",
        "merge": "merging multiple PDF files into a single PDF document with the LEADTOOLS PDF SDK, where the Leadtools.Pdf help feature list, at help version 23.0.2024.2.29, has an entry for PDF file merging and extraction of pages which includes the operation merge multiple existing PDF files into a single PDF file, and where the PDF SDK page section on comprehensive multipage processing APIs lists merge multiple PDF files into a single file among its multipage features, while neither page states an ordering rule, a page selection option, or any bookmark, metadata, annotation or form preservation behaviour for the merged output, and the same pages list split, extract, delete, insert, replace, page order manipulation and thumbnail generation as separate multipage operations",
        "compress": "reducing PDF file size with the LEADTOOLS PDF SDK, where the PDF SDK page says LEADTOOLS uses artificial intelligence to compress and optimize both image and text-searchable PDF file types, that it maximizes image-based PDF compression with LEADTOOLS advanced MRC image segmentation and compression technologies, and that the PDF libraries can optimize text-searchable PDF files by analyzing document features to make the resulting file smaller and more efficient, and where the Leadtools.Pdf help feature list at help version 23.0.2024.2.29 documents a PDF Optimizer that allows optimization of image size, image compressions, and font embedding and sub-setting, with no compression algorithm, size reduction percentage, quality setting or lossless behaviour documented on the pages read"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 293,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "https://www.leadtools.com/sdk/pdf (PDF SDK features, deployment platforms, OCR combination sentence, redaction/Document Analyzer, encryption/signatures/annotations; read 2026-10-16); https://www.leadtools.com/sdk/ocr (Apryse OCR add-on to Server SDK: image-based PDF input, searchable PDFs/structured text, 80+ languages, customer infrastructure, Handwriting ICR/Smart Data Extraction; read 2026-10-16); https://www.leadtools.com/sdk/engine/recognition (separate Recognition SDK); https://www.leadtools.com/help/sdk/dh/pdf/ (Leadtools.Pdf help version 23 features); https://www.leadtools.com/ (Apryse ownership/news); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/leadtools-pdf-sdk/"
    },
    {
      "slug": "level-access",
      "name": "Level Access",
      "tagline": "Digital accessibility platform covering documents as well as web, mobile and software.",
      "websiteUrl": "https://www.levelaccess.com/",
      "summary": "Level Access sells a platform and a services practice for digital accessibility across web, mobile, software, IoT and documents. The platform covers the same four steps an accessibility programme needs - audit and test, remediate, monitor, and report - with automated testing and AI-assisted remediation alongside manual audits and expert services. Documents are one of five surfaces it claims to cover rather than its speciality, which is the distinction that matters for a reader arriving from this index.",
      "bestFor": "Organisations that need an accessibility programme rather than a PDF tool: a compliance posture across everything they publish, with reporting for procurement and regulation, and people to call when something fails. It is the kind of purchase a compliance or legal team makes rather than a document team.",
      "watchOutFor": "It is a platform and a consultancy rather than a PDF tool, so a reader looking for something to check or fix a single document will find this is priced, sold and delivered at a different scale: there is no published price and no self-service path. The PDF-specific workflow is documented rather than absent, though: the platform checker covers PDF/UA-1 and PDF/UA-2 checks with upload, test and report steps and bulk actions, automated remediation uses OCR and AI and targets PDF/UA-1 with the vendor warning that it may not produce a fully compliant document, and manual remediation and human review are options alongside it. The Office authoring and output product is separate from remediating an existing PDF. A browser platform is not evidence of a public HTTP PDF API, so API availability is left unverified, as is the processing region.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Level Access",
      "platforms": [
        "web"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility"
      ],
      "jobScores": {
        "accessibility": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.levelaccess.com/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence: the platform audits, remediates, monitors and reports on accessibility, and nothing on the page describes removing content from a document. What it does not establish: anything about the document capability specifically, because the page read does not describe it - see the watchOutFor. This is the weakest `none` in the batch, since the evidence is a marketing overview rather than a feature list, and it is flagged as such rather than presented as a finding."
      },
      "processesLocally": false,
      "processesLocallyNote": "A hosted platform with expert services around it. Documents and pages are assessed through Level Access's software rather than on your own machine, so the material being tested leaves your environment. The pages read do not describe deployment options or residency.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A hosted accessibility platform with expert services around it. Documents and pages are assessed through Level Access's software rather than on your own machine, so permission comes first - and the pages read describe no deployment options at all."
      },
      "license": "Commercial, quoted rather than published",
      "openSource": false,
      "selfHostable": null,
      "interfaces": [
        "http"
      ],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "auditing, testing, monitoring and remediating digital accessibility with the Level Access platform, where the official Audit and Test page says it combines automated scanning and monitoring with expert manual evaluation, that automated testing surfaces barriers in live, local, pre-production or secure environments with ongoing monitoring dashboards, that manual audits are run by experts including people with disabilities with unlimited validation testing, that the assets assessed range from websites and mobile apps to software, hardware and digital documents, and that its VPAT reports document conformance with the Web Content Accessibility Guidelines, Section 508 and EU standards, where the Automated Remediation and User Personalization page says the technology continuously scans the live site, finds common issues and automatically resolves them on every page load with suggested changes that can be reviewed, edited and approved, plus an optional personalization widget for colour contrast and saturation, font size and spacing, font selection, link highlighting, pausing animation, hiding images and voice navigation, and it states that complex issues cannot be detected through automation alone, where the Governance and Reporting page describes reporting and analytics dashboards with VPAT-inspired scores aligned with WCAG criteria and a Digital Accessibility Maturity Model, where the Mobile Testing page describes native iOS and Android rules with real device, simulator, emulator and cloud testing, CI or CD pipeline embedding and no code scans, and where the LevelDocs page describes guidance inside Microsoft Word for creating accessible Word files and exporting them to accessible PDFs with in-office remediation, read on 2026-10-16 from pages whose structured page data records a last modified date of 15 October 2026"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 381,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "levelaccess.com, read 2026-09-22 with headless Chrome, including the platform description, the four capability areas and the footer. Vendor documentation, not independently tested; no document was submitted and no demo was requested.",
      "profileUrl": "https://dialegein.com/products/level-access/"
    },
    {
      "slug": "libreoffice-draw",
      "name": "LibreOffice Draw",
      "tagline": "Free office drawing app that opens PDFs for light editing and re-export.",
      "websiteUrl": "https://www.libreoffice.org/",
      "summary": "Draw is the vector-drawing component of the LibreOffice suite. LibreOffice routes PDFs into Draw and opens them as drawing objects, so you can select, move, delete or retype individual text snippets and images and then re-export. The shared PDF export dialog adds image compression and resolution changes, password and permission security, and X.509 digital signing. Because imported pages become shaped objects rather than flowing text, it patches documents rather than editing them.",
      "bestFor": "People who need occasional small PDF repairs - fixing a word, moving or removing an element, or producing a password-protected or signed PDF - with software they may already have installed.",
      "watchOutFor": "A PDF imports as separate shape text frames rather than continuous text, so long or complex documents are tedious to edit and layout can shift. There is no reflow and no reliable way to preserve the original structure. Note also that compression, protection and signing all act on export to a new file rather than editing the original in place. The suite has a command-line route: soffice converts and exports documents headlessly, and the PDF export filter accepts the options documented on the export-parameters page. That is export automation rather than an embeddable Draw SDK, and it does not make Draw a faithful PDF editor for every imported file.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": 2011,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "sign",
        "compress"
      ],
      "jobScores": {
        "edit": 70,
        "convert": 75,
        "protect": 70,
        "sign": 68,
        "compress": 60
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://help.libreoffice.org/latest/en-US/text/shared/guide/redaction.html",
        "quote": "The redacted text or contents is removed from the drawing document and replaced by the redaction block of pixels, preventing any attempt to restore or copy the original contents.",
        "caveat": "The content removal is attached to one specific export, not to the editor and not to PDF export in general. LibreOffice draws the distinction itself: marks made while reviewing are still part of the document, and the finalized output is produced by File > Export As > Black/White Redacted Export, which replaces the redacted content with pixel blocks in the exported copy. The same page says plainly that \"the source document (text, spreadsheet or presentation) is not affected by redaction and can continue to be edited\", so sharing the original format shares everything, and an ordinary black rectangle over text removes nothing. The vendor’s own help rather than a test we ran, and it stays that way: exported files have not been checked for recovery, metadata or attachments."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural rather than a vendor claim: Draw is a desktop application installed on your own computer. It opens and saves files on local storage with no vendor service involved. The Document Foundation markets the suite as free and private with no forced cloud or AI step, but the local processing is inherent to the architecture rather than a promise.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed desktop application. It opens and saves files on local storage with no vendor service involved."
      },
      "license": "MPL-2.0, dual-licensed MPL-2.0/LGPLv3+ in practice - official pages contradict each other",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": "LibreOffice Draw review - Light PDF editing",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "importing and lightly editing PDF files with LibreOffice Draw, where the Document Foundation wiki FAQ How can I open a PDF in Draw at https://wiki.documentfoundation.org/Faq/Draw/118, revision 892580 dated 4 September 2026, says in its Open and edit foreign PDF files section that LibreOffice recognizes foreign PDF files as graphical documents so PDFs are opened in Draw, that the processing of foreign PDF files in Draw may be limited, that the texts are usually no longer continuous texts as they are in Writer, that the texts and images are usually selectable as single snippets, that these snippets are defined as Shape Text frames in the Draw navigator, that these snippets can be edited, and that in most cases this only makes sense if only single words or letters are to be exchanged, and its Open and edit PDF files created in LibreOffice section adds that an exported PDF file can then be edited in Draw or better yet in Writer, with no claim of continuous text editing, layout fidelity, support for every PDF, structure preservation, annotation or form editing, or automation",
        "convert": "exporting a Draw document as PDF, where the Draw Guide 26.2 chapter on printing and export, at https://books.libreoffice.org/en/DG262/DG26210-PrintExportEmail.html, describes exporting documents as a PDF file in its Exporting PDF format section, gives Export Directly as PDF on the Standard toolbar or File Export As Export Directly as PDF as the path that exports the complete document using default PDF settings with the note that page range, image compression and other printing options are not available that way, and gives Export as PDF as the path that opens the PDF Options dialog whose pages carry the options, and where the current LibreOffice 26.8 Help page General for PDF export describes the Range choices of All, Pages typed in the box using formats such as 3-6 and 7;9;11 and Selection, the PDF Version selector, Universal Accessibility PDF/UA creating a PDF that follows PDF/UA ISO 14289 with Tagged PDF automatically enabled and not disableable when PDF/UA is selected, Hybrid PDF embedding the ODF file so the exported .pdf contains both formats and remains fully editable in LibreOffice, the Forms option creating a PDF form whose submit format can be FDF, PDF, HTML or XML, and the Structure options of Tagged PDF, Export outlines, Comments as PDF annotations, Comments in margin and Export automatically inserted blank pages, and where the PDF Export Command Line Parameters help source documents SelectPdfVersion with the values 0 for PDF 1.7 as the default choice, 1 for PDF/A-1b, 2 for PDF/A-2b, 3 for PDF/A-3b, 15 for PDF 1.5, 16 for PDF 1.6 and 17 for PDF 1.7, together with PDFUACompliance, UseTaggedPDF, ExportFormFields, FormsType, ExportBookmarks and PageRange, and shows draw_pdf_Export in its command line examples, the documented direction being a Draw document exported to PDF rather than conversion of an existing PDF to another format",
        "protect": "exporting a password protected PDF from LibreOffice Draw, where the current LibreOffice 26.8 Help page Security at https://help.libreoffice.org/latest/en-US/text/shared/01/ref_pdf_export_security.html describes the Security tab reached through File Export As Export as PDF, says it specifies the security options of the exported PDF file, warns that document permission restrictions set by password are observed only by PDF readers compliant with version 1.5 of the format so in older readers the restrictions may have no effect, describes Set passwords opening a dialog where you enter the passwords with a password needed to view the PDF and an optional password allowing the person viewing the PDF to edit and or print, lists the Printing choices of not permitted, low resolution at 150 dpi with the note that not all PDF readers honor the setting, and high resolution, lists the Changes choices of not permitted, inserting deleting and rotating pages only, filling in form fields only, commenting and filling in form fields only, and any except extracting pages, and provides Enable copying of content and Enable text access for accessibility tools, where the PDF Export Command Line Parameters help source documents the corresponding parameter names EncryptFile, DocumentOpenPassword, RestrictPermissions, PermissionPassword, Printing, Changes, EnableCopyingOfContent and EnableTextAccessForAccessibilityTools with its type and default column giving boolean false for RestrictPermissions, long 2 for Printing, long 4 for Changes, boolean true for EnableCopyingOfContent and boolean true for EnableTextAccessForAccessibilityTools, and where neither page names an encryption algorithm, key size or encryption level",
        "sign": "exporting a digitally signed PDF from LibreOffice Draw, where the current LibreOffice 26.8 Help page Digital Signatures at https://help.libreoffice.org/latest/en-US/text/shared/01/ref_pdf_export_digital_signature.html describes the Digital Signatures tab reached through File Export As Export as PDF, says the tab holds the options related to exporting to a digitally signed PDF, that the signed PDF export uses the keys and X.509 certificates already stored in the default key store location or on a smartcard, that a smartcard must already be configured for use by the key store, that Select opens a Select Certificate dialog displaying all certificates found in the selected key store and prompting for the key store password and for a smartcard PIN when protected, with the other fields accessible only after a certificate is selected, that the certificate password field takes the password protecting the private key associated with the selected certificate, usually the key store password or the smartcard PIN, that the optional Location, Contact information and Reason fields are embedded in the appropriate PDF fields, visible to anyone viewing the PDF, and may each be left blank, and that the Time Stamp Authority obtains a digitally signed RFC 3161 timestamp embedded in the signature so a viewer can verify when the document was signed, while if no TSA URL is selected, which the page gives as the default, the signature is not timestamped and uses the current time from the local computer, the operation being an export to a new signed PDF rather than signing the original document in place",
        "compress": "producing a smaller exported PDF by choosing the image compression options of the PDF export, where the current LibreOffice 26.8 Help page General at https://help.libreoffice.org/latest/en-US/text/shared/01/ref_pdf_export_general.html describes the Images section of the PDF export as setting the PDF export options for images inside the document, with Lossless compression selecting a lossless compression of images in which all pixels are preserved, JPEG compression selecting a JPEG compression level where a high quality level preserves almost all pixels and a low quality level loses some pixels and introduces artifacts but reduces file sizes, Quality entering the quality level for JPEG compression, and Change image resolution selecting to resample or down size the images to a lower number of pixels per inch with a target resolution selected for the images, where the PDF Export Command Line Parameters help source documents the corresponding parameters UseLosslessCompression described as specifying whether images are exported using a lossless compression format like PNG or compressed using JPEG with its type and default column giving boolean false, Quality described as the quality of the JPG export with a minimum inclusive value of 1 and a maximum inclusive value of 100 and a default of long 90, ReduceImageResolution described as reducing the resolution of each image to the value given by MaxImageResolution with a default of boolean false, and MaxImageResolution described as reducing all images to the given value in DPI with possible values of 75, 150, 300, 600 and 1200 and a default of long 300, and where the options apply to the exported PDF file"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 722,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 96.7
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "URL canonicalization checked 2026-10-18: https://www.libreoffice.org/discover/draw/ returns 200 and redirects to https://www.libreoffice.org/#screenshots; the dedicated Discover/Draw path is no longer a distinct page, so the official site home is recorded as websiteUrl. libreoffice.org (home, Draw page, release timeline); help.libreoffice.org (Draw overview, PDF export general, security and digital signature pages); Document Foundation wiki FAQ on Draw and PDF.",
      "profileUrl": "https://dialegein.com/products/libreoffice-draw/"
    },
    {
      "slug": "llamaparse",
      "name": "LlamaParse",
      "tagline": "Hosted parsing API that turns complex documents into Markdown, text or JSON for AI pipelines.",
      "websiteUrl": "https://www.llamaindex.ai/llamaparse",
      "summary": "LlamaParse takes a document - a dense financial table, a scanned form, a paper full of equations - and returns clean Markdown that a language model can work with. It is a hosted service reached through the REST API, the vendor SDKs for Python, TypeScript, Go and Java, the CLI or the web UI, with four tiers, fast, cost_effective, agentic and agentic_plus, trading cost, latency and accuracy, and a version pin per request for reproducible parses, and it claims support for more than ninety file formats and a hundred languages. The company that runs it also maintains the LlamaIndex framework, so it is the parsing step of a wider set of tools for building applications on documents.",
      "bestFor": "Teams building retrieval or extraction pipelines who want document parsing as an API call rather than a model to run, and who need hard layouts handled - tables, multi-column layouts, charts, handwriting, checkboxes and images are the ones the vendor names. The parsing modes are the practical selling point: the same document can be parsed cheaply or carefully depending on what it is for.",
      "watchOutFor": "It is a hosted service, so documents are uploaded, and for anything confidential that is the first thing to settle - the vendor mentions local cloud deployment as an enterprise option, which implies the default is theirs. Pricing is published: a free plan with 10,000 credits that is not a trial, Starter at $50 a month and Pro at $500 a month, with custom Enterprise terms. Credits are the unit rather than pages, and what an action costs depends on the operation and the mode, so a credit count is not a page count. The Enterprise option is documented as private VPC or hybrid cloud, which is not the same as an offline downloadable edition. The accuracy claims are the vendor's own, including a benchmark the vendor publishes, which is worth knowing before treating a comparison as independent. The naming now has a documented structure rather than moving: the documentation says Parse is the document parsing product on LlamaParse, the platform from LlamaIndex, and the platform quickstart lists Parse, Extract, Classify, Split and Index as separate products reached through the same API key, so a page about Extract is about a different product from the parsing covered here and a reader should check which one a page is describing.",
      "pricingModel": "freemium",
      "priceFromGbp": 37.42,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "LlamaIndex",
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr"
      ],
      "jobScores": {
        "extract": 85,
        "ocr": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.llamaindex.ai/llamaparse",
        "readAt": "2026-09-22",
        "quote": "Parse transforms messy documents into AI-ready data at scale",
        "caveat": "Recorded as `none` on absence: the product reads documents and emits structured text, and nothing on the page describes removing content from a file or producing a modified document. What it does not establish: anything about the safety of the output, and there is a specific reason to say so here rather than in passing. A parsing service whose purpose is to extract everything faithfully is the opposite of a redaction tool, and its output - clean Markdown containing the document's contents - is precisely the artefact that must not be published when a document was supposed to be redacted."
      },
      "processesLocally": false,
      "processesLocallyNote": "A hosted API: documents are uploaded to LlamaIndex's service and parsed there. The vendor lists \"local cloud deployment\" among its enterprise features, which indicates a self-hosted option exists for larger customers, but the default and documented path is their service.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A hosted API. Documents are uploaded to LlamaIndex's service and parsed there. The vendor lists a local cloud deployment as an enterprise option, which would make a local instance possible, but the default documented path is theirs - so permission first."
      },
      "license": "Commercial, usage-based; free entry point via sign-up",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "http",
        "cli",
        "browser"
      ],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "Hosted service",
          "processing": "vendor_cloud",
          "platforms": [
            "web",
            "api"
          ],
          "interfaces": [
            "http",
            "cli",
            "browser"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting content from documents with the Parse product on the LlamaParse platform, where the current official documentation at https://developers.llamaindex.ai/llamaparse/parse/ describes Parse as the document parsing product on LlamaParse, the platform from LlamaIndex, built for LLM pipelines, reading tables, charts, scanned pages and 130+ file types and returning clean markdown, text or JSON, documents four tiers fast, cost_effective, agentic and agentic_plus with a version pin per request for reproducible parses, accepts a file_id or source_url with a required tier and version plus optional output_options, crop_box, page_ranges with max_pages and target_pages, user_metadata and webhook_configurations, returns per page and full markdown and text, a typed items tree of headings, text, tables, images and headers each with a bounding box, metadata, page images or screenshots and download URLs through the expand parameter at https://developers.llamaindex.ai/llamaparse/parse/guides/retrieving-results/, recovers tables with cell structure as markdown or HTML plus typed table items with rows, csv, html and md representations and an optional XLSX export, returns layout and bounding boxes including granular_bboxes per word, line and cell, runs OCR automatically on pages with no text layer including scanned PDFs, phone photos and jpg, png, tiff, webp and heic images with a languages array of more than eighty language codes and camera photo correction, and parses selected pages only through page ranges, with the separate Extract, Classify, Split and Index products on the same platform not claimed here and the service being hosted rather than self-hosted",
        "ocr": "running OCR automatically over pages with no text layer through the hosted LlamaParse Parse product, including scanned PDFs and image-only documents and images embedded in documents, returning extracted per-page text and markdown; not local or offline processing"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 45,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "llamaindex.ai/llamaparse, read 2026-09-22 with headless Chrome, including the feature list, advertised scale figures, developer-tooling list and footer. Vendor documentation, not independently tested; no document was submitted and no API key was obtained.",
      "profileUrl": "https://dialegein.com/products/llamaparse/"
    },
    {
      "slug": "logrunlab-pdf-compare",
      "name": "PDF Compare",
      "tagline": "Compare the text of two PDFs in the browser and see exactly what changed.",
      "websiteUrl": "https://logrunlab.com/en/pdf-compare",
      "summary": "PDF Compare takes two PDFs and reports what changed between their text: Added, Removed and Changed, with page references. It reads both files in the browser and normalises their text layers before comparing, so the output is a mechanical list of differences rather than a visual overlay. It works on text based PDFs only, up to 20 MB and 200 pages each, and it says so plainly when a file does not qualify. It is the first record filed under the compare job, which was added to this index on 2026-09-29.",
      "bestFor": "Anyone checking a revised document against the version it replaced, where both are text based PDFs: a contract, a specification, a policy, a set of proofs. It is at its best on long documents where reading both and finding the changes by eye is the slow way.",
      "watchOutFor": "It compares text, not pages, and those are different jobs. A scanned document has no text layer and will be refused, and a mixed PDF only has its text bearing pages compared, so a change that exists only as an image or a moved signature is invisible to it. It is not a visual or pixel level comparison and it does not run OCR. Password protected and encrypted PDFs are not supported. A comparison also only tells you what the text says changed: rewording a clause so that it means something different but reads similarly is reported as Changed without comment, which is the human half of the job. Text comparison is distinct from visual comparison and from OCR. The recorded network test is stronger evidence than a vendor promise, but its original trace, fixtures, browser and build and date need preserving before its exact request counts are carried forward. It is not the only product here with a comparison feature: editor records can carry comparison capability without a Compare category, so this is one place to compare documents rather than the exclusive one.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Logrun Lab",
      "platforms": [
        "web"
      ],
      "launchedYear": null,
      "primaryJob": "compare",
      "jobs": [
        "compare"
      ],
      "jobScores": {
        "compare": 82
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://logrunlab.com/en/pdf-compare",
        "readAt": "2026-09-29",
        "quote": null,
        "caveat": "There is no redaction feature of any kind. This is a comparison tool: it reports differences between two documents and does not mark or alter either. Recorded as none rather than unverified because the absence is stated by the vendor and visible in the tool, which offers only Compare and Reset."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is a browser tool: the official copy supports text comparison in the browser with page references and a 20 MB and 200 page limit per PDF. What the record can say about the network is what a recorded test observed, not that nothing left the device, because the absence of marker text alone is not proof against encoded or transformed transmission, and this audit did not reproduce the test.",
      "locality": {
        "verdict": "no_upload_observed",
        "label": "no upload observed",
        "testedAt": "2026-10-21T11:49:00.216Z",
        "method": "Playwright with a uniquely marked test file: a PDF for most tools, and a marked PNG for tools that only accept pictures. Chromium does not expose file bytes to the debugger, so we observe that a multipart request carried a redacted file part and record the host it went to. We cannot confirm the contents."
      },
      "license": null,
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "compare": "comparing the text of two PDF files in a browser with PDF Compare, where the current official page at https://logrunlab.com/en/pdf-compare says PDF Compare extracts and normalizes the text of two PDFs in the browser and shows mechanical Added, Removed and Changed results with page references, defines Changed as a paired text block existing on both sides with differing wording, Added as text appearing on the New side without a paired block on the Original side, and Removed as text appearing on the Original side without a paired block on the New side, explains that Original and New are positions chosen for the comparison so that Added and Removed are relative to them and that the tool does not determine which file is historically newer or who made an edit, warns that page references do not guarantee visual alignment or complete layout comparison and that the labels do not indicate importance risk or authorship, says that no meaningful text changes found does not prove the complete PDF files are identical and that the comparison does not cover image-only or scanned content without a usable text layer, images and graphics, visual formatting or layout only changes, metadata or other non-text structure, requires an existing usable text layer and does not run OCR while a mixed PDF can be accepted if some pages contain extractable text and image-only pages are not compared, normalizes supported extraction noise such as whitespace and some line wrap or page break effects, limits each PDF to 20 MB and 200 pages, states that password protected or encrypted PDFs are not supported in the current version, and says that PDF files, extracted text and comparison results stay in the current browser session and are not stored by Logrun Lab as document content, with TXT and MD named as formats that may be added in future versions and the linked contract version comparison workflow at https://logrunlab.com/en/compare-contract-versions adding that Logrun Lab compares extracted text and does not read text in images or scans, compare page appearance or interpret legal meaning"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 191,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 5,
      "claimsVerifiedByUs": 5,
      "reviewedBy": null,
      "source": "logrunlab.com/en/pdf-compare, submitted for review by the operator on 2026-09-29 and read the same day as a raw HTTP response of 29,814 bytes. Plus five tests run against the live tool on 2026-09-29: a two file comparison carrying markers, and four refusal cases built from purpose made files.",
      "profileUrl": "https://dialegein.com/products/logrunlab-pdf-compare/"
    },
    {
      "slug": "marker",
      "name": "Marker",
      "tagline": "PDF-to-Markdown converter built around a vision-language model, published by Datalab as an open-source tool with a hosted API and managed platform.",
      "websiteUrl": "https://github.com/datalab-to/marker",
      "summary": "Marker converts PDF, image, PPTX, DOCX, XLSX, HTML and EPUB files into Markdown, HTML, JSON or RAG-ready chunks, formatting tables, forms, equations, inline maths, links, references and code blocks, and stripping running headers and footers. It reads the embedded PDF text where that text is good and falls back to OCR through the surya vision-language model on garbled or scanned pages, in either a balanced mode or a fast mode, defaulting to balanced on a GPU and to fast on CPU or Apple MPS. Datalab documents its platform API as powered by marker and surya, and separately advertises a managed platform running the newer Chandra model, so the open-source tool and the hosted products overlap without being the same model everywhere, and the open-source package and the hosted services are licensed differently.",
      "bestFor": "People converting complex or scanned documents into structured Markdown who want the choice of running the model locally or sending pages to a service.",
      "watchOutFor": "The licensing is a trap for companies: the code is Apache-2.0, but the model weights are under a modified AI Pubs Open RAIL-M licence that forbids any use by an entity with more than USD 5,000,000 in prior-year gross revenue or USD 5,000,000 in raised funding, and also forbids any use by an entity that offers a product competing with Datalab - so a commercial deployment needs a paid on-prem or API licence that the price list does not state. Separately, the project's own README concedes that 'very complex layouts, with nested tables and forms, may not work' and that forms 'may not be rendered well', which is precisely where its headline accuracy claim is hardest to check.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 4,
        "currency": "USD",
        "per": "1000_pages",
        "asShown": "\"Convert - fast / balanced\" is 4 in the table headed RATE (PER 1,000 PAGES); the highest-fidelity \"Convert - accurate\" tier is 10",
        "source": "https://www.datalab.to/pricing",
        "readAt": "2026-09-22"
      },
      "hasFreeTier": true,
      "owner": "Endless Labs, Inc. dba Datalab",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": 2023,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "convert",
        "ocr"
      ],
      "jobScores": {
        "extract": 88,
        "convert": 66,
        "ocr": 78
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/datalab-to/marker",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Two distinct products share the name. The open-source package runs entirely on your own machine - pip install marker-pdf, a CLI and a Python API, no account, no upload - but it is not offline out of the box: model weights download on first run, the GPU path spawns a vLLM server inside Docker with the NVIDIA Container Toolkit, the CPU and Apple Silicon path needs the llama.cpp server binary, and the optional --use_llm hybrid mode sends pages, and possibly images, to Google Gemini by default. The Datalab hosted API at www.datalab.to is a separate hosted product that does upload, and its playground explicitly has no opt-out from having submissions used for training.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Two products share the name, and four distinct paths sit inside the first. The open-source package runs on your own machine, but it is not offline out of the box: model weights download on first use, and the GPU path spawns a vLLM inference server inside Docker with the CPU and Apple Silicon path needing the llama.cpp server binary. The optional --use_llm workflow is the one whose destination varies, and it depends on the service chosen: Gemini is the documented default, and the README also lists a local Ollama and configurable OpenAI-compatible endpoints, so it does not follow that every invocation uploads to somebody else's model. The Datalab hosted API is the second product and is a service in the ordinary sense."
      },
      "license": "Apache-2.0 code, modified AI Pubs Open RAIL-M model weights",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli",
        "http"
      ],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "Marker review - PDF-to-Markdown converter",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting structured content from documents with the open-source Marker tool, where the current README at https://github.com/datalab-to/marker says Marker converts documents to markdown, JSON, chunks and HTML, converts PDF, image, PPTX, DOCX, XLSX, HTML and EPUB files in all languages, formats tables, forms, equations, inline math, links, references and code blocks, extracts and saves images, removes headers, footers and other artifacts, works on GPU, CPU or MPS, and offers optional LLM assistance; the same README documents marker, marker_single and marker_gui entry points, the balanced and fast modes which default by device, a disable_ocr option that uses the pure text layer and skips equations and scanned pages, a page_range option, and converter classes for whole-PDF conversion or table-only extraction; surya is a declared dependency (surya-ocr at version 0.22.x in pyproject) and the README says Surya auto-spawns its inference server, using vllm on NVIDIA GPUs or the llama.cpp llama-server on CPU and Apple Silicon; hybrid mode is documented as an optional LLM call that merges tables across pages, handles inline math, formats tables and extracts values from forms; and the README's limitations section says very complex layouts with nested tables and forms may not work and forms may not be rendered well, with the LLM and force-OCR flags noted as mitigating those cases, while Datalab's managed platform is a separate hosted product running Chandra rather than this open-source tool",
        "convert": "converting document formats with the open-source Marker tool, where the README at https://github.com/datalab-to/marker says Marker converts documents to markdown, JSON, chunks and HTML, and its marker and marker_single commands take an output format of markdown, json, html or chunks together with an output directory, a page range and an option to paginate the output; it converts PDF, image, PPTX, DOCX, XLSX, HTML and EPUB files in all languages; its converter classes are PdfConverter for the whole document and TableConverter for table-only extraction and conversion; it extracts and saves images alongside the converted output; and it offers marker, marker_single and marker_gui entry points plus a Modal deployment example for exposing marker through a web endpoint, with the documented outputs being extracted representations of the source rather than a converted PDF or Office document, so no PDF-to-PDF or Office round-trip conversion is claimed",
        "ocr": "running OCR with the open-source Marker tool, where the README at https://github.com/datalab-to/marker says Marker runs layout, OCR and table recognition through a single surya vision-language model served by a local inference server that is spawned automatically on first use with vLLM in Docker on NVIDIA GPUs and llama.cpp elsewhere, can be pointed at an already running server through SURYA_INFERENCE_URL, and uses that model for OCR in both balanced and fast modes and for layout in balanced mode; balanced mode re-OCRs the whole page whenever any of its embedded text is bad, while fast mode keeps model use minimal with equations, surgical block-level repair of garbled or empty blocks, and a single full-page pass only for pages that are scanned or mostly bad, so a clean digital document without equations never starts the server; tables are reconstructed from the PDF text layer in both modes, scanned tables come from the full-page OCR, and low-confidence reconstructions fall back to the model; force_ocr forces OCR on all pages, strip_existing_ocr keeps the digital text and strips out existing OCR text, and disable_ocr turns off all model calls including equations for pure text-layer extraction; the README says OCR runs through the surya VLM which is multilingual and points to the surya project at https://github.com/datalab-to/surya, whose own README describes a 650M parameter OCR model, also Apache-2.0 code with model weights under the model licence, claiming an internal benchmark of 91 languages and shipped separately from Marker as the surya-ocr package (0.22.1 on PyPI, and the marker pyproject pins surya-ocr 0.22.x); OCR-only extraction is available through the OCRConverter at marker.converters.ocr via Python or marker_single --converter_cls marker.converters.ocr.OCRConverter, and keep_chars keeps individual characters and bounding boxes for digital PDFs while pages that go through the model return block-level HTML without character boxes; the README limitations say very complex layouts with nested tables and forms may not work and forms may not be rendered well, with use_llm and force_ocr noted as mitigating those, and no conventional third-party OCR engine, hosted OCR service or accuracy guarantee is claimed here"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 381,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "github.com/datalab-to/marker (README, LICENSE, MODEL_LICENSE, pyproject.toml, repository file listing); api.github.com repository metadata; pypi.org/pypi/marker-pdf JSON API for release dates and version; datalab.to/pricing; datalab.to/terms/privacy; datalab.to/terms/end-user-terms; datalab.to/terms/terms-of-use; documentation.datalab.to (API overview, API limits and rate limiting, on-prem overview).",
      "profileUrl": "https://dialegein.com/products/marker/"
    },
    {
      "slug": "master-pdf-editor",
      "name": "Master PDF Editor",
      "tagline": "Desktop PDF editor for editing, converting and signing, with vendor-documented redaction and a demo watermark.",
      "websiteUrl": "https://code-industry.net/master-pdf-editor/",
      "summary": "A desktop PDF editor from Code Industry that runs on Windows, macOS and Linux. It edits existing text, images and vector objects, creates and fills interactive forms, runs OCR on scanned pages, and handles watermarks, headers and footers, Bates numbering, bookmarks, digital signatures and password or certificate encryption. It can also merge, split, rotate and crop pages, convert to PDF/A, and export pages to Word, Excel, text, CSV and images.",
      "bestFor": "Linux and macOS users who want a full Acrobat-style editor under a perpetual licence rather than a subscription.",
      "watchOutFor": "The free download is a demo build whose only stated limitation is a watermark on output, so it is not a clean free tier, and refunds are only given for unresolvable technical faults. Redaction is vendor-documented as permanent removal after Apply Redactions, and the marking is distinct from applying and saving; the removal is documented rather than independently tested, so a canary test is still the thing to run before relying on it. Version scope matters when citing historical documentation, because the old 3.7 manual cannot establish unrestricted free use for the current release. Batch support is identified per operation rather than assumed across the feature set.",
      "pricingModel": "paid",
      "priceFromGbp": 59.3,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Code Industry Ltd",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "view",
        "merge",
        "protect",
        "convert",
        "sign",
        "ocr",
        "compress"
      ],
      "jobScores": {
        "edit": 85,
        "view": 85,
        "merge": 80,
        "protect": 80,
        "convert": 78,
        "sign": 75,
        "ocr": 70,
        "compress": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://code-industry.net/masterpdfeditor-help/redacting-pdf-document/",
        "readAt": "2026-10-16",
        "quote": "Redacting a PDF document permanently removes the redacted data from the document, so make sure to save the redacted PDF under a different file name than the original document, otherwise the redacted data will be lost.",
        "caveat": "DOCUMENTED AS REMOVAL, NOT INDEPENDENTLY TESTED. The manual states that redacting permanently removes the redacted data and documents a mark-then-apply workflow with Document Redaction and a Mark for Redaction tool, plus a warning to save under a different name. It does not describe the internal mechanism or whether every producer structure is cleaned, and no canary test was run here, so the verdict rests on the vendor's own wording."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an installed desktop application, so documents are opened and edited on the machine. That is a statement about the architecture rather than about network behaviour: the activation guide documents online activation options and update checks, so the record does not claim that no server is involved or that the only network step is activation, and the network behaviour has not been independently tested.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Master PDF Editor on the desktop. On their servers: Activation and update checks. A single answer for the whole product would be wrong for one of them."
      },
      "license": "proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Master PDF Editor on the desktop",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Activation and update checks",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF documents in the Master PDF Editor desktop application, where the manual says an existing text object is edited by selecting it with the Edit Document or Edit Text tool and double-clicking it, that text objects can be inserted with Insert Text and formatted text with Insert Formatted Text, that font name, size, colour and style are changed in the Object Inspector and that formatted text supports formatting, styles and alignment; it documents selecting and modifying an image object, inserting images in SVG TIFF JPEG BMP PNG and PPM formats, moving and resizing images, and states that a PDF document consists of PDF objects and that editing a document means editing properties of those objects, with selection tools for documents, text, forms and images and an Edit Forms mode, and it documents creating, editing and filling interactive form fields with form settings in the Object Inspector; the same manual states the limits, that changing attributes for only one word requires splitting the text object into several, and that editing can fail with the message This font doesn't contain these characters. Try choosing another font, because only used font characters are embedded, and no text reflow, layout preservation or replacement of text in image-only or scanned pages is claimed, with OCR a separate job",
        "view": "opening and viewing PDF documents in the Master PDF Editor desktop application, with opened files shown as tabs in the view area; not a standalone reader and not web or mobile",
        "merge": "merging and splitting PDF files in Master PDF Editor, where the manual says the Merge PDF Files function merges and systematizes multiple separate PDF documents into a single file through Document Insert Pages (Ctrl+Shift+I), adding files or folders of PDF or image files to a list, rearranging them with the Up and Down buttons in the order their contents must follow and specifying a page range to import from each document; the same page documents the Extract Pages options that save selected pages as a single PDF, by page range or as multiple files, with an option to export bookmarks pointing at those pages, an option to delete pages after extracting and a note that page extraction may be restricted by the document owner, and it documents splitting a document by number of pages or file size, with a separate page documenting creation of a new PDF from PDF, SVG, SVGZ, TIF, TIFF, PNG, JPG, JPEG, BMP and PPM files, separately or as whole folders, sorted by add order, with page selection from multi-page files and a specified insertion position, and no claim that signatures, forms or annotations are preserved across documents",
        "protect": "securing PDF documents in Master PDF Editor, where the manual lists four PDF security instruments, encryption with a password, encryption with a certificate, signing with a certificate and redacting a PDF document; it says a password is set through File Properties and the Security tab, that a document uses no encryption by default, that there are two password types, a password to open the document and a permission password that allows only the selected actions and prohibits all others, for example allowing viewing and commenting but not printing or editing, and that deselecting actions disables them; it documents encrypting a document for a list of valid recipients whose certificates are imported into the local certificate storage and requires a certificate that includes a public key; redaction is documented separately as permanent removal of the redacted data, and signing is the separate sign job, with no encryption algorithm, key length, owner versus user password detail beyond the two password types, or certification authority claim made here",
        "convert": "converting PDF documents to other formats and building PDFs from other files with Master PDF Editor, where the manual documents Export Pages to Images with BMP, JPEG, PNG and TIFF output, a page range, per-page file naming for multipage export, a JPEG quality option and TIFF compression methods, Export Pages to Word with a page range and a fill vertical space option, export to TXT, CSV and Excel on their own pages, and Convert to PDF/A with selectable levels PDF/A-1a, 1b, 2a, 2b, 2u, 3a, 3b and 3u with the manual describing structure and visual integrity differences between them; it documents creating a new PDF from PDF, SVG, SVGZ, TIF, TIFF, PNG, JPG, JPEG, BMP and PPM files with ordering, page selection and insertion position, and the product page documents the Windows-only virtual PDF printer for printing from other applications; the direction is one-way export or import, and no round-trip Office editing, editing of the exported Word or Excel file, or conversion fidelity guarantee is claimed",
        "sign": "signing PDF documents with a certificate in Master PDF Editor, where the manual documents checking digital signatures, creating new ones and signing documents with a digital certificate, explains that a digital certificate verifies identity and is issued by a Certificate Authority and that a signing certificate is required; it documents adding a hidden signature field through Forms Invisible signature with a certificate selected in Sign As, which is visible in the Signature tab but not on the page, and notes that Master PDF Editor does not provide any digital certificates so one must be acquired from a certificate authority or created self-signed; it documents batch signing of several documents from a list built with Add Files, Add Folder or Add Open Files; and it explicitly says that inserting initials is not to be confused with a digital signature and that, unlike a digital signature, initials do not guarantee authenticity or prevent unauthorized changes, so drawn, typed or initial-based marks are not claimed as digital signatures here",
        "ocr": "running optical character recognition in Master PDF Editor, where the manual says OCR converts images containing text to editable PDF text which supports search, copying, editing and other PDF text functionality, that recognition can only be performed if it is not locked in the document permissions, that it starts from Document OCR, that the dialog sets a page range and one or more languages, that additional languages are installed as tesseract traineddata files into the directory given in the OCR settings, that the language list begins empty and languages are added with Install languages, and that selecting the minimal number of languages is recommended; the engine is named as tesseract in the manual, and no language count, accuracy figure or hosted OCR claim is made",
        "compress": "reducing the size of PDF documents in Master PDF Editor, where the manual says optimization removes unnecessary and unused elements and compresses images and forms to reduce the overall size, through File Save Optimized As (Ctrl+Alt+S), with options including removing unused elements, flattening form fields and merging layers, and warns that optimizing with some compression methods may damage images and lead to poor printing quality; it documents Document Optimize Scanned Pages with a page range and adaptive image compression choosing JPEG or ZIP for colour and grayscale images and ZIP or CCITT Group methods for black and white images, with advanced filters, and no size reduction percentage or lossless guarantee is claimed"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 832,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "code-industry.net (product page, redaction help page, overview, purchase and privacy pages). Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/master-pdf-editor/"
    },
    {
      "slug": "microsoft-edge-pdf",
      "name": "Microsoft Edge PDF reader",
      "tagline": "PDF reader built into Edge, with inking, highlighting, text notes and read aloud.",
      "websiteUrl": "https://learn.microsoft.com/en-ca/deployedge/microsoft-edge-pdf",
      "summary": "Edge opens local, web-hosted and embedded PDFs in the browser, with zoom, rotate, fit-to-page, search, page views, a table-of-contents pane and read aloud. You can fill basic form fields, highlight text, attach text notes to a selection and draw ink with a mouse or stylus. Edge can display and validate certificate-based digital signatures and open Purview-protected PDFs when signed in with sufficient permissions. Microsoft has been moving the built-in reader to a new engine powered by Adobe Acrobat since Edge 141, and from Edge 156 the policy that selects the older reader is deprecated.",
      "bestFor": "People already working in Edge who need to read, fill, sign by hand and mark up PDFs without leaving the browser, including work users who must open protected files.",
      "watchOutFor": "No redaction, no compression, no format conversion, and it cannot create digital signatures - only view and validate them. JavaScript forms are not supported in the documented feature list, and XML Forms Architecture (XFA) PDFs are not supported natively: an administrator can allow them to open in IE mode through the ViewXFAPDFInIEModeAllowedOrigins or ViewXFAPDFInIEModeAllowedFileHash policies. The reader is also mid-transition. The Adobe Acrobat-powered reader is the default from Edge 141, the NewPDFReaderEnabled policy that selects the older reader is deprecated from Edge 156 and planned to become obsolete from Edge 162, and the newer engine adds its own features, so which documented behaviours apply depends on the engine in use and on policy.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Microsoft",
      "platforms": [
        "web",
        "windows",
        "mac"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit",
        "sign"
      ],
      "jobScores": {
        "view": 86,
        "edit": 70,
        "sign": 62
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://learn.microsoft.com/en-ca/deployedge/microsoft-edge-pdf",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: a local Chromium-based browser that renders and opens PDFs on the device, with process isolation for PDFs per Microsoft's own documentation. Caveats: online and embedded PDFs are fetched from their host, and viewing Purview-protected files requires a signed-in identity and licence, at which point content handling depends on Microsoft's cloud.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Edge on Windows, Edge on macOS. On their servers: Viewing Purview-protected files. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary",
      "openSource": false,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "Microsoft Edge PDF reader review - Browser PDF tools",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Edge on Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "Edge on macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "purview",
          "name": "Viewing Purview-protected files",
          "processing": "vendor_cloud",
          "platforms": [],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing PDF documents in the Microsoft Edge built-in PDF reader, where Microsoft Learn documents a reader that opens local pdf files, online pdf files and pdf files embedded in web pages and annotates them with ink and highlighting, scoped to the Windows and macOS desktop platforms, with a pin-able toolbar and basic reading and navigation features including zoom, rotate, fit to page or width, jump to page and search, plus a table of contents pane, page view, caret mode browsing, inking and ink customisation, highlight, text notes and read aloud; the same page documents basic form filling with JavaScript forms not supported, viewing Microsoft Purview Information Protection protected files within the same business tenant on Windows and macOS and across business tenants, viewing Information Rights Management protected files, keyboard accessibility, high contrast mode and screen reader support, and viewing and validating certificate-based digital signatures while saying Microsoft is actively working to address more signature scenarios; the documented constraints are that XML Forms Architecture (XFA) is a legacy format not supported in Microsoft Edge, with an enterprise option to view XFA PDFs in IE mode through the ViewXFAPDFInIEModeAllowedOrigins or ViewXFAPDFInIEModeAllowedFileHash policies; the reader is being replaced by a new built-in PDF reader powered by Adobe Acrobat, which Microsoft's policy documentation describes as the reader that the NewPDFReaderEnabled policy launches, and the same documentation says that starting in Microsoft Edge version 156 that policy is deprecated because the built-in PDF reader experience has transitioned to the newer version, with the policy planned to become obsolete starting version 162, and the newer reader's documented additions include higher coverage of digital signature verification, MIP sensitivity label viewing, Undo and Redo for PDF annotations on Windows, faster Read Aloud, Copilot Summarize and Explain actions, and XFA viewing through the IE mode policies; the scope is the built-in viewer rather than a separate application, does not claim editing or creating PDFs, and does not claim the legacy reader's feature set for the new engine or the reverse",
        "edit": "forms, highlights, notes and ink, not existing text",
        "sign": "view and check a signature, not create one"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 142,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "learn.microsoft.com Edge PDF documentation (page last updated July 2024). Vendor documentation, not independently verified.",
      "profileUrl": "https://dialegein.com/products/microsoft-edge-pdf/"
    },
    {
      "slug": "microsoft-lens",
      "name": "Microsoft Lens",
      "tagline": "Retired Microsoft mobile scanner, replaced by the scanner in OneDrive.",
      "websiteUrl": "https://support.microsoft.com/en-us/lens/microsoft-lens-for-android",
      "summary": "Microsoft Lens was a free phone app for capturing documents, whiteboards, receipts, business cards and handwritten notes, straightening and filtering the images, and exporting them as PDF, Word or PowerPoint files or into OneNote and OneDrive. On Android its Actions modes extracted text, tables, contacts and QR codes and could read text aloud, while the iOS page lists only the capture modes and has no Actions mode. Selecting the Word export applied OCR, creating a Word file in the user's OneDrive that extracted legible text. The app has been retired: new scans could not be created after 9 March 2026, and it was removed from the app stores and stopped being supported on 9 February 2026.",
      "bestFor": "Nobody for new use - the app can no longer be installed and new scans cannot be created. It is listed for reference and for the record of what replaced it.",
      "watchOutFor": "It is discontinued and unsupported. Microsoft's own replacement, OneDrive scanning, explicitly does not save scans locally on your device, so anyone who used Lens for local scanning loses that.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Microsoft",
      "platforms": [
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "convert"
      ],
      "jobScores": {
        "ocr": 70,
        "convert": 65
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support.microsoft.com/en-us/lens/microsoft-lens-for-android",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": null,
      "processesLocallyNote": "Capture, editing and Gallery or local PDF saves happened on the device, but saving to OneDrive, OneNote, Word or PowerPoint required a Microsoft account and placed the file in Microsoft's cloud. The support page never said where text extraction ran.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Retired in 2026 and removed from the app stores, so there is nothing left to probe."
      },
      "license": "Proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "running optical character recognition with Microsoft Lens, where the retired Android and iOS support pages document that if OCR is to be applied to a captured image the Word export option is selected, and Microsoft Lens then creates a Word file in the user's OneDrive account which automatically extracts all legible text found in the captured image; the Android page also documents an Actions mode with a Text sub-mode that extracts text from an image for copying or sharing after selecting the preferred text language from a menu, plus Table, Read using Immersive Reader, Contact and QR Code sub-modes, while the iOS page lists only the Whiteboard, Document, Business Card and Photo capture modes and has no Actions mode, and both pages say GCC accounts do not support Image to Text, Image to Table, Image to Word, Image to PPT, Business Card or Upload to OneNote; the pages do not state where recognition runs, so on-device versus cloud processing is not claimed, and no accuracy figures or supported-language counts are stated beyond the business-card note that it works best with English, German, Spanish or Simplified Chinese; the app was retired from iOS and Android on 9 January 2026, stopped being supported after 9 February 2026, and could not create new scans after 9 March 2026",
        "convert": "exporting and converting captures with Microsoft Lens, where the retired Android and iOS support pages document that captures made in Whiteboard, Document or Photo mode can be saved to the Gallery or Photo Library, saved as PDF files, or saved to Microsoft OneNote, OneDrive, Word or PowerPoint, and on iOS also sent through Microsoft Outlook or the Mail app; the Word export is the option that applies OCR and creates a Word file in OneDrive, and the iOS page says captured images saved as Word, PowerPoint or PDF files will be in the OneDrive Documents folder, that PDF files can also be saved locally on an iPhone or iPad, and that the resulting Word and PowerPoint documents are real Microsoft Office documents, with Word recognising handwritten, typed and printed text and the general layout of the capture; Business Card mode saves to OneNote as a vCard, and on Android a previously Lens-created PDF can be edited by adding images, editing existing images or reordering them; it is not a general PDF converter, does not convert arbitrary PDFs into Office formats, and the amount of text recognition in a Word or PowerPoint export is not documented as a guarantee; the app was retired from iOS and Android on 9 January 2026, stopped being supported after 9 February 2026, and could not create new scans after 9 March 2026"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 40,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "support.microsoft.com lens retirement page and Lens for Android page; microsoft.com/lens (now 404); Microsoft Store listing; Microsoft privacy statement.",
      "profileUrl": "https://dialegein.com/products/microsoft-lens/"
    },
    {
      "slug": "mindee",
      "name": "Mindee",
      "tagline": "Cloud document AI API (V2) that turns uploaded documents into structured JSON, with a separate raw-text OCR model.",
      "websiteUrl": "https://www.mindee.com/",
      "summary": "Mindee is a hosted document-AI REST API, currently documented as V2 on app.mindee.com, with older platform.mindee.com/V1 material still present in the documentation but not the current product line. It turns uploaded documents into structured JSON using ready-made extraction templates or custom extraction models, with field-level confidence scores, polygon coordinates and optional full-page raw text. Utility models cover splitting multi-page files, cropping multiple documents from one page, classification and a dedicated Raw Text OCR model. The API is asynchronous and RESTful, requires an API key and account, and supports polling or webhooks with official SDKs. It is not a local or self-hosted service: documents are uploaded to Mindee and processed in the vendor cloud. Current documentation lists Starter at EUR 44 per month and Pro at EUR 116 per month with annual billing, plus custom Enterprise pricing; the trial is 200 credits or 14 days with a 10-page-per-document limit, not a permanent free plan. Processing zones can be set to no preference, Europe or the United States, subject to plan availability, and storage retention is 1-24 hours with a 12-hour default. The open-source docTR library is separate and does not make this API self-hostable.",
      "bestFor": "Product and engineering teams that need specific fields read out of high-volume business or identity documents through a hosted API, with ready-made extraction templates or custom models and a separate raw-text OCR model.",
      "watchOutFor": "Mindee is a hosted REST API: documents are uploaded to and processed by Mindee, an account and API key are required, and there is no self-hosted Mindee API edition. The separate open-source docTR library originated at Mindee but does not change that. Current documentation shows V2 as the latest line, with older V1 material on platform.mindee.com; do not treat V1 models or third-party write-ups as the current API. Current docs list Starter at EUR 44 per month and Pro at EUR 116 per month with annual billing, plus custom Enterprise pricing; the plans page no longer shows the older Pro EUR 179 or Business EUR 584 figures and does not list a Business plan. The trial is 200 credits or 14 days, whichever comes first, capped at 10 pages per document, and is not a permanent free plan. Pricing is vendor-published in EUR; no GBP price has been verified, so no currency conversion or GBP price is asserted. Processing-zone controls are not available on all plans; No Preference is the default and may route to Europe or the United States, while Europe/US options restrict processing only, not support or extraction-analysis access. Storage retention is 1-24 hours with a 12-hour default; files sent by API are not saved to disk, and extracted data can be deleted on fetch or after the storage period. These are vendor statements and have not been independently probed. The API returns extracted values and confidence/polygon data and has no masking, redaction, editing, conversion, signing or repair feature. Structured extraction is not generic PDF text extraction and does not guarantee semantic correctness; OCR is the separate Raw Text model and does not guarantee layout understanding or accuracy. Extraction and OCR results require review and must not be treated as legally or semantically validated.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Mindee SAS",
      "platforms": [
        "api"
      ],
      "launchedYear": 2018,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr"
      ],
      "jobScores": {
        "extract": 84,
        "ocr": 78
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.mindee.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Documents are uploaded to Mindee's cloud API. Mindee states the original uploaded file is never written to disk and that only extracted results are retained - twelve hours by default, configurable from one to twenty-four, or deleted on first fetch. The processing region can be set to Europe, the United States or a global default on paid plans.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Cloud service. Documents are uploaded to Mindee's API, which states the original file is never written to disk and that only extracted results are retained briefly."
      },
      "license": "Commercial hosted SaaS API. Mindee SAS, 14 rue Charles V - CS 26154 - 75181 Paris Cedex 04, France, contracts with clients registered in the Eurozone; all other clients contract with Mindee Inc., a Delaware corporation at 548 Market St, Suite 98568, San Francisco, California 94104-5401. The service requires an account and API key; no public source licence is offered for the hosted API. The separate open-source docTR OCR library originated at Mindee but is not part of this API product and does not make Mindee self-hostable.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting structured fields from documents with Mindee V2 extraction models, where the current docs document catalog/ready-made templates and custom extraction models, JSON field outputs with field-level confidence scores and polygon coordinates, optional full-page raw text, and extraction utilities for splitting multi-page files, cropping multiple documents from one page and classification. The scope records structured extraction from uploaded documents through the asynchronous REST API, with polling or webhooks, and makes no generic PDF text extraction, semantic-correctness, editing, redaction, conversion, signing or repair claim; raw-text OCR and the separate docTR library are not part of this job",
        "ocr": "running OCR with Mindee's dedicated Raw Text OCR model, where the current docs document automatic extraction of the raw text of each page using OCR, returning the text as raw data rather than structured fields, and additionally returning each word with its text and position information. It supports almost all modern writing systems, is a custom model with no catalog template, and is called through the same asynchronous REST API using polling or webhooks. The scope records full-page raw-text OCR and word-level position output through the hosted API, and makes no layout-understanding, semantic-correctness, guaranteed-accuracy, editing, redaction, conversion, signing or repair claim; the optional raw-text feature of extraction models and the separate docTR library are kept distinct"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 79,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://docs.mindee.com/ (V2 latest), /account-management/plans (Starter EUR 44, Pro EUR 116, Enterprise; 200 credits/14-day trial), /getting-started/key-features (extraction models, confidence, polygons, raw text, zones), /integrations/api-overview (async REST, API key, polling/webhooks), /raw-text-ocr-models/ocr (raw text and per-word positions), /extraction-models/optional-features/raw-text-full-ocr (optional full text), /models/data-processing-policies (zones, retention, deletion, GDPR/SOC 2 statement); https://www.mindee.com/pricing (localized plan display); https://www.mindee.com/legals/privacy-policy and /legals/terms (legal entities and contracting rule), read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/mindee/"
    },
    {
      "slug": "mpdf",
      "name": "mPDF",
      "tagline": "PHP library that generates PDFs from UTF-8 HTML, and whose manual calls it dated.",
      "websiteUrl": "https://mpdf.github.io/",
      "summary": "mPDF is a community-maintained PHP library, currently at 8.3.1 (Packagist, 11 March 2026), that takes UTF-8 HTML and produces a PDF, which made it a common way for PHP applications to produce invoices, statements and reports without leaving the language. It handles CJK and right-to-left scripts, headers and footers, page numbering, tables of contents and barcodes - features a general-purpose renderer's print dialog does not give you. It began as a fork of FPDF and HTML2FPDF and has been maintained for years, though the project's own manual is unusually candid about its dated CSS engine. It requires PHP ^5.6/^7/~8.0-8.5, ext-gd and ext-mbstring, and is GPL-2.0-only; it is a library only, not a hosted service.",
      "bestFor": "Existing PHP applications that already generate documents with it, and teams who cannot leave PHP. The manual's own advice is the honest summary: use it if a non-PHP approach is not available, or if you specifically want its colour handling, pre-print features, barcodes, headers and footers, page numbering or tables of contents.",
      "watchOutFor": "Its own manual says it is dated and points elsewhere, which is rare enough to be worth quoting rather than summarising: it describes mPDF as 'quite dated software', notes that better alternatives exist, and suggests a headless Chromium renderer for state-of-the-art CSS support. CSS support is effectively frozen - the project says it will keep updating internal capabilities and PHP compatibility but that better and/or newer CSS support will most likely not be implemented - so a modern stylesheet is likely to need rewriting. The licence is GPL-2.0-only, which is copyleft: for a closed-source PHP application that is a real constraint and not a formality. And there is a security instruction that belongs in front of anyone building a form on it: the manual states that mPDF is not meant to receive HTML or CSS from an outside user and that user input must be sanitised above ordinary HTML escaping, which is the opposite of what a template feature invites you to do. The library is self-hosted PHP only; there is no hosted mPDF edition, account or vendor service.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://mpdf.github.io/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence and for the structural reason that applies to every generator in this index: mPDF builds a PDF from HTML and never opens one, so there is no document for a redaction feature to act on. What it does not establish: that a PDF produced with mPDF is safe to share. The manual's security instruction points the other way - the library will faithfully render whatever the template is given, which is how a field that should have been excluded ends up in a document the customer keeps."
      },
      "processesLocally": true,
      "processesLocallyNote": "A PHP library that runs in the caller's own PHP server process. The mPDF project publishes no hosted service or account; HTML and caller-supplied data are processed by the application's own PHP environment. Network I/O is controlled by the caller, so local processing is architectural rather than an absolute no-network guarantee.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A PHP library running in your own web server's process. No service, no account, no network call - the HTML and the data behind it stay on your infrastructure."
      },
      "license": "GPL-2.0-only. Packagist metadata for 8.3.1 declares GPL-2.0-only and requires PHP ^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0, ext-gd, ext-mbstring and its PHP package dependencies. The project is community-maintained; the README credits Ian Back as the original author, and no company is documented. Copyleft terms matter for closed-source applications; no permission to use a later GPL version was established.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "UTF-8 HTML and CSS to PDF; not a Word, Excel or image converter"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 115,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://repo.packagist.org/p2/mpdf/mpdf.json (8.3.1, 11 March 2026, GPL-2.0-only, PHP constraints, ext-gd/ext-mbstring; read 2026-10-16); https://github.com/mpdf/mpdf (community repository, GPL-2.0, created 2015-03-03, last push 2026-10-13; read 2026-10-16); https://mpdf.github.io/ (dated CSS status, headless-Chromium recommendation, user-input warning); https://raw.githubusercontent.com/mpdf/mpdf/development/README.md (PHP requirements, original author Ian Back, GPL v2).",
      "profileUrl": "https://dialegein.com/products/mpdf/"
    },
    {
      "slug": "mupdf-js",
      "name": "MuPDF.js",
      "tagline": "Artifex's WebAssembly build of the MuPDF engine for JavaScript and browsers.",
      "websiteUrl": "https://mupdfjs.readthedocs.io",
      "summary": "Artifex's official JavaScript and TypeScript binding to the MuPDF C engine, published on npm as `mupdf` and compiled to WebAssembly so the same code runs in browsers and in Node, Bun or Deno. It renders pages to PNG, JPEG, PAM or an HTML5 canvas, extracts plain or structured text with positions, searches text and reads links, creates and edits annotations including permanent redaction, merges and rearranges pages, reads and writes form field values, metadata and outlines, and can save with encryption, permission and compression options. The current npm release is 1.28.1. There is no OCR and no signing API documented.",
      "bestFor": "Teams that need high-fidelity rendering plus genuine editing - redaction, annotation, merging, encryption - in one client-side or server-side JavaScript stack, and that can either comply with the AGPL or buy a commercial licence.",
      "watchOutFor": "Licensing is the real decision: the engine is AGPL-3.0-or-later or a commercial licence from Artifex, and the vendor's distinction is that a commercial licence is required where AGPL compliance is not possible, which is a statement about the licence rather than legal advice for a particular product. The official npm package is `mupdf` at version 1.28.1, published on 6 September 2026; the older, similarly named community `mupdf-js` package with a hyphen is deprecated, so which package a project depends on matters. The examples cover both browser processing and a Node REST server, so this is a browser and Node deployment rather than a no-server one, and running the engine locally says nothing about what the application hosting it uploads or stores. There is no vendor-hosted processing endpoint in the library itself. The WebAssembly binary adds to a client bundle and its transfer and unpacked sizes have not been measured here, so no size figure is published. The documented capabilities do not include OCR or a signing API: text extraction reads text already in the file, and no certificate-signing surface was found. Redaction is the exception among editing operations: a Redact annotation plus page.applyRedactions() permanently removes marked content, as our 17 September 2026 test confirmed on version 1.28.1, but that is the annotated redaction path rather than a claim that every editing operation alters content destructively. Save-time compression, encryption and permission settings are documented at README level and depend on the options supplied; no lossless, fidelity, reader-enforcement or algorithm guarantee is made.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Artifex Software, Inc.",
      "platforms": [
        "web",
        "self_hosted"
      ],
      "launchedYear": 2024,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "merge",
        "compress",
        "view",
        "extract",
        "convert"
      ],
      "jobScores": {
        "edit": 80,
        "protect": 75,
        "merge": 75,
        "compress": 55,
        "view": null,
        "extract": null,
        "convert": null
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": null,
        "readAt": "2026-09-17",
        "quote": null,
        "caveat": "Tested on our own canary document. Deletes the marked text from the page structure and paints a fill; the saved file contains no image. Verified on one document and one build."
      },
      "processesLocally": true,
      "processesLocallyNote": "Inherent to the technology rather than a vendor claim: the MuPDF C engine is compiled to WebAssembly and shipped inside the package, so parsing, rendering and editing happen in your own browser or Node process. Caveat: the binary is large and the project notes the app must be served over HTTP rather than opened from the filesystem.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "The MuPDF C engine compiled to WebAssembly and shipped inside the package, so parsing, rendering and editing happen in your own browser or Node process."
      },
      "license": "AGPL-3.0-or-later or commercial. The official npm package `mupdf` is published under AGPL-3.0-or-later, and the README badges the project as AGPL or Commercial. Artifex's licensing page says most of its products are dual-licensed under the GNU AGPLv3 or commercial licence agreements, with commercial OEM and subscription options charged per copy with a quarterly minimum fee and no published figures; the page identifies Artifex Software Inc. as the company but does not publish a street address. No price is asserted. The official package is `mupdf`; the older community package `mupdf-js` with a hyphen is deprecated.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "browser"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "customer_server",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing annotations and PDF structure with MuPDF.js, where the annotations documentation documents creating annotations with page.createAnnotation() and deleting them with page.deleteAnnotation(), with creation supported for Text, Link, FreeText, Square, Circle, Line, Polygon, PolyLine, Highlight, Underline, Squiggly, StrikeOut, Redact, Stamp, Caret, Ink and FileAttachment types, and where the README capability list documents reading and writing form widget values, metadata and outlines, page insert, delete, reorder, rotate and crop, and the Redact annotation plus page.applyRedactions() path that permanently removes marked content as our test confirmed; the scope covers annotations, widgets, metadata, outlines and page operations, does not claim general rewriting of existing body text, and leaves the permanent-removal verdict to the redaction field",
        "protect": "protecting PDFs with MuPDF.js, where the README API overview lists PDFDocument operations for save and encrypt, and the capability list documents opening password-protected PDFs and checking and setting permissions, with save options covering encryption and permission settings; the scope records the documented password opening, permission checking and encryption save options and makes no reader-enforcement, algorithm or key-management guarantee beyond the documented API",
        "merge": "merging and rearranging PDFs with MuPDF.js, where the README API overview documents PDFDocument operations for save, encrypt, merge, graft, journal and layers, and the capability list documents document merging by grafting pages from one PDF into another and page insert, delete, reorder, rotate and crop operations; the scope records the documented merge, graft and page operations and makes no claim about preserving signatures, forms, links or annotations across a merge",
        "compress": "compressing PDFs with MuPDF.js, where the README capability list documents save options for incremental updates, garbage collection and compression; the scope records the documented save-time compression and makes no lossless, fidelity or specific size-reduction guarantee because the result depends on the options and the document",
        "view": "rendering PDF pages with MuPDF.js, where the page documentation documents loading a page, getting its bounds, and converting it to a pixmap with page.toPixmap(matrix, colorSpace, alpha, annots), controlling resolution through the matrix, colour space, background transparency and whether annotations are rendered, and then exporting the pixmap as PNG, JPEG, PAM or drawing it to a canvas; the scope is rendering pages and images, not an interactive viewer, and makes no fidelity guarantee beyond the engine's documented high-fidelity rendering claim",
        "extract": "extracting text with MuPDF.js, where the page documentation documents page.toStructuredText() with asText() for plain text and asJSON(preserve-spans) for a structured object containing blocks, lines, spans, positional data and font data, and the README capability list documents text extraction, text search and link extraction from pages; the scope records the documented text, structure, search and link extraction, makes no OCR claim because the library has no OCR capability, and claims no image-extraction or accuracy guarantee beyond the documented APIs",
        "convert": "image output"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 348,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "github.com/ArtifexSoftware/mupdf.js README and GitHub API metadata; mupdfjs.readthedocs.io FAQ; artifex.com/licensing. Licence from the repository and the project FAQ.",
      "profileUrl": "https://dialegein.com/products/mupdf-js/"
    },
    {
      "slug": "mupdf-mutool",
      "name": "MuPDF (mutool)",
      "tagline": "Fast C PDF library plus the mutool command-line suite.",
      "websiteUrl": "https://mupdf.com/",
      "summary": "MuPDF is a small, fast C library for viewing, converting and manipulating PDF, XPS, EPUB and other documents, and mutool is the command-line program bundled with it. The current stable release tag is 1.28.5, dated 25 September 2026. The mutool command set includes convert, merge, clean, pages, create, draw, extract, sign, info, show, grep, bake, barcode, poster, recolor, trim, trace, audit and run. convert rewrites documents into PDF, raster image, PCL, PCLm, PS, PWG, SVG, HTML/XHTML, plain text or structured text output; merge picks pages from several files into one PDF; clean repairs and rewrites PDFs, filters pages, garbage-collects, recompresses streams and can encrypt or decrypt; create builds a PDF from graphics command files; pages reports page sizes and orientation; draw renders or extracts text and images; extract pulls images and fonts; sign verifies, clears or creates certificate-based signatures; and run executes JavaScript with access to the MuPDF library. It is a scripting and embedding toolkit rather than a point-and-click editor, and it runs locally or in the caller's process with no vendor-hosted service.",
      "bestFor": "Developers and technical users who want one fast, dependency-light engine they can drive from shell scripts, a C program, or a JavaScript, Java or Python binding.",
      "watchOutFor": "The current stable release tag is 1.28.5, dated 25 September 2026; the master version header says 1.29.0 development and is not a released version. MuPDF is AGPL-3.0-or-later or commercial from Artifex Software, Inc.; no commercial price is published and commercial licensing routes through Artifex sales. It is a toolkit, not a rich graphical editor: there is no general content-editing command, and edit here means structural rewriting, page filtering, repair, creation from graphics commands and JavaScript scripting rather than text or annotation editing in a UI. There is no dedicated redaction subcommand in the mutool command list; permanent redaction exists in the MuPDF library and the MuPDF.js API, not in a mutool CLI workflow, and MuPDF.js has its own record in this index. The draw command has OCR options for language and an OCR file path, but OCR is not a separate job in this record and no accuracy guarantee is made. The sign command can verify, clear or create certificate-based signatures using a certificate file and certificate password, but no certificate-authority issuance, trust-validation or timestamp guarantee is made. The clean command can encrypt output with rc4-40, rc4-128, aes-128 or aes-256, set owner and user passwords and permissions, or decrypt with -D, but no reader-enforcement guarantee is made. Processing is local to the machine or the embedding application; there is no vendor-hosted surface, and no cloud, AI, fax or retention service is part of mutool.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Artifex Software, Inc.",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "merge",
        "compress",
        "sign",
        "edit",
        "protect"
      ],
      "jobScores": {
        "convert": 90,
        "merge": 82,
        "compress": 75,
        "sign": 70,
        "edit": 68,
        "protect": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-10-04",
        "source": "https://mupdf.readthedocs.io/en/latest/reference/javascript/types/PDFPage.html",
        "quote": "MuPDF documents redaction on its own PDFPage API, where a redaction annotation identifies an area whose content should be removed, and the options determine what happens to the images and text the area covers.",
        "caveat": "This is the MuPDF PDFPage API, which is reached through a binding, and it is not the same thing as a mutool subcommand: mutool’s overview lists a different collection of command-line operations. The record previously cited PyMuPDF’s Page documentation as the evidence for this whole entry, which named the wrong interface. Content removal is a documented capability and independent redaction safety remains untested."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural rather than a vendor claim: mutool is an installed binary and the MuPDF core is a library you link into your own program, so documents are read and written on the machine running it. There is no account and no hosted step.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed command-line binary and embeddable C library. Documents are read and written on the machine running it."
      },
      "license": "AGPL-3.0-or-later or commercial. The MuPDF source headers and licence documentation say MuPDF is licensed under the GNU Affero General Public License, version 3 or later, and that a commercial licence is available from Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco, CA 94129, USA, for users who cannot comply with the AGPL. The licence file says the software is provided as-is with no warranty and directs commercial enquiries to Artifex. No commercial price is published; pricing routes through Artifex sales. The current stable release tag is 1.28.5, dated 25 September 2026, and the master branch version header is 1.29.0 development, which is not a released version. mutool is the command-line program bundled with the MuPDF C library; the library and the command-line tool are separate surfaces but share the same source and licence.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "in_process",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting documents with mutool, where the mutool convert man page says the command converts a file from one format to another, infers the output format from the output filename or a -F format option, and supports page ranges and output options; the manual's output-option sections document raster formats cbz, png, pnm, pgm, ppm, pam, pbm and pkm, PCL, PCLm, PS and PWG print formats, SVG, HTML, XHTML, plain text and structured text, and the PDF output options document PDF output with compression, encryption, permissions and metadata controls. The draw manual lists the input document formats as PDF, XPS, CBZ, Markdown and EPUB. The scope records the documented convert command and the documented output families, makes no Office conversion claim, no fidelity guarantee and no claim that every format pair is supported, because the manual documents the command and options rather than an exhaustive conversion matrix",
        "merge": "merging documents with mutool, where the mutool merge man page documents picking pages from two or more files and merging them in order into a new PDF output file, with an output filename and optional PDF output options, and accepts page ranges for each input. The scope records the documented ordered page-level merge of two or more inputs into a new PDF and makes no claim about preserving signatures, forms, links or annotations across the merge",
        "compress": "rewriting PDFs with image subsampling and recompression controls, including lossless, jpeg, j2k, fax and jbig2 methods",
        "sign": "signing PDFs with mutool, where the mutool sign man page documents reading a PDF and printing information about each signature field, verifying all or specified signatures with -v, clearing all or specified signatures with -c, and signing with a certificate file and certificate password using -s and -P, with an output file. The scope records the documented certificate-based signature verification, clearing and creation workflow on signature fields, makes no certificate-authority issuance, trust-validation, timestamp or independent legal-validity guarantee, and does not claim a visual signature workflow",
        "edit": "editing PDF structure with mutool, where the mutool clean man page documents pretty-printing and rewriting PDF syntax, repairing broken files, expanding compressed streams, filtering page ranges, garbage collection, object renumbering and deduplication, stream recompression, annotation appearance generation, metadata preservation and encryption changes; the create man page documents creating a new PDF from one or more graphics command files with page sizes, fonts and image resources; the pages man page documents page size and orientation information; and the run man page documents executing JavaScript with access to most MuPDF library features. The scope records structural rewriting, page filtering, repair, PDF creation from graphics commands and JavaScript scripting, and makes no general text-editing, annotation-editing or point-and-click editor claim; the library and MuPDF.js surfaces are separate",
        "protect": "protecting PDFs with mutool, where the mutool clean man page documents saving with an encryption method of rc4-40, rc4-128, aes-128 or aes-256, setting an owner password with -O, a user password with -U and permissions with -P, saving without encryption with -D, and using -p to open an encrypted input. The scope records the documented encryption, password and permission controls in the local command-line tool and makes no reader-enforcement, universal-compatibility or unbreakable-encryption guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 83,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "mupdf.com (home, releases); mupdf.readthedocs.io (what-is-mupdf, mutool, mutool-clean, mutool-sign, license, changes). Licence confirmed on the licence page and the releases page.",
      "profileUrl": "https://dialegein.com/products/mupdf-mutool/"
    },
    {
      "slug": "nitro-pdf-pro",
      "name": "Nitro PDF Pro",
      "tagline": "Commercial PDF editor and eSign suite for Windows, Mac and iOS.",
      "websiteUrl": "https://www.gonitro.com/pdf",
      "summary": "Nitro PDF Pro is a commercial desktop PDF editor and e-signing product for Windows, macOS and iOS, sold in Standard, Plus and Classic plan tiers. It handles editing existing text, images and objects, annotations, forms, page organisation, conversion and export, OCR of scanned documents, password security and digital signatures, and connects to Microsoft 365, Salesforce, SharePoint and cloud storage. The current macOS app is version 26.4 and the iOS app is version 26.2. Editing, OCR and PDF export run in the installed application, while Nitro Sign, Smart Redact, Nitro Automate and the AI document tools are separate cloud services. The current rendered pricing page lists Standard at USD 15 per user per month billed annually at USD 180.00 and Classic at USD 270.00 per licence for a three-year Windows term, with a 14-day trial and no free tier. Direct purchases through checkout.gonitro.com are sold and billed by Nitro Software Ecomm Limited as an authorized reseller to Nitro Software, Inc., while the macOS and iOS App Store listings name Nitro Software, Inc. as the seller.",
      "bestFor": "Businesses and professionals who want one commercially supported PDF editor with e-signing and Microsoft 365 or SharePoint integration rather than a free tool.",
      "watchOutFor": "The earlier recorded GBP 138 per year figure is not on the current rendered pricing page. The page currently lists Nitro PDF Standard at USD 15 per user per month, billed annually at USD 180.00, and Nitro PDF Classic at USD 270.00 per licence billed once for a three-year Windows term, with Plus being quote-only; no GBP price is shown, so this record leaves priceFromGbp null and does not convert the USD amounts. There is a 14-day free trial and no permanent free tier. The direct-checkout seller is Nitro Software Ecomm Limited, First Floor, 80 Harcourt Street, Dublin 2, D02F449, Ireland, acting as an Authorized Reseller to Nitro Software Inc.; the Ecommerce Terms say Nitro, not Nitro Ecomm, provides and operates the services. The macOS and iOS App Store listings independently name Nitro Software, Inc. as the seller, so the direct-checkout and app-store seller surfaces are separate and are not conflated. The owner/controller remains Nitro Software, Inc., and the USD list prices are attributed to the direct-checkout surface rather than to the App Store listings. The product marketed as Nitro PDF Pro is now sold as the Standard, Plus and Classic tiers rather than under a PDF Pro tier name, and Classic is a three-year Windows term licence rather than a perpetual or monthly plan. Digital signatures in Nitro PDF Pro use a digital ID or certificate and the Windows user guide says the signature confirms the document has not changed since signing and that Nitro restricts some actions to preserve that state; the vendor does not publish a certificate-authority issuance, trust-validation or trusted-timestamp guarantee, and this record makes none. Nitro Sign is a separate e-signing service with its own plans and cloud processing, and bulk e-signing, Smart Redact, Nitro Automate and the AI document tools are separate products rather than features of the installed editor. Editing existing text, images and objects, OCR and PDF export are documented in the desktop and iOS user guides and are treated as installed-app features, while Nitro Sign and the AI services are cloud or vendor services. The security guide documents user and owner passwords and 40-bit RC4, 128-bit AES and 256-bit AES encryption levels, but the record makes no reader-enforcement or universal-compatibility guarantee, and the choice of encryption level affects which PDF readers can open the file. No current first-party Nitro or Apryse page read in this audit states an Apryse ownership or acquisition relationship, so the owner is recorded as Nitro Software, Inc. and no Apryse claim is inferred.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Nitro Software, Inc.",
      "platforms": [
        "windows",
        "mac",
        "ios"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "sign",
        "convert",
        "ocr",
        "protect"
      ],
      "jobScores": {
        "edit": 85,
        "sign": 85,
        "convert": 80,
        "ocr": 70,
        "protect": 70
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.gonitro.com/pdf",
        "quote": "With intuitive tools, you maintain complete control to review, adjust, and publish documents with permanent, untraceable redactions.",
        "caveat": "The vendor’s product page, not a test we ran - and not the step-by-step guidance, which is the more specific source and describes the mechanism differently by platform. The Windows documentation states permanent removal explicitly, while the Mac documentation says only that text can be blocked out or erased. Read this against the platform you actually use."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the feature. The installed editor works on files on the machine, and that is distinct from the online services: the current documentation places Smart Redact, extraction and PDF chat inside Smart Tools, and the guide describes those as online services requiring a Nitro account with admin-controlled access. An absolute no-server badge cannot describe both, so the processing state is recorded per feature and AI redaction is not described as exclusively a separate application, nor is every desktop licence treated as including every online service.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Nitro PDF Pro installed on Windows and macOS. On their servers: Smart Tools online services. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. Nitro Software, Inc., 447 Sutter St, STE 405 #1015, San Francisco, CA 94108, USA, is the controller named in the privacy policy and the provider/operator of the services; the site footer also carries Nitro Software, Inc. Licence sales through checkout.gonitro.com are sold and billed by Nitro Software Ecomm Limited, First Floor, 80 Harcourt Street, Dublin, Dublin 2, D02F449, Ireland, acting as an Authorized Reseller to Nitro Software Inc.; the Ecommerce Terms say Nitro (not Nitro Ecomm) provides and operates the services. The macOS and iOS App Store listings separately name Nitro Software, Inc. as the seller, so the direct-checkout and app-store seller surfaces are recorded separately rather than merged. Nitro PDF is sold in plan tiers: Standard is a subscription at USD 15 per user per month billed annually at USD 180.00, Plus is quote-only for larger organisations, and Classic is a USD 270.00 per-licence three-year term for Windows desktop billed once. Those USD figures are the prices shown on Nitro's current rendered pricing/checkout surface and are therefore attributed to the Nitro Ecomm direct-sales surface, not to the App Store listings. The current rendered pricing page publishes no GBP figure, so the record does not assert a GBP price or convert the USD figure. There is a 14-day free trial and no permanent free tier. The software is proprietary with no open-source licence or source distribution.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Nitro PDF Pro installed on Windows and macOS",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Smart Tools online services",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "ios"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with Nitro PDF Pro, where the Windows user guide documents adding, editing, moving and flattening text without reopening the original source file, a Type Text tool for adding text anywhere and controlling font, size and colour, an Edit tool for modifying existing text within a paragraph with automatic paragraph-level reflow, image replacement and deletion, annotations and markup, forms, and page and document operations, and the iOS user guide documents Correct Text for editing inline text and copy/paste of text and objects; the scope records the documented existing-text, image, annotation, form and page editing on the installed Windows, macOS and iOS apps, makes no layout-fidelity guarantee, and leaves OCR to its own job",
        "sign": "signing PDFs with Nitro PDF Pro, where the Windows user guide documents digital signatures that verify the signer's identity and confirm the document has not changed after signing, using a digital ID or certificate from the signature gallery, with Nitro restricting some actions to preserve the signed state and saying digital IDs or certificates can support legal validation; Nitro Sign is documented as a separate e-signing service with its own plans and cloud processing. The scope records the certificate-based digital signature in the installed Windows product and keeps Nitro Sign separate, and makes no certificate-authority issuance, trust-validation, trusted-timestamp or independent legal-validity guarantee, and makes no Mac or iOS certificate-signing claim because those guides were not read",
        "convert": "converting and exporting PDFs with Nitro PDF Pro, where the Mac user guide documents exporting a PDF to Microsoft Word DOCX, Microsoft Excel, PowerPoint, PDF/A, text and image formats through File Export, with a language selection for added accuracy, and the product page documents creating, converting and combining PDFs and exporting to Word, Excel and PowerPoint; the scope records the documented PDF export and conversion directions in the installed app, makes no fidelity guarantee for converted documents, and does not claim a cloud conversion route for the desktop export function",
        "ocr": "running OCR with Nitro PDF Pro, where the Windows user guide documents OCR of existing PDFs and scanned documents, adding an invisible text layer for searchable and selectable text and optional editable text, with settings for language, quality Low, Medium or High, image downsampling and compression, and the Mac user guide lists OCR of scans; the scope records the documented OCR of scanned PDFs and images into searchable or editable output with the language and quality settings, and makes no accuracy guarantee for any language or document type",
        "protect": "protecting PDFs with Nitro PDF Pro, where the Mac security guide documents user passwords required to open and view a document, owner passwords required to change permissions, permissions restricting saving, printing or copying, and three encryption levels: 40-bit RC-4, 128-bit AES and 256-bit AES, with compatibility depending on the level and the reader; the scope records the documented password, permission and encryption-level controls in the installed app, and makes no reader-enforcement guarantee, no universal-compatibility guarantee and no claim that a chosen encryption level is unbreakable"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 173,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "gonitro.com pages (home, pdf, pricing, integrations, technical requirements, plan guide, compare, security-compliance, FAQ, best-pdf-editors, legal/privacy-policy). Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/nitro-pdf-pro/"
    },
    {
      "slug": "nofusspdf",
      "name": "No Fuss PDF",
      "tagline": "Fill, sign, merge and convert PDFs without the file leaving your device.",
      "websiteUrl": "https://nofusspdf.com/",
      "summary": "No Fuss PDF is a set of browser tools from Rust Solutions Ltd for ordinary document jobs: Fill PDF, Sign PDF, Merge PDF, Split PDF or extract pages, JPG or PNG images to PDF, and PDF pages to JPG. Fill PDF places visible text, dates, checks, crosses and signatures over the page, so it works on scanned and flattened forms that have no fillable fields, although it does not create interactive fields or change the original text. Sign PDF attaches a visible signature by drawing, typing or uploading a PNG or JPEG; Merge combines PDFs in a chosen order; Split extracts selected pages into one PDF or splits every page into a ZIP; and the image tools convert JPG, JPEG and PNG images into a PDF or PDF pages into JPG images. Processing uses PDF.js and pdf-lib in browser memory, the files are not uploaded to No Fuss PDF, and the tools are free with no account, watermark, paywall or download limit. The site sends a small set of anonymous same-origin operational events and may store random local visitor and session IDs, as its privacy page describes.",
      "bestFor": "Someone holding a scanned or flattened form that has no fillable fields, who needs to type on it and sign it and would rather not send the document to a server. Also anyone who wants to fill, merge or convert a PDF in one place without creating an account first.",
      "watchOutFor": "The signatures are visible page overlays, not certificate-backed digital signatures, and the site itself says they do not create a cryptographic certificate signature. The tools do not edit the document's own text, do not create interactive form fields, do not perform OCR, and have no redaction. Fill PDF adds selectable text over the page but leaves the printed words of a scanned form as image only, so a reader who needs the original scanned words searchable needs OCR, which this tool does not provide. Split PDF extracts pages into a new PDF or a ZIP; it does not extract text, images, tables or form data, and the extract job is page extraction rather than content extraction. Image conversion is limited to JPG, JPEG and PNG to PDF and PDF pages to JPG; no other input or output formats are claimed. No licence or terms page is published, the site sitemap lists only the tools, Privacy, About, Compare and Research, and no registered address, company number, jurisdiction, product version or file-size/page limit is published. Documents are processed in browser memory and are not uploaded to No Fuss PDF, but the site records anonymous same-origin operational events and may store random visitor and session IDs in local storage; no analytics retention period or storage region is stated, so data residency remains unknown. The site publishes no account requirement and no paid tier, trial, currency or billing basis, and this record does not assert one.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Rust Solutions Ltd",
      "platforms": [
        "web"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "sign",
        "merge",
        "convert",
        "extract"
      ],
      "jobScores": {
        "edit": 88,
        "sign": 80,
        "merge": 80,
        "convert": 78,
        "extract": 78
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://nofusspdf.com/privacy",
        "readAt": "2026-09-29",
        "quote": "We do not offer redaction.",
        "caveat": "There is no redaction feature. The operator states this in their submission of 2026-09-29 and nothing in the tool contradicts it. The point is worth stating rather than leaving implicit, because this product draws visible marks on top of a page as its normal way of working, which is the mechanism that makes a bad redaction fail. A reader should be clear that a visible overlay here is a form answer, not a redaction, and that the tool makes no redaction claim at all."
      },
      "processesLocally": true,
      "processesLocallyNote": "TESTED ON TWO KINDS OF DOCUMENT, NOT TAKEN ON TRUST. A text based PDF carrying a marker, and a second file that is a single image with no text layer at all, were each put through the fill tool in a browser. Both rendered locally, accepted typed text and produced a filled PDF for download, so the tool demonstrably processed them. Nothing left the device: no marker appeared in any request and every request went to nofusspdf.com. The only traffic was eight named first party events carrying no document content. The submitter asked for this to be recorded as their claim until independently tested; it has now been tested, so it is recorded as a finding. TESTED AGAIN ON 1 OCTOBER 2026, ON A FORM BUILT HERE, WHICH ASKED A DIFFERENT QUESTION. The first test established that the file never leaves the device. The second asked what the finished file contains. The form was a single image with no text layer, which yields no text at all when read. A marker typed into it through the live tool came back out of the downloaded file as selectable text, and nothing from the scanned image came through, so the answer a reader types is readable afterwards and the words already printed on a scan are not. Every one of the twenty two requests went to nofusspdf.com and none went anywhere else.",
      "locality": {
        "verdict": "no_upload_observed",
        "label": "no upload observed",
        "testedAt": "2026-10-21T11:49:00.216Z",
        "method": "Playwright with a uniquely marked test file: a PDF for most tools, and a marked PNG for tools that only accept pictures. Chromium does not expose file bytes to the debugger, so we observe that a multipart request carried a redacted file part and record the host it went to. We cannot confirm the contents."
      },
      "license": "No licence or terms page is published. The current site sitemap lists only the tool pages, Privacy, About, Compare and Research, and the only legal page is the Privacy page, which names Rust Solutions Ltd as operator and data controller. The tools are free with no account, upload, watermark, paywall or download limit, and no open-source licence or source distribution is published. No registered address, company number or jurisdiction is published on the pages read.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "filling PDFs with No Fuss PDF, where the Fill PDF page documents placing visible text, dates, checks or crosses, and a signature, on a page by clicking or tapping where the answer belongs, including on scanned or flattened forms with no interactive fields; the page says it adds visible text over the page and does not create new interactive fields or change the original text, and the Fill workspace also includes the drawing, typed and uploaded signature tools. The scope records the documented visible-overlay filling and date/check/cross/signature placement, makes no body-text rewrite or interactive-form-creation claim, and does not generalise the tested fill result to the other tools",
        "sign": "signing PDFs with No Fuss PDF, where the Sign PDF page documents drawing, typing or uploading a PNG or JPEG signature, placing and resizing it on the document, and downloading the signed PDF, all inside the browser; the page explicitly says the tool adds the visible signature and does not create a cryptographic certificate signature, and points users who need certificate validation to a certificate-based service. The scope records the visual electronic signature only and makes no certificate, validation, trust or timestamp claim",
        "merge": "merging PDFs with No Fuss PDF, where the Merge PDF page documents choosing two or more PDFs, dragging them into the exact order, merging and downloading one PDF, with the files read and combined locally in the browser and filenames and contents not sent to No Fuss PDF. The scope records the documented ordered merge of PDF files and makes no claim about preserving signatures, forms, links or annotations across the merge",
        "convert": "converting images and PDF pages with No Fuss PDF, where the JPG to PDF page documents choosing one or more JPG, JPEG or PNG images, arranging them and downloading one PDF with each image as a page, and the PDF to JPG page documents selecting one or more PDF pages, choosing image quality and downloading a single JPG or a ZIP of the selected pages, rendered by the browser and not uploaded. The scope records the documented JPG/JPEG/PNG-to-PDF and PDF-pages-to-JPG directions with the single/ZIP output behaviour, makes no other input or output format claim and no quality or fidelity guarantee",
        "extract": "extracting pages with No Fuss PDF, where the Split PDF page documents selecting pages visually or with All, Odd or Even, downloading the selected pages as one new PDF, and splitting every page into a ZIP, with the PDF processed on the device and never uploaded. The scope records the page-extraction and split-every-page behaviour, keeps the selected pages in their original order, and explicitly makes no text, image, table or form-data extraction claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 134,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 5,
      "claimsVerifiedByUs": 5,
      "reviewedBy": null,
      "source": "nofusspdf.com, submitted for review by the operator on 2026-09-29 and read the same day with headless Chrome. The homepage rendered almost nothing to a plain fetch then and returns 4,381 bytes of static HTML now, so the site changed after this read; the pages read were the homepage, /fill-pdf and /privacy. Plus three tests against the live fill tool on 2026-09-29: a marked text PDF, an image-only PDF with no text layer, and a password protected PDF.",
      "profileUrl": "https://dialegein.com/products/nofusspdf/"
    },
    {
      "slug": "notability",
      "name": "Notability",
      "tagline": "Handwriting-first note app with PDF annotation, linked audio and AI study tools.",
      "websiteUrl": "https://notability.com/",
      "summary": "A handwriting-centred note app for iPad, iPhone, Mac, Windows, Android and the web. You write or type on a page, import PDFs and other documents to mark up, and record audio that stays tied to the moment you were writing. Imported PDFs are shown as note backgrounds; Notability can detect and display a PDF's outlines/table of contents for navigation, and you can annotate/mark up the document in the note. Paid tiers add unlimited notes, live transcription, handwriting recognition and AI features that turn notes into summaries, quizzes and flashcards. The current App Store version is 16.13 (12 October 2026); free Starter is limited to five notes, and current individual plans are USD yearly (Lite/Plus/Pro), with no verified GBP price. It is a note-taking/annotation app, not a general PDF editor, OCR/extraction tool, redaction or signing tool, and no legal/accessibility certification is claimed.",
      "bestFor": "Students and professionals who want one app for handwriting, lecture or meeting audio, and marking up imported PDFs on a tablet.",
      "watchOutFor": "The free Starter plan stops at five notes, and most headline features need a subscription. Current prices are published in USD yearly tiers (Lite/Plus/Pro); no current GBP price was verified, so no GBP figure or conversion is retained. Audio transcription and the AI study tools upload notes/recordings to the vendor's servers, and synced data is replicated on US servers, so it is not a purely local workflow. PDF support is viewing/annotation: imported PDFs become note backgrounds, with outline/TOC detection and navigation, but Notability does not edit original PDF body text, extract/convert documents as a PDF utility, merge PDFs, redact content, sign PDFs, provide OCR of arbitrary scanned PDFs or validate accessibility. Annotation can cover visible content but is not redaction. Native local annotation does not prove the web/cloud or AI paths are local. The corporate owner is Ginger Labs, Inc.; the app is proprietary, not open source.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Ginger Labs, Inc.",
      "platforms": [
        "ios",
        "android",
        "mac",
        "windows",
        "web"
      ],
      "launchedYear": 2010,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit"
      ],
      "jobScores": {
        "view": 88,
        "edit": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://notability.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Mixed by edition/feature. Native Apple apps can annotate local and iCloud documents, while Notability Cloud/web access, sync and AI/transcription features use vendor services; the privacy policy says synced data is replicated on servers in the United States, and audio transcription uploads recordings for server processing. Offline annotation on an installed edition is not proof that the web/cloud or AI paths are local. No universal all-local or all-cloud claim is made.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: iOS, macOS. On their servers: Web. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary, subscription/freemium app from Ginger Labs, Inc. Current published individual plans are in USD: Starter free with five notes, Lite USD 11.99/year (list USD 14.99), Plus USD 15.99/year (list USD 19.99), Pro USD 79.99/year (list USD 99.99); business plans exist. No GBP price was verified from current official sources, so priceFromGbp is null and no conversion is made. A one-time Classic option is mentioned in the current record history but its current price/feature set is not treated as the main product. There is no open-source licence.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "us",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "ios",
          "name": "iOS",
          "processing": "in_process",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing and navigating imported PDF documents in Notability: adding a PDF to a note as a page background, opening/reading its pages, automatic detection and display of a PDF's outlines/table of contents, outline-based navigation, and viewing the document while annotating or marking it up. The scope records PDF import/display/navigation and note-based annotation viewing only; it excludes editing the PDF's original body text or layout, OCR of arbitrary scans, text extraction, format conversion beyond the app's note/PDF sharing, merging, redaction, digital signatures, accessibility validation/remediation and any claim that annotation masks are redaction",
        "edit": "PDF annotation and markup, not editing original PDF text"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 125,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://apps.apple.com/us/app/notability/id360593530 (version 16.13, released 12 October 2026; read 2026-10-16); https://notability.com/pricing (Starter free 5 notes, Lite/Plus/Pro USD yearly; read 2026-10-16); https://notability.com/download (Mac, Windows, iPad, iPhone, Android, web; iOS/iPadOS 17+, Android 12+; read 2026-10-16); https://support.gingerlabs.com/en-us/?q=PDF (PDF import, PDF Outlines automatic detection/display/navigation, PDF backgrounds, PDF export; read 2026-10-16); https://notability.com/privacy (US-hosted synced data, audio transcription uploads; read 2026-10-16); https://notability.com/terms (Ginger Labs, Inc.; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/notability/"
    },
    {
      "slug": "nougat",
      "name": "Nougat",
      "tagline": "Meta Platforms' academic PDF parser that reads LaTeX maths and tables into Markdown.",
      "websiteUrl": "https://github.com/facebookresearch/nougat",
      "summary": "Nougat is Meta Platforms' research model for academic-document transcription. A PDF is processed by a visual encoder/decoder and emitted as a .mmd Markdown file, mostly compatible with Mathpix Markdown, with LaTeX mathematics and tables. It is intended for scientific papers like the arXiv/PMC material it was trained on. The package is installed as nougat-ocr: PyPI currently serves 0.1.17 (2023-10-04), the repository source declares 0.1.18, and GitHub's only releases are the 0.1.0-small and 0.1.0-base model weights (22 August 2023), not a software release. The CLI accepts one or more PDFs, a directory or a line-delimited PDF list, supports page ranges for a single PDF and selects either model tag, saves one .mmd per PDF, and documents failure-detection output such as [MISSING_PAGE] and the --no-skipping option. An optional local HTTP API (nougat_api, http://127.0.0.1:8503/predict/) accepts a PDF and optional start/stop page parameters. The code is MIT and the weights are CC-BY-NC; there is no commercial weights licence. It runs locally and requires the model weights, which may be downloaded on first use; it is not a hosted service.",
      "bestFor": "Research groups and archives transcribing bodies of scientific literature into machine-readable Markdown where LaTeX mathematics and tables matter, using a local model rather than a hosted document service.",
      "watchOutFor": "The licences are split: the codebase is MIT, but the model weights are CC-BY-NC and non-commercial only. There is no commercial-weights option or paid licence in the repository, so a commercial product cannot rely on the weights. The package and model versions are distinct: PyPI currently serves nougat-ocr 0.1.17 (2023-10-04), the repository source declares 0.1.18 (not a published package release), and GitHub releases 0.1.0-small and 0.1.0-base are model weights published on 22 August 2023, not a software release or launch date. The public repository does not expose a separate software release feed; do not describe a current software release beyond the package version. Nougat works best on English scientific papers; other Latin-based languages might work, while Chinese, Russian, Japanese and other non-Latin writing systems will not work. It is trained on arXiv and PubMed Central-style papers, so it is not a general image OCR or broad-language OCR engine and output on other layouts is not guaranteed. The output is Markdown/Mathpix-compatible text, not PDF, and it does not edit, redact, sign, encrypt, repair or convert back to PDF; there is no semantic validation guarantee. The documented [MISSING_PAGE] output and --no-skipping switch address a failure-detection heuristic, not a guarantee of page completeness. Practical use generally needs a GPU and suitable PyTorch; the README notes CPU or older GPUs can trigger false positives, and model weights may download on first use. The optional API is a local nougat_api server at 127.0.0.1:8503/predict with start/stop page parameters, not a hosted service. The separate open-source docTR library is unrelated. owner attribution to Meta Platforms, Inc. is supported by the repository LICENSE copyright and the project page, not merely the facebookresearch organisation.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Meta Platforms, Inc.",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": 2023,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr"
      ],
      "jobScores": {
        "extract": 80,
        "ocr": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://github.com/facebookresearch/nougat",
        "readAt": "2026-09-22",
        "quote": "This is the official repository for Nougat, the academic document PDF parser that understands LaTeX math and tables.",
        "caveat": "Recorded as `none` on absence: Nougat reads a PDF and emits Markdown, and nothing in its documentation describes removing content from a document. It does not write PDFs at all. What it does not establish: that extracted text is safe. As with every extraction tool in this index, its output is the document's content - and its purpose is to make that content machine-readable, which is the opposite of redaction."
      },
      "processesLocally": true,
      "processesLocallyNote": "A Python package and a model that run on your own hardware. The optional API mode is a local server - the documentation gives it as http://127.0.0.1:8503/predict/ - so even that path keeps documents on the machine. Model weights download from GitHub on first use, which is a fetch rather than a service.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Python package and a model that run on your own hardware. The optional API mode is a local server on 127.0.0.1, so even that path keeps documents on the machine; the only fetch is the model weights."
      },
      "license": "MIT for the Nougat codebase; CC-BY-NC for the model weights, permitting non-commercial use only. The repository LICENSE is MIT and its copyright line is Meta Platforms, Inc. and affiliates; the README states the code/weights split explicitly. No commercial weights licence or paid tier is offered. The PyPI package is nougat-ocr and its current public release is 0.1.17 (uploaded 2023-10-04); the repository source declares 0.1.18, but that is not a published package release. GitHub releases are model-weight releases 0.1.0-small and 0.1.0-base (22 August 2023), not a software version.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli",
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting academic-document content with Nougat, where the README documents a visual encoder/decoder that reads a PDF and emits a .mmd Markdown file, mostly compatible with Mathpix Markdown, with LaTeX mathematics and tables. The CLI accepts one or more PDFs, a directory or a line-delimited PDF list, supports page ranges for a single PDF, selects the default 0.1.0-small or optional 0.1.0-base model tag, and writes one .mmd per PDF; it documents [MISSING_PAGE] failure output and the --no-skipping heuristic switch. The scope records academic PDF transcription to Markdown/LaTeX/tables and the documented CLI selection, and makes no generic PDF object/text extraction, semantic validation, editing, redaction, conversion back to PDF, signing or repair claim",
        "ocr": "running neural OCR/transcription for academic PDFs with Nougat, where the paper describes a Visual Transformer performing an OCR task that processes scientific documents into a markup language, and the README documents raw page text with equations and tables emitted as per-document Markdown. The optional local API is nougat_api at http://127.0.0.1:8503/predict/, accepting a PDF and optional start/stop page parameters. The scope records neural OCR/transcription of academic PDFs and the local API, and makes no general image OCR, broad-language, layout-understanding, guaranteed-accuracy, editing, redaction, conversion, signing or repair claim; English works best, other Latin-based languages might work, and Chinese/Russian/Japanese will not work"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 440,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://github.com/facebookresearch/nougat (README, LICENSE, setup.py, _version.py, app.py, releases 0.1.0-small/base); https://facebookresearch.github.io/nougat/ (project page, Meta copyright); https://arxiv.org/abs/2308.13418 (paper, 2023); https://pypi.org/project/nougat-ocr/ (0.1.17); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/nougat/"
    },
    {
      "slug": "nutrient",
      "name": "Nutrient",
      "tagline": "Commercial PDF SDK with a client-side web SDK and self-hosted document engine.",
      "websiteUrl": "https://www.nutrient.io/",
      "summary": "Nutrient, formerly PSPDFKit, sells a family of document SDKs whose web component runs in the browser and can render, annotate, edit, sign, redact and password-protect PDFs on the client. Alongside the client-side web SDK it offers a self-hosted Document Engine and cloud document APIs for heavier server-side work. Licensing is commercial and component-based, sold as annual subscriptions negotiated with sales, and unlicensed rendering watermarks the output.",
      "bestFor": "Product teams shipping a closed-source web or mobile app that specifically need in-browser encryption and destructive redaction, and that can commit to a negotiated annual SDK subscription.",
      "watchOutFor": "No SDK price is published at all, so cost and scope can only be established through a sales conversation. Features such as redaction are licensed as separate components rather than included by default, and unlicensed renders are watermarked. Licensing is product-specific rather than uniformly annual: annual licensing for the Web SDK and Document Engine, with separate usage and subscription models for the hosted APIs. The official evaluation is normally 30 days and watermarked with no licence key or payment information required, which is evaluation access rather than ongoing free production use. Windows, Linux and server SDK scope belongs in the edition fields. The Impressum lists Nutrient at its Raleigh address together with PSPDFKit GmbH in Vienna, Orpalis Imaging SAS in Paris and Muhimbi Ltd in the United Kingdom, all trading as Nutrient, so the contracting entity depends on the region and should be confirmed on the order rather than assumed from the brand alone. Redaction requires application before final export and does not automatically sanitise all metadata, attachments or hidden content, and that limitation sits beside the removal badge.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Nutrient",
      "platforms": [
        "web",
        "mac",
        "ios",
        "android",
        "api",
        "self_hosted",
        "windows",
        "linux"
      ],
      "launchedYear": 2011,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "sign",
        "compress",
        "ocr",
        "convert"
      ],
      "jobScores": {
        "edit": 85,
        "protect": 85,
        "sign": 85,
        "compress": 70,
        "ocr": 70,
        "convert": 70
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://nutrient.io/guides/web/redaction/programmatically/",
        "quote": "Redaction annotations are created via RedactionAnnotation and permanently applied via NutrientViewer.Instance#applyRedactions(). … Do not allow final export before applyRedactions() succeeds when compliance/sanitization is required.",
        "caveat": "Vendor documentation for a developer SDK, not a test we ran. It describes the same two-step trap as Aspose and Bluebeam and names it more bluntly than either: creating the annotation is not the redaction, and the vendor’s own warning is not to export before applyRedactions() succeeds. A document exported after marking but before applying looks redacted and is not. Nothing here establishes anything about the separately-branded cloud product."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the component. The client-side Web SDK runs in the browser or the application on the user’s device, while Document Engine and the hosted APIs process on a server, so the local-processing badge belongs to the client-side SDK rather than to the family. Customer-hosted does not mean no network calls either, because the licensing guide describes online licence validation, so any air-gap capability has to specify the licence mode. Multiple regions needs a particular managed service or customer deployment source.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Nutrient Web SDK running client side, Self-hosted Document Engine and server SDKs. On their servers: Document Engine, hosted APIs and online licence validation. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary commercial, component-based licensing sold as annual subscriptions with multiyear terms. Client-side SDKs (Web, iOS, Android, Flutter, React Native, MAUI) build on the Viewer as the foundation with components such as Annotations, Forms, Digital Signatures, Redaction, Document Comparison or Document Editor licensed on top, while the server SDKs (.NET, Java, Python, Node.js) and Document Engine base covers core processing with additional components licensed on top. Air-gapped deployments require an offline licence specified at procurement.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library",
        "browser",
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Nutrient Web SDK running client side",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Document Engine, hosted APIs and online licence validation",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted Document Engine and server SDKs",
          "processing": "customer_server",
          "platforms": [
            "self_hosted",
            "linux",
            "windows",
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF documents with the Nutrient SDK, where the Editing solution page and its FAQ describe text editing that modifies existing text directly within the PDF with font styles, sizes and colours, image manipulation to add, remove or edit images, page management to add, rotate, reorder and delete pages, annotations such as comments and highlights, and a Content Editor component, with the Document Editor component covering merge, split, rotate and reorder of pages; the page lists the editing solution as supported on Web, .NET, Python, iOS, Android, Mac Catalyst, Java, Salesforce, MAUI, React Native, Flutter and visionOS, and the scope is the documented editing and page operations, with no claim of DOCX authoring, which is the separate Document Authoring product, and no fidelity guarantee",
        "protect": "protecting PDF documents with the Nutrient SDK, where the Redaction solution page describes pixel-perfect redaction with audit-ready tracking, AI-assisted detection of sensitive content with pretrained patterns such as emails, credit cards and names, OCR-backed redaction of scanned or image-based text, custom rules with human-in-the-loop confirmation, natural-language redaction through the AI Assistant with a review step, pattern and regex redaction through the REST Redaction API, and availability via SDKs, Document Engine or cloud APIs; the Security solution page adds permission controls to restrict printing, copying and editing, password and permission assignment, watermarking and audit logging, and its security tools list irreversible redaction and cryptographic signatures; the scope covers the documented redaction and document-protection controls, keeps signing as the separate sign job, and makes no encryption-algorithm claim because no AES or similar algorithm is stated on the pages read",
        "sign": "signing PDF documents with the Nutrient SDK, where the Signing solution page documents electronic signatures in which users draw, type or upload a signature through a customizable UI, digital signatures using X.509 credentials for authenticity, integrity and tamper detection, multiple signers in ordered or simultaneous flows, signature validation and integrity checks with trust-chain verification, timestamps, revocation data and long-term validation, metadata and audit trails that capture input method, timestamp and IP address, and compliance with standards named as PAdES, CAdES, eIDAS and ETSI; the page lists Web, .NET, Python, iOS, Android, Salesforce, MAUI, React Native and Flutter as supported platforms, and the scope keeps the electronic and certificate-based signature routes distinct as the page does, with no claim of a certificate authority, timestamping authority or certification body relationship",
        "compress": "compressing PDF documents with the Nutrient SDK, where the PDF Compression solution page offers compression on the server through the Document Engine optimization endpoint, on the desktop and server through the .NET SDK's GdPicturePDFReducer API with more than 25 parameters for compression algorithms, content removal and image optimization, and on mobile through the iOS and Android SDKs with on-device save strategies that remove unreferenced objects and rewrite the document structure; the page also documents MRC compression, which separates text, graphics and image layers and compresses each, linearization for fast web viewing, and batch processing; the supported platforms named are Document Engine, .NET, iOS and Android, and no size-reduction percentage, quality threshold or lossless guarantee is claimed",
        "ocr": "running optical character recognition with the Nutrient SDK, where the OCR page describes transforming image-based PDFs into searchable and selectable content, choosing languages and specific pages and configuring whether to prioritise characters, words or paragraphs, generating searchable PDFs whose text layer is embedded beneath the visual content while preserving the original layout, processing offline on mobile through the iOS, Android, Mac Catalyst, React Native and Flutter SDKs, language selection with multilingual detection and fallback, and OCR triggered through the Web SDK or Document Engine; the page states that OCR supports more than 30 built-in languages including non-Latin character sets, and it distinguishes OCR from the separate Data Extraction component that adds handwriting, table and equation recognition through the Python and Java SDKs and optional Claude or OpenAI VLM processing; the scope records the 30-plus language statement as the vendor's claim and makes no accuracy figure claim",
        "convert": "converting documents with the Nutrient SDK, where the Document Conversion solution page documents Office conversion of DOCX, XLSX and PPTX to PDF with layout and style preservation, PDF/A and PDF-to-PDF/UA conversion, conversion of PDF, Office, image and CAD files covering more than 100 file types through the .NET SDK, image conversion for JPG, PNG and TIFF files with optional OCR, resolution and compression control and metadata injection, and combination of conversion with OCR and compression; it also lists the conversion solution on Web, .NET, Python, iOS, Android, Mac Catalyst, Salesforce, MAUI, Flutter and visionOS and notes the cloud DWS platform; the scope records the more-than-100 file types and layout preservation as vendor claims, and makes no fidelity guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 364,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "nutrient.io (home, SDK pricing, legal); Nutrient web SDK guides on programmatic redaction, password protection, permissions and password-protected PDFs; the Nutrient SDK Master Subscription Agreement PDF; company history page; cloud Viewer API pricing page.",
      "profileUrl": "https://dialegein.com/products/nutrient/"
    },
    {
      "slug": "ocrmypdf",
      "name": "OCRmyPDF",
      "tagline": "Command-line tool and Python library that adds a searchable OCR text layer to scanned PDFs.",
      "websiteUrl": "https://ocrmypdf.readthedocs.io/en/latest/",
      "summary": "OCRmyPDF is an MPL-2.0 Python command-line tool and importable library, currently at 17.13.0 (28 September 2026), that adds a searchable OCR text layer to existing scanned PDFs. It rasterises pages, runs Tesseract over the images, and writes the recognised text back as an invisible layer so a scan becomes searchable and copyable while retaining its page images. It can deskew, rotate, clean, optimise and convert to PDF/A, write a sidecar text file containing OCR text, use multiple CPU cores, run as a Python API/CLI, and be deployed through native packages, Docker or watched-folder/batch workflows. Tesseract and its language packs are external dependencies; accuracy is bounded by Tesseract, handwriting is unsupported, and multi-column layouts can be merged or garbled. It does not extract arbitrary text to other formats, edit body content, redact, sign, produce semantic accessibility remediation or understand scanned content beyond OCR; sidecar text is OCR output, and generic extraction should use a separate text extractor.",
      "bestFor": "Archivists and integrators who need repeatable, automatable OCR over large scan collections on their own hardware, with a searchable text layer and optional PDF/A output.",
      "watchOutFor": "Accuracy is bounded by Tesseract: handwriting is not recognised, each language needs its own installed language pack, and multi-column layouts can be merged or garbled. OCR adds a hidden text layer to scanned page images; it does not edit or reflow the document's visible body text, remove content, redact, sign, perform semantic accessibility remediation or understand arbitrary scanned content. A sidecar text file is OCR output, not a general extraction API; OCRmyPDF's documentation recommends a text extractor such as Poppler pdftotext for that. Tesseract is an external dependency, and pikepdf/pypdfium2, Ghostscript or other rasterizers have their own licensing and installation requirements; the MPL-2.0 project licence is not the whole dependency answer. The bundled Flask/Streamlit HTTP demo wrapper has no authentication and is not for public deployment. Native Windows, WSL/Cygwin, macOS, Linux, FreeBSD and Docker paths differ in available dependencies and quality; check the platform-specific install notes.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "James R. Barlow",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "compress"
      ],
      "jobScores": {
        "ocr": 90,
        "compress": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://ocrmypdf.readthedocs.io/en/latest/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "A locally installed program, Python library or Docker image running on the caller's own machine/hardware; the OCRmyPDF project itself operates no hosted processing service. The documentation shows native Windows, WSL/Cygwin, macOS, Linux, FreeBSD and Docker installation paths. The bundled Flask/Streamlit web wrapper is documented as a demonstration without authentication, not a public hosted service. Network I/O is controlled by the caller; local processing is architectural rather than a guarantee that every deployment is air-gapped.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Command-line tool and Python library, usually run on your own machine or in your own container. No vendor service in the path."
      },
      "license": "MPL-2.0 for the OCRmyPDF project itself. Current PyPI metadata for 17.13.0 requires Python >=3.11 and lists fpdf2, img2pdf, packaging, pdfminer.six, pikepdf[pdfa], Pillow, pluggy, pydantic, pypdfium2, rich, typing-extensions and uharfbuzz as dependencies; Tesseract is an external OCR dependency. Ghostscript is optional/alternative depending on the rasterizer, and its AGPL-3.0 licence matters if it is installed or redistributed. The bundled Flask/Streamlit demo is not a hosted service.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "adding a searchable optical-character-recognition text layer to existing scanned PDFs with OCRmyPDF: rasterising page images, running Tesseract with the requested language packs, and writing the recognised text back as an invisible layer so the PDF becomes searchable/copyable, with documented deskew, page-rotation, unpaper cleaning and image optimisation, PDF/A output modes, sidecar OCR text and batch/watch-folder workflows. The scope records OCR/searchable-text-layer generation and the documented image-processing/output options, and explicitly excludes generic text extraction to arbitrary formats, editing or reflowing the visible body text, OCR of handwriting, redaction/content removal, digital signatures, semantic accessibility remediation/validation and understanding of arbitrary scanned content",
        "compress": "reducing PDF size through OCRmyPDF's image-oriented optimizer, which runs after a successful OCR: lossless optimisation at the default level and optional lossy optimisation at higher levels, with the output size not guaranteed to decrease"
      },
      "inputs": [
        "PDF"
      ],
      "outputs": [
        "PDF with a searchable text layer"
      ],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 92,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 0,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://pypi.org/project/ocrmypdf/ (17.13.0, 28 September 2026, Python >=3.11, MPL-2.0, author James R. Barlow, dependencies; read 2026-10-16); https://github.com/ocrmypdf/OCRmyPDF (MPL-2.0, created 2013-12-20, last push 2026-10-12, latest release v17.13.0; read 2026-10-16); https://ocrmypdf.readthedocs.io/en/latest/ (OCR text layer, searchable output, image processing, PDF/A, sidecar, Docker, native/WSL/macOS/Linux paths); /cookbook.html (deskew/rotate/clean/optimize, sidecar, extraction note); /api.html (Python API); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/ocrmypdf/"
    },
    {
      "slug": "okular",
      "name": "Okular",
      "tagline": "KDE's free multi-format document viewer for PDF, EPub, comics and images.",
      "websiteUrl": "https://okular.kde.org/",
      "summary": "Okular is the KDE desktop document viewer, currently 26.08.2 (8 October 2026). It opens PDF plus a long list of other formats and supports reading and navigating documents: contents/outline and thumbnail sidebars, bookmarks, text selection and copy, a magnifier, and viewing annotations, form fields and digital signatures (including signature validity/modification checks). It can also annotate PDFs, fill forms and create signatures, which are handled as separate annotation/form/signing capabilities rather than body-content editing. It is a reader, not a PDF content editor: existing body text, images and page layout cannot be changed. Linux packages are the primary official distribution; Windows is recommended through the Microsoft Store; macOS builds are offered only as untested nightlies. GPL-2.0-or-later, no account, no price, no hosted service.",
      "bestFor": "Linux desktop users, and Windows users who install it from the Microsoft Store, who want a free GPL reader with strong annotation and signature support.",
      "watchOutFor": "It annotates rather than edits: existing body text and page content cannot be changed. macOS builds are offered only as untested nightlies, and Windows installation is recommended through the Microsoft Store; Linux packages are the primary official distribution. Viewing and navigation are not OCR, text extraction, format conversion, merging, redaction or accessibility validation. Annotation overlays are not redaction, and signature viewing/verification is not a legal-certification guarantee. No account or hosted service is involved; the app is GPL-2.0-or-later and free.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "KDE",
      "platforms": [
        "linux",
        "windows",
        "mac"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "sign",
        "edit"
      ],
      "jobScores": {
        "view": 80,
        "sign": 60,
        "edit": 45
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://okular.kde.org/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "An installed desktop application with no service component: documents are opened, rendered, searched, annotated and saved on the local machine. No Okular account or hosted processing is involved. External links/resources in a document follow the user's own network access.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An installed desktop application with no service component. Documents are opened, rendered, annotated and saved on the local machine."
      },
      "license": "GPL-2.0-or-later. Okular is Free Software developed by the KDE community; the app page lists GPL-2.0+ and GFDL-1.3 for documentation. No proprietary edition, account, hosted service or price applies.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing and navigating documents with Okular, including PDFs: opening/rendering pages, contents/outline and thumbnail sidebars, bookmarks, text selection and copy, magnifier, page navigation, and inspecting annotations, form fields and embedded digital signatures (including signature validity and modification checks). The scope records reading/navigation/inspection only; it does not claim PDF body-text/image/layout editing, OCR, text extraction, conversion, merging, redaction, accessibility validation or legal certification, and annotation/signature creation belongs to the separate edit/sign scopes",
        "sign": "a certificate, and checking one",
        "edit": "annotate, not existing text"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 775,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://okular.kde.org/ (26.08 released 20 August 2026; viewing, annotations, text selection, signature verification/creation; GPLv2+; read 2026-10-16); https://apps.kde.org/okular/ (release 26.08.2 dated 2026-10-08; supported formats and platforms; GPL-2.0+/GFDL-1.3; read 2026-10-16); https://okular.kde.org/download/ (Linux, Windows Microsoft Store, macOS/Windows nightlies; read 2026-10-16); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/okular/"
    },
    {
      "slug": "onedrive-document-scanning",
      "name": "Microsoft OneDrive document scanning",
      "tagline": "Phone scanning to PDF in OneDrive, Microsoft's official Lens replacement.",
      "websiteUrl": "https://support.microsoft.com/en-us/onedrive/scan-a-whiteboard-document-business-card-or-photo-in-onedrive-for-android",
      "summary": "The OneDrive mobile apps include a scanning feature, which Microsoft names as the recommended replacement for the retired Microsoft Lens app. You tap Scan, choose a mode for whiteboards, documents, business cards or photos, capture with flash control, then crop, rotate and apply filters - and on iOS add text or highlight part of the scan. Multiple captures combine into one PDF during the same scan flow, saved into OneDrive rather than to the phone: Android supports up to 10 pages/images and iOS up to 30 in a multi-page scan. Files are automatically saved as PDFs in OneDrive, so an account and cloud storage are part of the workflow. It is a scan-to-OneDrive feature, not a general PDF merger or editor; PDF text recognition/search is a separate rolling-out OneDrive capability and export/searchability was not tested here.",
      "bestFor": "Phone users who need paper, whiteboards or receipts turned into PDFs that land in OneDrive automatically, without a third-party scanner app.",
      "watchOutFor": "Microsoft states OneDrive does not support saving scans locally on your device, an account is required, and multi-page limits differ by platform - ten pages on Android, thirty on iOS. The 'merge' is multiple captures combined into one PDF during the scanning flow, not merging arbitrary existing PDFs, and the 'edit' is crop/rotate/filter plus iOS-only add-text/highlight on the captured image, not editing an existing PDF's body text, images or layout. It does not redact content, sign PDFs, validate accessibility or provide general OCR/text extraction; Microsoft has a separate guide for recognising/searching/copying text in scanned PDFs in OneDrive on Android and iOS, marked as rolling out, but that does not establish whether recognition is embedded in the saved file or whether an exported PDF carries a searchable layer. No export was tested. The product is not Microsoft Lens, SharePoint or another Microsoft scanner app; it is the OneDrive mobile scanning feature.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Microsoft Corporation",
      "platforms": [
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "merge",
        "edit",
        "ocr"
      ],
      "jobScores": {
        "convert": 60,
        "merge": 55,
        "edit": 50,
        "ocr": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://web.archive.org/web/2025/https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage",
        "quote": null,
        "caveat": "The WEAKEST SOURCE IN THIS CAMPAIGN, and the caveat is the reason to say so. Microsoft’s support pages render from JavaScript and the Internet Archive has no snapshot of the scanning help article, so the page read is Microsoft’s OneDrive product page - which is about OneDrive as a whole rather than about the document-scanning feature this record covers. It does not mention redaction, and that is a weaker statement than the same finding on a page about the feature. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "The capture/crop/rotate/filter step happens in the mobile app, but Microsoft's help pages say scans are automatically saved as PDFs to OneDrive and that OneDrive does not support saving scans locally on the device. Treat the overall feature as cloud-backed: account required, output stored in OneDrive; OCR/text recognition is a separate rolling-out service feature, and no all-local or offline guarantee is made.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A feature of the OneDrive mobile app, so a browser probe cannot drive it. It is also a cloud feature: Microsoft states scans are saved into OneDrive and that OneDrive does not support saving them locally."
      },
      "license": "Proprietary Microsoft service/app. OneDrive document scanning is free to use with a Microsoft account, subject to OneDrive storage quotas and any Microsoft 365 subscription storage limits. No separate scanner price, source licence or self-hosted edition is offered; paid OneDrive storage plans are storage, not a scanner licence.",
      "openSource": null,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "ios",
          "name": "iOS",
          "processing": "vendor_cloud",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "vendor_cloud",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "phone photos captured and saved as a PDF; not a general file converter",
        "merge": "combining multiple page/image captures into a single PDF during the OneDrive mobile scanning flow: on Android, multi-page scanning is available in OneDrive 6.5+ with a maximum of 10 pages/images; on iOS, it is available in 11.31.5+ with a maximum of 30. The scope records only same-flow capture combination into one scan PDF; it does not claim merging arbitrary existing PDFs, inserting captured pages into an existing PDF, reordering existing PDFs or general PDF merge behavior",
        "edit": "editing a scan capture in the OneDrive mobile scanning flow before it is saved: crop, rotate and change the selected filter (Whiteboard, Document, Business Card or Photo; iOS also exposes lighting/grayscale modes), plus iOS-only add-text and highlight on the captured image. The scope records only pre-save scan-image adjustments/markup; it does not claim editing an existing PDF's body text, images or layout, redaction, OCR, text extraction, signing, accessibility or general PDF editing",
        "ocr": "recognising text while viewing on Android and iOS, rolling out; export behaviour untested"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 29,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://support.microsoft.com/en-us/onedrive/scan-a-whiteboard-document-business-card-or-photo-in-onedrive-for-android (Android scan: multi-page up to 10, combine into one PDF, crop/rotate/filter, auto-save PDF to OneDrive; read 2026-10-16); https://support.microsoft.com/en-us/onedrive/scan-a-whiteboard-document-business-card-or-photo-in-onedrive-for-ios (iOS scan: multi-page up to 30, crop/rotate/add text/highlight/filter, auto-save PDF; read 2026-10-16); https://support.microsoft.com/en-us/lens/retirement-of-microsoft-lens (Lens retirement and OneDrive recommendation; read 2026-10-16); OneDrive/Microsoft 365 storage terms for account/quota context; read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/onedrive-document-scanning/"
    },
    {
      "slug": "opendocscan",
      "name": "OpenDocScan",
      "tagline": "A document scanner in the browser: photograph a page, straighten it, read the text and build a searchable PDF.",
      "websiteUrl": "https://opendocscan.com/",
      "summary": "OpenDocScan turns a phone photograph of a page into a scan. It outlines the sheet as you frame it, straightens the perspective so an angled photo comes back rectangular, cleans the lighting, adds pages in any order and builds a multi-page PDF with a text layer that the library can search. Recognition runs in the browser with a bundled English model, and the working copy of a scan lives in the browser's own storage rather than on a server. It is free with no paid tier, no required account, no watermark and no page limit, and the source is dual licensed MIT or Apache-2.0. The text recognition is English only and its invisible text layer is Latin script only, which the project documents in its own README: CJK pages are rejected rather than mapped, and characters outside WinAnsi are dropped from the searchable layer. The browser version is the complete product; native Android builds are explicitly early and not yet feature-complete. No tagged release/version is published, so none is asserted.",
      "bestFor": "Somebody with a phone and a stack of paper who wants PDFs they can search, and who would rather the pages were never sent to a scanner service.",
      "watchOutFor": "Recognition is English only, and the project says what that means in practice: a page of Chinese, Japanese or Korean comes back as Latin-looking strings rather than nothing, so every page is checked against word confidences and the model's own dictionary, and a page that fails gets no text layer and no entry in library search. The invisible text layer is Latin-script only and uses unembedded Helvetica with WinAnsi encoding, so words it cannot encode are dropped rather than mangled. The searchable part of 'scan to searchable PDF' is therefore an English/Latin-script feature. The library lives in one browser profile; clearing site data clears it, and it does not sync to other devices. No required account, but an optional account exists for credits; the scanner itself needs none. It cannot edit an existing PDF, read handwriting, redact, sign, extract arbitrary text through a programmatic API, validate accessibility or convert existing PDFs. Native Android builds are early and not feature-complete. The browser version is the complete product.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web"
      ],
      "launchedYear": null,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "convert"
      ],
      "jobScores": {
        "ocr": 78,
        "convert": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-10-14",
        "source": "https://opendocscan.com/",
        "caveat": "Recorded as none from the feature list rather than from a denial. The controls are import, scan, page order, page shape, compression, enhance, black and white, and export, and neither the site nor the README's own known limits section mentions redaction. A scanner that turns photographs into a PDF has no content to remove, so this is a finding about scope rather than a claim that they handle redaction well."
      },
      "processesLocally": true,
      "processesLocallyNote": "The scanner, recognition model and PDF build run in the browser tab. The project's README says the Rust scanning module has no HTTP client, and the earlier review measured an image being processed with the network off after the app loaded; scans are stored in IndexedDB, not uploaded. An optional account is for credits, not scanning. A page-view counter request to the project's own server is separate from document processing, so 'local' describes the document/OCR path rather than every request the page can make.",
      "locality": {
        "verdict": "no_upload_observed",
        "label": "no upload observed",
        "testedAt": "2026-10-21T11:49:00.216Z",
        "method": "Playwright with a uniquely marked test file: a PDF for most tools, and a marked PNG for tools that only accept pictures. Chromium does not expose file bytes to the debugger, so we observe that a multipart request carried a redacted file part and record the host it went to. We cannot confirm the contents."
      },
      "license": "Dual-licensed MIT OR Apache-2.0, at the user's option, per the project README. The GitLab project is open-docscan/OpenDocScan; no company owner or legal entity is documented, so owner remains null. The browser app is free with no paid tier, no watermark and no page limit; an optional account exists for carrying credits across the project's apps and is not required for scanning.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Browser application",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "building a searchable PDF from photographed/imported page images with OpenDocScan's bundled English OCR model: recognising English text on-device in the browser, gating pages by word confidence and dictionary checks, and writing an invisible Latin-only text layer (unembedded Helvetica/WinAnsi) behind the page image so the exported PDF/library can be searched. The scope records English OCR and searchable-PDF text-layer generation only; it excludes CJK/other-language recognition, handwriting OCR, arbitrary text extraction APIs, existing-PDF editing, redaction, signing, accessibility validation and hosted-service processing, and notes that pages failing the English gate get no text layer",
        "convert": "images to PDF only"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 79,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://opendocscan.com/ (browser scanner, features, privacy, free/no account; read 2026-10-16); https://gitlab.com/open-docscan/OpenDocScan (project created 2026-10-08, last activity 2026-10-14; README dual-licence, English OCR, Latin-only text layer, image capture, multi-page PDF, offline/local library; read 2026-10-16); https://gitlab.com/open-docscan/OpenDocScan/-/raw/main/README.md (known limits and licence; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/opendocscan/"
    },
    {
      "slug": "opensign",
      "name": "OpenSign",
      "tagline": "Open-source e-signature you can self-host, or use free in their cloud.",
      "websiteUrl": "https://www.opensignlabs.com/",
      "summary": "OpenSign is an open-source e-signature platform built as a free alternative to DocuSign. It covers multi-signer workflows, signing links and order, reusable templates, typed/drawn/uploaded signatures, emailed one-time-code verification for guest signers, document expiry/rejection, audit trails with completion certificates, P12 document sealing and an API. The current GitHub release is v2.41.3 (21 August 2026), licensed AGPL-3 with limited carve-outs. You can use the vendor's hosted cloud version free or deploy the same platform yourself with Docker; self-hosting is the main reason to choose it over a commercial signer. Signing is a server-backed workflow, not an in-browser PDF operation, and it prepares and collects signatures rather than editing, OCRing, redacting or restructuring the PDF's content.",
      "bestFor": "Teams that want e-signature they can self-host and audit, or budget-conscious users who need a lot of signing without a per-user bill.",
      "watchOutFor": "Self-hosting is real work: the current main-branch docker-compose mounts a data volume at /data/db and a separate named volume for document files, which indicates persistence across ordinary restarts. That is a configuration reading, not a durability or backup test, and deleting the volumes is a different operation; pin deployment guidance to a release or commit rather than a moving branch. Plan details, file limits and cloud storage location are not established from the pages read; the site advertises unlimited free signing, but paid plans/advanced features exist and no price is published in readable form here. The free and paid self-hosted editions differ: the official API token guidance says free self-hosted installations require a paid plan for API access, so not every feature is available in the community edition. The AGPL-3 licence and carve-outs matter for redistribution. Residency is edition-specific: self-hosted data stays on your infrastructure, while the vendor cloud's location is not verified. Signing certificates, audit trails and completion certificates are workflow/technical evidence, not a legal-certification guarantee; signature validity depends on jurisdiction, configuration and the parties' process, and no legal advice is given. OpenSign does not edit PDF content, OCR, redact, remediate accessibility or provide general PDF protection.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "OpenSign Labs",
      "platforms": [
        "web",
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "sign",
      "jobs": [
        "sign"
      ],
      "jobScores": {
        "sign": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.opensignlabs.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Signing is server-backed rather than browser-performed. The self-hosted Docker deployment runs on the customer's own infrastructure and keeps document data there; the hosted web/API editions run on OpenSign's cloud. This is not an all-local claim, and the cloud storage location is not established by the pages read. The main-branch docker-compose has data/document volumes for ordinary restart persistence, which is a configuration reading rather than a durability or backup test. Product-level data residency is unknown because the vendor cloud location is not established; the self-hosted edition's data remains on the customer's infrastructure, but that is an edition-specific fact, not a cloud-location claim.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: The Docker deployment. On their servers: The free hosted version, The hosted API. A single answer for the whole product would be wrong for one of them."
      },
      "license": "AGPL-3.0 with repository carve-outs: content under apps/OpenSignServer/cloud/customRoute, if present, has its own licence, and third-party components retain their original licences; the rest is GNU Affero GPL. The GitHub API reports NOASSERTION because of those carve-outs, but the LICENSE file and README identify AGPL-3. The project is open source/self-hostable; hosted plans or advanced features may be paid, and the free hosted/self-hosted tiers are documented as unlimited for signing.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "http"
      ],
      "dataResidency": "unknown",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "The free hosted version",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "The hosted API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "The Docker deployment",
          "processing": "customer_server",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "running a server-backed electronic signature workflow in OpenSign: uploading a PDF, adding recipients and signing fields/templates, configuring signing order or links, using typed/drawn/uploaded signatures, email one-time-code verification for guest signers, expiry/rejection settings, and downloading the completed document with an audit trail/completion certificate and P12 document sealing. The scope records document preparation and signature collection, not legal certification, signature-law compliance guarantees, PDF body editing, OCR, redaction, accessibility remediation or general PDF protection; self-hosted Docker and the vendor cloud are separate processing editions"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 196,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://github.com/OpenSignLabs/OpenSign/releases/tag/v2.41.3 (v2.41.3, 21 August 2026; read 2026-10-16); https://github.com/OpenSignLabs/OpenSign (AGPL-3 LICENSE with carve-outs, created 2023-10-02, last push 2026-10-16; read 2026-10-16); https://www.opensignlabs.com/ (unlimited free signatures, completion certificate, cloud free plan; read 2026-10-16); https://www.opensignlabs.com/faqs (free hosted/self-hosted, paid API/advanced features, P12 seal/completion certificate, no prices; read 2026-10-16); https://docs.opensignlabs.com/docs/API-docs/v1.1 (API documents/templates/webhooks); README (Docker, audit trail, API, AGPL); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/opensign/"
    },
    {
      "slug": "pac",
      "name": "PAC",
      "tagline": "Free Windows accessibility checker for PDF/UA and WCAG, with local AI-assisted semantic checks.",
      "websiteUrl": "https://pac.pdf-accessibility.org/en",
      "summary": "PAC is axes4's free Windows desktop checker for PDF accessibility. The current release is PAC 2026.1, build 26.1.0.0, dated 25 March 2026, and it runs on Windows 10 or Windows 11 with Microsoft .NET Framework 4.8 or higher. It checks many machine-verifiable PDF/UA requirements through the Matterhorn Protocol and WCAG 2.2 AA requirements, adds quality checks, and provides AI-assisted semantic checks that recognise structural elements such as headings, paragraphs, lists, tables and figures and flag layout/tag mismatches. It supports visual/manual review with a screen-reader and structure preview showing what a screen reader should read and in what order, and summary or detailed reports identifying errors. The AI model is bundled and runs locally; the vendor states that PAC and the AI operate offline and do not send documents to the internet or axes4 servers. PAC is a checker, not an editor or remediation tool, and it does not repair documents. Its separate axes4 siblings are axesCheck (hosted check), axesSense (batch, available hosted or locally installed) and axesPAC (API), not part of this desktop product.",
      "bestFor": "Accessibility specialists, remediators and public-sector document teams who need a free, offline PDF/UA and WCAG check on Windows, and who would rather not upload documents to a hosted service.",
      "watchOutFor": "The current release is PAC 2026.1, build 26.1.0.0, dated 25 March 2026. Supported operating systems are Windows 10 and Windows 11 only, with Microsoft .NET Framework 4.8 or higher; there is no released Mac version, though axes4 says one is in development, and there is no Linux version. PAC is a standalone Windows desktop application, not a hosted or API product. axesCheck is a separate hosted tool, axesSense is a separate batch product available as a hosted service or local installation, and axesPAC is a separate API; none of those is part of this record. PAC itself has no command-line or batch checking interface: the FAQ says batch use is not supported and directs users to axesSense, and the documented MSI switches are installer options, not a checking CLI. The vendor states that PAC and its bundled AI operate completely offline and send no data to the internet or axes4 servers; that is vendor documentation and was not independently network-probed. The checks are limited to what a machine can check: full support is for PDF 1.7, PDF 2.0 is best effort, and full PDF 2.0 and PDF/UA-2 support is planned without a release date. AI results are supporting hints rather than official criteria, cannot be dismissed individually, and do not assess alt-text quality or reading-order correctness. The automated checks cannot judge semantic correctness, alternative-text quality or whether reading order makes sense, so human review remains required. A full set of green check marks means only that the automatically checkable requirements passed; the result is not legally binding or a guarantee of accessibility. PAC does not edit, repair, remediate, redact, sign, encrypt, OCR or convert documents. The application is free of charge for all types of applications per the FAQ, subject to the General Terms; no synthetic price is recorded.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "axes4 GmbH",
      "platforms": [
        "windows"
      ],
      "launchedYear": 2010,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "view"
      ],
      "jobScores": {
        "accessibility": 90,
        "view": 45
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://pac.pdf-accessibility.org/en",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Vendor-stated in three independent places, all re-checked against the current release rather than carried over from 2024. The General Terms open with \"PAC operates completely offline. It does not send any data to the Internet nor to the servers of axes4.\" The FAQ answers \"Does PAC access the internet?\" with \"No, PAC does not access the Internet in any way\", and separately confirms the AI model runs locally and that documents are not used to train it. Documentation for the AI checks adds that the AI runs exclusively on the computer running PAC and does not access cloud services. Recorded as reported, not probed.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An installed Windows application that the vendor states operates completely offline, sends nothing to the internet or to axes4 servers, and has no licensing system to check in with. Its 2026 AI checks run on a model shipped inside the application, and the vendor explicitly declined to offer alt-text checking because that would have required a server-side model. Strongest documentary locality claim in the accessibility group."
      },
      "license": "Free of charge for all types of applications under the axes4 General Terms, as stated in the current PAC FAQ; no public source distribution is offered. PAC is a standalone Windows desktop checker from axes4 GmbH; axesCheck, axesSense and axesPAC are separate axes4 products (hosted check, batch/hosted and API routes), not editions of PAC.",
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "checking PDF accessibility with PAC, where the current product and quickstart pages document checks against machine-verifiable PDF/UA requirements through the Matterhorn Protocol and WCAG 2.2 AA requirements, plus quality checks and AI-assisted semantic checks for headings, paragraphs, lists, tables and figures. It provides screenshot/visual review, a screen-reader and structure preview showing what a screen reader should read and in what order, summary and detailed reports identifying errors, and support for the human judgement calls that automated checks cannot make. The scope records accessibility checking, reporting and visual/manual review support; PAC does not repair or edit documents, does not OCR or convert them, and its green results do not prove legal accessibility or semantic correctness because human review remains required",
        "view": "inspecting a PDF in PAC's desktop checker, where the current product page documents opening a PDF by drag and drop, visually reviewing rendered pages, using the screen-reader and structure preview to see what a screen reader should read and in what order, and viewing summary or detailed reports identifying errors. The scope is limited to inspection, visual review and report/preview display inside the accessibility checker; it is not a general-purpose PDF reader, renderer, editor, OCR tool, converter, signer or repair tool, and it makes no semantic-correctness or legal-accessibility guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1251,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://pac.pdf-accessibility.org/en (product), /en/download (2026.1, 26.1.0.0, 25 March 2026, Windows 10/11, .NET Framework 4.8+), /en/resources/faq (free, offline, no CLI/batch, no Mac, legal caveat), /en/resources/general-terms (offline and licensing terms), /en/resources/quickstart-guide/introducing-pdf-accessibility-checker-2026 (PDF/UA, WCAG 2.2 AA, quality checks), read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pac/"
    },
    {
      "slug": "pandadoc",
      "name": "PandaDoc",
      "tagline": "Hosted platform for building, sending and e-signing proposals and contracts.",
      "websiteUrl": "https://www.pandadoc.com/",
      "summary": "PandaDoc is a hosted PandaDoc, Inc. document-automation and e-signature SaaS for building, sending and signing proposals, quotes and contracts. Users create documents from templates, PDFs or DOCX imports, edit content with fields, placeholders, quote-builder items and roles, collaborate and route documents, then send them for e-signature with recipient verification, signing order, audit trails and signed-PDF retrieval. The service runs in the vendor's US or EU data centers, with the EU instance in Frankfurt, Germany, and stores documents and signatures in the hosted account. It is available through the web app, iOS and Android apps, a REST API with a free sandbox and production keys, embedded signing through an iframe or SDK, and webhooks. The current plan comparison lists Free eSign USD 0, Starter USD 19 per user per month billed annually (USD 35 monthly), Business USD 49 annual (USD 65 monthly) and Enterprise by quote. The Free plan guide currently says new Free accounts can send 5 documents per month with 2 recipients per document; older annual Free accounts retain 60 documents per year. Free API access is available only for accounts created after 5 June 2026, with limits, while production API access requires a plan with API entitlement. The service generates documents from templates, PDFs and DOCX imports and produces signature-ready documents; that is the catalog's convert capability.",
      "bestFor": "Sales, legal and operations teams that need reusable quote and contract templates, approval steps and e-signature in one hosted tool.",
      "watchOutFor": "PandaDoc is a hosted SaaS product, not a local or self-hosted library: documents, signatures, account data and audit trails are stored and processed in the vendor's servers, with US or EU (Frankfurt) data-center selection and the US as the primary processing location. It is operated by PandaDoc, Inc., San Francisco, and the MSA/DPA identify PandaDoc as the provider/processor; an order form controls the applicable commercial terms. The Privacy Notice is dated 31 July 2026 and the data-residency page 1 September 2023; the earlier summary date of 12 August 2026 is not used. The current plan comparison lists Free eSign USD 0, Starter USD 19 annual (USD 35 monthly), Business USD 49 annual (USD 65 monthly) and Enterprise by quote. The Free plan guide currently gives new Free accounts 5 documents per month (60 per year on older annual Free accounts), 2 recipients per document, 5 templates, unlimited storage/users/fields; API access is available only for Free accounts created after 5 June 2026 and does not cover OAuth app creation or webhooks, while production API access requires a plan with API entitlement. A free sandbox is available with domain-limited sends and watermarked output; no free production tier beyond the Free eSign entitlement is claimed. No GBP price is published, so priceFromGbp is null and priceBasis is unknown; the old GBP 25.96 was a synthetic conversion of USD 35 monthly and is removed. Editing means creating documents from templates, PDFs or DOCX, changing content with fields and placeholders, quote-builder edits, roles, routing, collaboration, version history and embedded editing; it is not arbitrary existing PDF body-text editing, OCR or permanent redaction. Signing is hosted e-signature with typed or drawn signatures, recipient verification, signing order, audit trails and signed-PDF/audit retrieval, with ESIGN/UETA/eIDAS statements in the vendor's materials; no certificate-backed PDF signature, CA issuance, timestamp trust or universal legal-validity guarantee is made. Conversion is document generation from templates, PDFs, DOCX and CRM/data, not generic Office/PDF conversion, PDF/A or a fidelity guarantee.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "PandaDoc, Inc.",
      "platforms": [
        "web",
        "ios",
        "android",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "sign",
      "jobs": [
        "sign",
        "edit",
        "convert"
      ],
      "jobScores": {
        "sign": 90,
        "edit": 70,
        "convert": 65
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.pandadoc.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Hosted web application: documents are uploaded to PandaDoc’s cloud and recipients sign in the browser. The retention or deletion period is marked unverified rather than stated as lasting the life of the account. The retention or deletion period is marked unverified rather than stated as lasting the life of the account.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Documents are uploaded and stored in their cloud."
      },
      "license": "Proprietary hosted SaaS. No software licence or source licence is published. Use is governed by the PandaDoc Master Services Agreement and the Data Processing Agreement, with the order form or Subscription Terms controlling the service plan, users, volume and fees. The MSA names PandaDoc, Inc. as the provider and the DPA identifies PandaDoc, Inc., 548 Market St PMB 185308, San Francisco, CA, 94104-5401, US, with primary processing activities in the United States. The Privacy Notice last updated 31 July 2026 names PandaDoc, Inc. and its affiliates and describes a hosted SaaS product, website, mobile apps and related services. The vendor offers US or EU data-center selection, with the EU instance hosted in Frankfurt, Germany; the two installations are independent. No source licence or local/self-hosted product is offered.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http",
        "browser"
      ],
      "dataResidency": "multi",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web app",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS app",
          "processing": "vendor_cloud",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android app",
          "processing": "vendor_cloud",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "REST API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "signing documents with PandaDoc, where the plan comparison and API documentation document typed and drawn signatures, signing order, recipient verification, audit trails, signing on all devices, in-person signing, embedded signing through an iframe or SDK, webhooks for sent, opened, completed and declined events, and retrieval of the final signed PDF and audit trail. The vendor's electronic-signature pages discuss ESIGN, UETA and eIDAS, and the plan table marks QES as a paid add-on. The scope records the hosted e-signature workflow, recipient verification, signing order, audit trail and signed-document retrieval, and makes no certificate-backed PDF signature, certificate-authority issuance, timestamp-trust or universal legal-validity guarantee; the vendor's own compliance discussion notes that regional requirements and signature levels vary",
        "edit": "editing and preparing documents with PandaDoc, where the developer and plan documentation document creating documents from templates, PDFs and DOCX imports, the drag-and-drop online editor, file upload, editable documents, fields and placeholders, content and quote-builder changes, document roles, routing, collaboration, inline comments, version history and embedded editing, with redlining and negotiated content locked to higher plans. The scope records the documented document-creation, field, placeholder, content, quote, role, routing, collaboration, version and embedded-editing operations in the hosted service, makes no claim to arbitrary existing PDF body-text editing, OCR or permanent redaction, and keeps the API sandbox limitations separate from production entitlement",
        "convert": "document generation with PandaDoc, where the API documentation documents generating documents from templates, creating documents from PDF, listing and editing existing documents, changing content with placeholders, bundling documents, setting roles and signing order, and sending signature-ready documents, and the Getting Started guide documents creating documents from templates, PDFs and DOCX imports and exporting to Microsoft Word. The catalog's convert job is therefore scoped to document generation and template/PDF/DOCX-based transformation into signature-ready documents, and explicitly makes no generic Office/PDF conversion, PDF/A, image conversion, OCR or fidelity guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "blocked",
        "label": "blocked",
        "httpStatus": 429,
        "latencyMs": 47,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 0
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "PandaDoc help centre (free plan guide, plan comparison, compliance, redlining); developers.pandadoc.com. The marketing domain returned rate-limit errors throughout.",
      "profileUrl": "https://dialegein.com/products/pandadoc/"
    },
    {
      "slug": "pdf-architect",
      "name": "PDF Architect",
      "tagline": "Modular Windows PDF editor from the PDFCreator team, with real redaction.",
      "websiteUrl": "https://www.pdfforge.org/pdfarchitect",
      "summary": "A modular Windows PDF editor from Avanquest pdfforge GmbH, the company behind PDFCreator. A free tier covers viewing, PDF creation and page management; the paid Pro plan at GBP 94 per user per year and Business plan at GBP 146 per user per year add content editing, conversion to and from Word, Excel and PowerPoint, forms, review and commenting, advanced OCR, batch processing, encryption and permissions, digital signatures and an e-signature allowance. Redaction is available from Pro upwards, and the vendor says it permanently deletes the information. The pricing page calls the plans Free, Pro and Business, while the product page calls them Viewer, Professional and Business, and a help article still describes the older PDF Architect 9 Standard, Professional and Pro+OCR licensing.",
      "bestFor": "Windows teams already using PDFCreator, or European organisations that want account-based licensing, MSI and group-policy deployment, and local-by-default processing.",
      "watchOutFor": "The free edition is Windows-only and its comparison table marks Page, Convert and Secure as removed, even though the free card on the same page says it can view, merge and convert PDFs; that internal inconsistency is recorded rather than resolved. Redaction needs a paid plan, and the Secure row is removed on Free. The plan names are inconsistent across current vendor pages: the pricing page sells Free, Pro and Business at GBP 94 and GBP 146 per user per year, the product page calls the same three plans Viewer, Professional and Business, and a help article updated in September 2026 still describes the older PDF Architect 9 Standard, Professional and Pro+OCR licensing, so a review of either generation may not match what is sold now. The Pro plan includes 50 e-signatures a year and Business includes unlimited e-signatures. Microsoft Office 2007 or later is required for plug-in conversion to Word, Excel and PowerPoint. Activation and periodic validation need an internet connection, and without one the product can revert to PDF Architect Free. The OCR language article lists 24 detected languages, while the Business card claims Advanced OCR in 100+ languages, so the language claim is recorded as a source conflict rather than a number. The whiteout tool is also described as deleting content, but the dedicated Redaction tool is the one the vendor describes as permanent removal, and real redaction remains a vendor claim rather than an independently tested result.",
      "pricingModel": "freemium",
      "priceFromGbp": 94,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Avanquest pdfforge GmbH",
      "platforms": [
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "view",
        "merge",
        "sign",
        "ocr"
      ],
      "jobScores": {
        "edit": 85,
        "convert": 80,
        "protect": 80,
        "view": 80,
        "merge": 75,
        "sign": 75,
        "ocr": 70
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support.pdfarchitect.org/hc/en-us/articles/360022491731",
        "quote": "PDF Architect has a Redaction tool. This will permanently delete information from your document. It’s the digital equivalent of redacting physical documents.",
        "caveat": "Vendor support documentation, not a test we ran. That sentence is IDENTICAL, word for word, to PDFsam Enhanced’s article, and both products belong to the same vendor - so it is a support-template statement about a shared component rather than a description of this product. The guide’s tier note records that PDF Architect’s redaction is included from Pro upwards, which this page does not mention."
      },
      "processesLocally": true,
      "processesLocallyNote": "The vendor says core documents stay local by default, and that is a vendor statement rather than a tested guarantee: account activation and e-signature workflows contact services, so no server is not an accurate badge. EU residency is unverified for those hosted workflows, because local support and European ownership do not establish document residency.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: PDF Architect on the desktop. On their servers: Account activation and e-signature workflows. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. The site is run by Avanquest pdfforge GmbH, Axel-Springer-Platz 3, 20355 Hamburg, Germany, registered in Hamburg under HRB 185235, European tax ID DE183155981, with managing directors Eric Gareau and Stephen Siegel, and pdfforge is a registered trademark of Avanquest Software. The current pricing page sells a Free plan and paid Pro at GBP 94 per user per year and Business at GBP 146 per user per year, with a 30-day money-back guarantee, while the product page calls the three plans Viewer, Professional and Business and a help article still describes the older PDF Architect 9 Standard, Professional and Pro+OCR licensing. Activation and periodic validation require an internet connection, and Microsoft Office 2007 or later is required for plug-in conversion to Word, Excel and PowerPoint.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "eu",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "PDF Architect on the desktop",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Account activation and e-signature workflows",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF content with PDF Architect, where the product page says the Edit feature edits a PDF directly without exporting or copying the content elsewhere, and the help article on editing text describes switching to Edit mode, changing text, font, size, colour and bold or italic styling, and notes that scanned documents need OCR; the scope records direct text and content editing and formatting, leaves scanned-page text recognition to the OCR job, and makes no layout-stability guarantee",
        "convert": "converting PDFs with PDF Architect, where the product page says the Create feature converts every printable file format to PDF and the Convert feature converts PDFs into several popular file formats, and the help articles document conversion from PDF to Word, Excel, PowerPoint, HTML, RTF, PDF/A and image outputs; the system requirements state that Microsoft Office 2007 or later is required for plug-in conversion to Word, Excel and PowerPoint; the scope records the documented conversion directions and the Office dependency, with no fidelity guarantee",
        "protect": "protecting PDFs with PDF Architect, where the Secure module help articles document requiring a password to open the document with a selectable encryption level, restricting permissions with a separate password that controls changes, printing and copying, and removing the password later with the same tool; the Redaction tool documents manual and search redaction that permanently deletes information and requires the redaction to be applied after marking, with the vendor describing the whiteout tool separately; the scope records the password, permission and redaction workflow, makes no specific encryption-algorithm claim because the pages name only a choice of encryption level, and keeps the permanent-deletion statement as the vendor's claim",
        "view": "viewing PDFs with PDF Architect, where the product page describes a PDF viewer and editor that lets users create, view and edit PDF files, the free plan card lists a PDF reader for viewing and navigating through PDFs, and the help centre includes reading and annotation material such as the Read Aloud feature; the scope is the documented read and navigate capability available on the Free plan, with no claim about every viewing feature being free",
        "merge": "merging PDFs with PDF Architect, where the product page says the Page feature merges files of different formats into one PDF and can insert and customise page elements, and the help article documents combining multiple file types into one PDF through the Create Convert module with Merge, adding files or folders, adding opened files, removing entries and merging attachments into the result; the scope records the documented combine and page-organisation operations, with no claim about preserving signatures, forms or annotations across a merge",
        "sign": "signing PDFs with PDF Architect, where the help centre documents the Fill and Sign module for adding a signature or initials appearance, placing, resizing, moving and deleting it, and the Separate E-Sign module for preparing, sending and tracking documents for signature with a manifest archiving the signature ceremony; the Secure module also documents digital signatures, and the pricing page includes digital signatures with 50 e-signatures a year on Pro and unlimited e-signatures on Business; the scope separates the placed signature image from the digital signature and the E-Sign service, and makes no independent legal-validity or certificate-authority claim",
        "ocr": "running OCR with PDF Architect, where the help centre documents the OCR module's Recognize Document flow for multi-page scanned documents, Auto and Manual OCR for individual images that makes the recognised text editable in the existing PDF, and an article listing the languages detected by the OCR engine, while the module is included from the Pro plan upwards; the language article lists 24 languages including English, French, German, Italian, Portuguese, Japanese, Russian, Spanish, Arabic, Chinese Simplified and Traditional, Czech, Danish, Dutch, Finnish, Greek, Norwegian, Polish, Slovak, Swedish and Turkish, whereas the Business card claims Advanced OCR in 100+ languages; the scope records the editable-text OCR workflow and the 24-language help list as the specific source, flags the 100+ card as a conflicting source, and makes no accuracy guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1074,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdfforge.org (PDF Architect product, pricing, the secure-features pages covering encryption, permissions and signatures, cross-promotion page, privacy policy); the PDF Architect help centre redaction article read via its help-centre JSON API because the human page returns HTTP 403. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdf-architect/"
    },
    {
      "slug": "pdf-arranger",
      "name": "PDF Arranger",
      "tagline": "Free GPL-licensed desktop app for merging, splitting, rearranging and adjusting PDF pages visually.",
      "websiteUrl": "https://github.com/pdfarranger/pdfarranger",
      "summary": "PDF Arranger is a free, GPL-3.0-or-later Python GTK desktop application, based on pikepdf and GTK3, with Poppler/PyGObject and libhandy for the graphical page view. It is not pure Python: pikepdf/libqpdf and the Poppler/GTK stack are native dependencies. The current public release is 1.14.0, published 23 May 2026; the user manual and setup.py both state 1.14.0. It opens one or several PDFs and shows page thumbnails; users can reorder by drag and drop, copy and paste, reverse or swap pages, move or copy pages between instances, merge and split pages, delete, duplicate, add blank pages, crop borders and margins, resize pages, generate or split booklets, edit metadata, import images (image-to-PDF when img2pdf is available), extract text or images to the clipboard, explode page images into new pages, and save or export the result. It is a local desktop application: there is no server, account, hosted processing or network API. The two catalog jobs are merge and edit, both page/document-level; it does not edit text or images inside a page, OCR scans, redact, sign, encrypt or convert Office documents.",
      "bestFor": "Desktop users who want a free, offline, point-and-click way to fix page order and page geometry instead of uploading documents to a cloud converter.",
      "watchOutFor": "The current public release is 1.14.0, published 23 May 2026; the user manual and setup.py both state 1.14.0, and there is no newer public release or source tag exposed. The project is GPL-3.0-or-later per AppStream and the setup.py source header, although GitHub's repository metadata reports only GPL-3.0. It is free and open source with no price, paid edition, free-tier limit or hosted service. It is a Python GTK application with native dependencies: pikepdf >= 6 and libqpdf, GTK3, PyGObject/PyGObject-Cairo, Poppler GLib and libhandy, plus python-dateutil and packaging; image import needs img2pdf. Do not describe it as pure Python or as running without native libraries. Windows has an official installer, portable ZIP and GitHub Actions nightly builds (nightly downloads require GitHub authentication); the Win32/MSYS2 document is a build-prerequisites guide, not a universal end-user support claim. Linux/BSD packages, Flatpak and Snap are listed, and macOS runs through Nix or a manual Homebrew/GTK3 setup rather than an official signed package. Everything is page-level: text and images inside a page cannot be edited, and the clipboard text/image extraction is a literal page-object operation, not semantic extraction or OCR. The manual documented image import is an image-to-PDF operation and is not a generic Office/PDF conversion claim. It has no OCR, redaction, signing, encryption, document repair or hosted processing. The schema has no desktop/GUI interface value, so interfaces is left empty rather than mislabelling this GUI application as a library, CLI, HTTP or hosted product.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "The PDF Arranger team",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "merge",
      "jobs": [
        "merge",
        "edit"
      ],
      "jobScores": {
        "merge": 80,
        "edit": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/pdfarranger/pdfarranger",
        "quote": null,
        "caveat": "The automated absence check flagged this page, and reading it showed the match was the commit message \"Sanitize language list in preferences dialog\" - incidental, and not a feature. pdfarranger merges, splits, rotates, crops and rearranges pages and does not offer redaction, so the verdict stands on the same negative evidence as the rest of this batch."
      },
      "processesLocally": true,
      "processesLocallyNote": "Inherent to a locally installed desktop application that reads and writes local files. There is no server component and no account.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Desktop application. It reads and writes local files through a graphical window; no server is involved."
      },
      "license": "GPL-3.0-or-later. The AppStream metadata declares project_license GPL-3.0-or-later; setup.py's source header says GNU GPL version 3 or later; the repository COPYING is the GPL version 3 text; setup.py names Jerome Robert as author and The PDF Arranger team as the AppStream developer. GitHub's repository metadata reports GPL-3.0 without the or-later suffix, so the source and AppStream wording is preferred for the licence field. There is no paid edition, hosted service or price.",
      "openSource": true,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "merge": "merging, splitting and arranging whole PDF pages with PDF Arranger, where the user manual documents opening one or several PDFs, viewing page thumbnails, reordering by drag and drop, copy and paste, reverse order, swap odd/even pages, moving or copying pages between instances, splitting pages and documents, merging pages or documents, generating and splitting booklets, selecting pages, and saving or exporting the result. The scope records multi-document page assembly, ordering, split/merge and booklet operations, and makes no claim to edit content inside a page, preserve signatures, OCR, encrypt, redact or convert Office documents",
        "edit": "adjusting whole pages and document-level properties with PDF Arranger, where the user manual documents rotating pages in 90-degree steps, deleting and duplicating pages, adding blank pages, cropping white borders and margins, hiding margins, resizing pages in percent or millimetres, adding margins, merging pages to one sheet, pasting pages as overlay or underlay, editing metadata, importing images (image-to-PDF when img2pdf is installed), extracting text or images from a page to the clipboard, exploding page images into separate pages, and saving or exporting the result. The scope records page-level rotation, cropping, resizing, margin, assembly and metadata operations and the documented literal text/image clipboard extraction and image import, and makes no arbitrary body-text editing, semantic text extraction, OCR, redaction, signing, encryption, generic Office/PDF conversion, repair or hosted-processing claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 376,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 0,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://github.com/pdfarranger/pdfarranger releases, README, setup.py, COPYING, AppStream metadata and User Manual; Win32.md and Binary-packages wiki for packaging. Read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pdf-arranger/"
    },
    {
      "slug": "pdf-candy",
      "name": "PDF Candy",
      "tagline": "Browser PDF toolkit with 90+ tools, plus an offline Windows desktop app.",
      "websiteUrl": "https://pdfcandy.com/",
      "summary": "PDF Candy is a large online toolbox of more than ninety PDF utilities (the About page says 98 tools) - converting between PDF and Office or image formats, merging, splitting, compressing, editing text, annotating, signing, protecting with passwords, watermarking and OCR - run from the browser on the vendor's servers. A separate Windows desktop application, PDF Candy Desktop 3.20, bundles 35+ tools and works offline. The free tier covers most tools with page, hourly and file-size limits, no batch processing and a desktop operations limit.",
      "bestFor": "People who need a fast, no-install conversion or editing job and do not mind uploading the file, plus Windows users who want the same toolkit offline.",
      "watchOutFor": "The browser tools upload the file to PDF Candy's servers, which the vendor says are deleted within two hours, with no backups; a share link is available for seven days. Free use is capped by page and hourly limits, a limited file size, no batch processing and a desktop operations limit, while the 500 MB per-task figure, no hourly limits and priority processing are paid allowances rather than product-wide free maximums. The recorded GBP 4 per month is the displayed monthly equivalent of the Desktop + Web Yearly plan, which is billed annually against a listed GBP 18 per month; Web Monthly is GBP 6 per month and the Desktop + Web Lifetime plan is GBP 99 one-off, so a monthly-billing reader should not take GBP 4 as the monthly price. The offline Windows edition is a distinction rather than a guarantee of tool parity with the web service: the desktop app is PDF Candy Desktop 3.20 with 35+ tools, while the web service advertises more than ninety and the About page says 98. Whiteout is not permanent redaction; our own test of the whiteout tool left the canary text in the PDF text layer under a white rectangle, and the vendor describes whiteout as hiding content. The signing tool adds a text, freehand or image signature and does not document a certificate-based digital signature. The OCR page documents scanned-page recognition without a language list or count and without an accuracy figure. The regions statement is supported by the security page's EU and USA server statement, and the operator address in Cyprus is not used as evidence of processing location.",
      "pricingModel": "freemium",
      "priceFromGbp": 4,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Icecream Apps Limited",
      "platforms": [
        "web",
        "windows"
      ],
      "launchedYear": 2016,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "edit",
        "compress",
        "merge",
        "ocr",
        "protect",
        "sign"
      ],
      "jobScores": {
        "convert": 90,
        "edit": 80,
        "compress": 80,
        "merge": 80,
        "ocr": 70,
        "protect": 65,
        "sign": 65
      },
      "redaction": "covers_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": "https://pdfcandy.com/whiteout-pdf.html",
        "readAt": "2026-10-16",
        "quote": "Whiteout PDF documents to hide specific text, images, or sections on the page.",
        "caveat": "This is a saved-output observation rather than a reading of the tool copy: the saved file gained a white filled rectangle over the marked band while the canary text remained in the text layer, unchanged. The vendor describes the tool as hiding content and does not claim permanent removal, so covering rather than redaction is the honest label. The separate protect tool is password encryption, not redaction."
      },
      "processesLocally": false,
      "processesLocallyNote": "The web tools process files on PDF Candy's servers, which the vendor says are deleted within two hours. The separate Windows desktop app is the opposite: the vendor's FAQ says it operates entirely offline with all processing on your PC.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Windows. On their servers: Web. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. PDF Candy is operated by Icecream Apps Limited, Cyprus, which the privacy policy names as the data controller, with a policy effective 22 July 2025. The plans are the Forever Free plan at 0, Web Monthly at GBP 6 per month, Desktop + Web Yearly at GBP 4 per month billed annually against a listed GBP 18 per month, and Desktop + Web Lifetime at GBP 99 as a one-time payment. The free plan has page and hourly restrictions, no batch processing, a limited file size and a desktop operations limit, while paid plans remove the hourly limits, raise the per-task file size to 500 MB and add priority processing. Payments are processed by Paddle, and the vendor offers a 30-day refund where recurring errors cannot be resolved. Uploaded files and outputs are kept for no more than two hours and permanently deleted, with no backups.",
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting documents with PDF Candy, where the PDF converter page documents converting to and from PDF across more than twenty formats including images JPEG and TIFF, eBooks EPUB, MOBI, FB2, CBR and CBZ, and documents DOC, DOCX, PPT, XLS and ODT, with files processed on the vendor's servers and deleted within two hours; the site also lists individual directions such as PDF to Word, PDF to DOCX, PDF to Excel, PDF to PowerPoint, PDF to image, PDF to TIFF, PDF to ODT, PDF to PDF/A, PDF to SVG, PDF to CSV, PDF to RTF, PDF to MOBI, PDF to GIF and PDF to BMP, and conversion to PDF from Word, JPG, PNG, EPUB, DOCX, Excel, image, PowerPoint, PPTX, HEIC, HTML, DjVu, PAGES, TIFF, TXT, ODT, SVG, CSV, RTF, MOBI, DWG, PUB, XPS, XML, WebP, HEIF and JFIF; the scope makes no fidelity guarantee and claims no format beyond those listed",
        "edit": "editing PDFs with PDF Candy, where the Edit PDF page documents editing text, adding images, highlighting, reordering or inserting pages, annotating and signing, and says no watermark is added; the Edit PDF text page documents adding, deleting, formatting and changing text, says most standard fonts are recognised so style and size can be adjusted, warns that larger edits may shift nearby content, and says scanned papers are handled with OCR; the scope records text and object editing and formatting, leaves scanned-page text recognition to the OCR job, and makes no layout-stability guarantee",
        "compress": "compressing PDFs with PDF Candy, where the Compress PDF page documents two compression modes, Maximum for the smallest output and Recommended for a balance between compactness and quality, and says the compressor keeps text readable and images decent while reducing size, with files deleted within two hours; the scope records the two documented modes, makes no lossless guarantee and claims no specific size-reduction percentage",
        "merge": "merging PDFs with PDF Candy, where the Merge PDF page documents joining several PDF documents, arranging them in any order, including images and reordering pages, with no watermarks and no hidden fees, and says uploads are deleted within two hours; the scope records the combine, order and page operations, with no claim about preserving signatures, forms or annotations across a merge",
        "ocr": "running OCR with PDF Candy, where the PDF OCR page documents recognising text in scanned PDFs to create editable and searchable output, says the tool processes all pages in a single file and preserves the original order, and warns that extremely blurry text may need manual correction; the page does not document a language list, a language count or an accuracy figure, so the scope records the scanned-to-editable-text workflow without a language or accuracy claim",
        "protect": "protecting PDFs with PDF Candy, where the Protect PDF page documents encrypting a PDF with a password so it cannot be opened without the password, and says the encryption mainly restricts opening the file and that locking printing, copying or editing requires the separate permission restriction; the page also documents download, Google Drive or Dropbox output and a share link valid for seven days, with files otherwise deleted within two hours; the scope records the password-protection and permission-restriction workflow and makes no specific encryption-algorithm claim, with the separate Whiteout tool kept out of redaction",
        "sign": "signing PDFs with PDF Candy, where the Sign PDF page documents placing a custom signature as text, a freehand drawing or an image, previewing the pages and applying as many signatures as needed anywhere in the document, and then downloading, sending to Google Drive or Dropbox or generating a share link; the page calls this an electronic signature and the site does not document a certificate-based digital signature, certificate validation or timestamping, so the scope is the electronic signature workflow only and makes no legal-validity or certificate-based guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 71,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "pdfcandy.com (home, pricing, security, privacy policy). Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdf-candy/"
    },
    {
      "slug": "pdf-expert",
      "name": "PDF Expert",
      "tagline": "Readdle's PDF editor and reader for Mac, iPad and iPhone.",
      "websiteUrl": "https://pdfexpert.com/",
      "summary": "PDF Expert is Readdle's Apple-only PDF application for macOS, iPadOS and iOS. It covers reading, annotation and markup, form filling, editing existing text, images and links, page organisation and merging, conversion to and from Word, Excel, PowerPoint, JPG, PNG and TXT, compression with Lossless, High and Medium levels, electronic signing, OCR of scans on Mac, and a PDF Copilot AI assistant. The free download gives a limited feature set and a 7-day trial; premium is sold as a Yearly plan at GBP 72.99 billed annually or a one-time Lifetime plan at GBP 129.99 on Mac only. The current versions are 7.26.2 on iOS and 3.13.4 on Mac. Editing works on the device, while conversion temporarily stores files on Readdle servers for up to three hours and AI features use local models and/or third-party providers.",
      "bestFor": "Apple device users who want a fast, well-designed PDF editor that behaves consistently across Mac, iPad and iPhone.",
      "watchOutFor": "Apple only: the Mac, iPad and iPhone apps are the only native surfaces, and the Mac App Store and iOS App Store are the places the product is distributed. The current GBP pricing page lists a Yearly plan at GBP 72.99 billed annually and a one-time Lifetime plan at GBP 129.99 that is Mac only; the previously recorded GBP 4.99 weekly plan is not on the current page, and the iOS and Mac App Store USD prices are separate store prices that should not be converted. The free download is a limited free tier with a 7-day trial rather than the full editing product, and the lifetime licence does not cover iPhone and iPad use. Editing existing PDF text, images and links is a supported desktop and mobile feature, not just annotation; the vendor does not publish a fidelity guarantee for edited layout. Conversion is documented to and from Word, Excel, PowerPoint, JPG, PNG and TXT, and Readdle's privacy notice says files are temporarily stored for up to three hours for conversion, so conversion is a cloud-processing feature rather than a local-only one. Compression offers Lossless, High and Medium levels and the vendor claims the Lossless option reduces size without quality loss, but this record does not turn that into an independently verified percentage or guarantee. Signing is a personal electronic signature created by typing or drawing, not a certificate-based digital signature, and no certificate-authority or validation claim is made. PDF Copilot and other AI features are off by default, may use local models and/or third-party providers such as Azure OpenAI or OpenAI, and AI providers may retain inputs for up to 30 days for abuse monitoring; AI is therefore not treated as a local-only feature. OCR is scoped to Mac as previously recorded, and no claim is made for iOS OCR.",
      "pricingModel": "freemium",
      "priceFromGbp": 72.99,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Readdle Limited",
      "platforms": [
        "mac",
        "ios"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "sign",
        "merge",
        "convert",
        "ocr",
        "compress"
      ],
      "jobScores": {
        "edit": 88,
        "sign": 85,
        "merge": 80,
        "convert": 75,
        "ocr": 70,
        "compress": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support.readdle.com/pdfexpert/en_US/edit-pdfs/remove-sensitive-content",
        "quote": "Blackout removes the selected content and puts a black box in its place, Erase removes the text and leaves an empty space in its place. … Please note that there is no possibility to restore the redacted text after saving the file.",
        "caveat": "The vendor’s own help article, not a test we ran. Its opening sentence says the tool \"hide[s]\" sensitive information, which is covering language; the steps quoted above say removal, and the steps are the specific account. Two further limits: redaction is a subscription feature, and the app \"automatically permanently saves changes\" when the file is closed - so what a user gets is not what an unsaved experiment shows."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the feature rather than on the product. Installed editing on Mac and iOS works on the device, and that is separate from the conversion uploads, the AI providers and any cloud sync the account has enabled, each of which the vendor’s own privacy notice describes as sending data to their servers. A categorical no-server badge cannot sit above that caveat, so the processing state is recorded as mixed by feature. Conversion retention is attributed to the vendor’s notice rather than to a deletion test we ran.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: PDF Expert on Mac and iOS. On their servers: Conversion, AI and cloud sync features. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. Readdle Limited, company number 630281, Glandore Business Centres, 26-27 Fitzwilliam Place, Fitzwilliam Hall, Dublin 2, D02T292, Ireland, is the controller and provider named in the PDF Expert Terms of Service and Privacy Notice for the App, last updated 12 August 2026. The Apple App Store and Mac App Store list the seller as Readdle Technologies Limited, a related Readdle entity used for store distribution. PDF Expert is sold as a free download with a 7-day trial and premium subscription or lifetime purchase: the current GBP pricing page lists a Yearly plan at GBP 72.99 billed annually (displayed as GBP 1.40 per week) and a one-time Lifetime plan at GBP 129.99 on Mac only, with a 30-day money-back guarantee and a student discount; the iOS and Mac App Store listings show separate App Store in-app purchase and app prices in USD, which are not converted here. No open-source licence or source distribution is published.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "PDF Expert on Mac and iOS",
          "processing": "in_process",
          "platforms": [
            "mac",
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Conversion, AI and cloud sync features",
          "processing": "vendor_cloud",
          "platforms": [
            "mac",
            "ios"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with PDF Expert, where the Edit PDF page documents modifying existing text directly in the PDF just as in a word processor, fixing typos, adding paragraphs and changing fonts, adding, replacing and resizing images, adding links to external sites or other pages and to images, annotations and comments, form filling, page organisation and merging, and redaction that the vendor describes as permanently deleting selected content; the scope records the documented existing-text, image, link, annotation, form, page and redaction editing on the Mac, iPad and iPhone apps, makes no layout-fidelity guarantee for edited content, and leaves OCR and conversion to their own jobs",
        "sign": "signing PDFs with PDF Expert, where the Sign PDF page documents creating a personal electronic signature by typing a name and having it converted to handwriting or by drawing it with the trackpad, and signing PDFs across Mac, iPad and iPhone with signature sync; the page calls the feature an electronic signature and does not document certificate-based or cryptographic digital signing, so the scope records the visual electronic signature and makes no certificate-authority, cryptographic-validation, timestamping or legal-validity guarantee",
        "merge": "merging entire PDF documents or selected pages from multiple PDFs in PDF Expert on Apple devices; the product is distributed through the Apple App Store and Mac App Store, and no other native-platform merge claim is made.",
        "convert": "converting PDFs with PDF Expert, where the Convert PDFs page documents conversion to and from Microsoft Word, Excel and PowerPoint, JPG and PNG images and TXT text, including PDF to Word, PDF to JPG or PNG, PDF to Excel, PDF to PPT, PDF to text and JPG, PNG, Word, PPT and Excel to PDF; Readdle's Privacy Notice for the App says files are temporarily stored for up to three hours for the file conversion functionality. The scope records the documented conversion directions and the temporary server-side processing for conversion, makes no fidelity guarantee for converted documents and does not claim OCR-based conversion beyond the OCR job",
        "ocr": "Mac 3.0 and later; iOS OCR is not yet available per the vendor documentation",
        "compress": "compressing PDFs with PDF Expert, where the Compress PDF how-to documents a PDF compressor with Lossless, High and Medium quality options, says Lossless is intended to reduce file size without any loss in quality, and High and Medium trade some detail for smaller files; the page is a vendor how-to and this audit did not measure the output. The scope records the three documented levels and the vendor's lossless wording, and makes no percentage-reduction, independently verified lossless or universal quality guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 445,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdfexpert.com; pdfexpert.com/pricing; pdfexpert.com/legal/privacy-app; readdle.com/about. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdf-expert/"
    },
    {
      "slug": "pdf-js",
      "name": "PDF.js",
      "tagline": "Mozilla's JavaScript library for parsing and rendering PDFs in the browser.",
      "websiteUrl": "https://mozilla.github.io/pdf.js/",
      "summary": "PDF.js is Mozilla's Apache-2.0 JavaScript PDF library and optional web viewer. The current release is v6.4.299, published 3 October 2026, also published as the pdfjs-dist npm package 6.4.299. The core library parses PDFs and renders pages to canvas, exposes text content through getTextContent, supports text selection/search and printing, and runs in a browser main thread with a worker, or in Node with the pre-built distribution. The bundled web viewer adds page navigation, search, print/download, form display/filling and an annotation editor. That editor's current enum includes free text, highlight, stamp, ink, signature and comment types, with popup internals; the generic viewer toolbar exposes free text, highlight, ink and stamp, while signature and comment entries are hidden in the generic build. The viewer can save annotation/form changes through PDFDocumentProxy.saveDocument into a new PDF, so those edits are not UI-only, but the library does not expose a general high-level document-editing API and has no merge, compress, encrypt, redact, certify or format-conversion APIs. It is not a hosted service; the viewer is optional, and pdfjs-dist is the npm distribution.",
      "bestFor": "Teams that need to display, paginate, search and extract text from PDFs inside their own web interface, or that want a standards-based viewer rather than a manipulation engine.",
      "watchOutFor": "The current release is v6.4.299, published 3 October 2026, and the npm pdfjs-dist package is 6.4.299. The npm package metadata declares Node >=22.13.0 or >=24, while the repository package metadata is stricter (>=22.22.3, >=24.15.0 or >=26); check the distribution you consume rather than assuming one runtime baseline. Browser use requires a worker, and when a URL is passed to getDocument the fetch follows same-origin rules or needs CORS; the generic demo viewer blocks cross-origin loading when not hosted on mozilla.github.io. The core library is a parser/renderer, not an editor: it has no public APIs for merging, compressing, encrypting, redacting, signing/certificate trust or converting to other document formats, and it cannot edit arbitrary page body text. Annotation editing is a viewer feature: the current enum includes FREETEXT, HIGHLIGHT, STAMP, INK, SIGNATURE, COMMENT and POPUP, but the generic viewer toolbar exposes free text, highlight, ink and stamp while signature and comment entries are hidden; underline and strikeout are rendered annotation types but are not current editor types. Signature here is a visual annotation editor type, not certificate-backed signing. The viewer can write annotation/form changes into a new PDF through saveDocument, so edits can persist; that is not a general library editing API. The optional viewer is separate from the core pdfjs-dist library, and there is no hosted PDF.js service. No OCR, redaction, arbitrary body-text editing, signing/certificate trust, merge/compress/encrypt or generic Office conversion is claimed.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Mozilla PDF.js project",
      "platforms": [
        "web",
        "self_hosted"
      ],
      "launchedYear": 2011,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit"
      ],
      "jobScores": {
        "view": 85,
        "edit": 30
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/mozilla/pdf.js",
        "quote": null,
        "caveat": "The repository README is the source, not the project site, because mozilla.github.io/pdf.js renders almost nothing without scripting. pdf.js is a rendering and viewing library - it draws pages and does not alter their content, which is why there is no redaction in it. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Inherent to the technology rather than a vendor claim: PDF.js is JavaScript that runs in the page, or in Node via the pdfjs-dist package, and parses and renders from bytes you supply. No Mozilla service is involved. Caveat: for remote PDFs the library performs its own fetch and may use HTTP range requests, and cross-origin loads need CORS.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A JavaScript library that parses and renders from bytes you supply, in the page or in Node. No Mozilla service is involved."
      },
      "license": "Apache-2.0. The repository LICENSE is the Apache License, Version 2.0. PDF.js is a Mozilla open-source project; pdfjs-dist is the pre-built npm distribution Mozilla publishes, not a separate hosted service. There is no Mozilla-hosted PDF.js processing endpoint or paid edition.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "browser"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing, parsing and rendering PDFs with PDF.js, where the API documentation exposes getDocument for loading, PDFPageProxy.render for canvas rendering, getTextContent for the text layer, and the bundled viewer adds page navigation, text search/selection, print/download, form display/filling and annotation rendering. The scope records parsing, page rendering, text-content extraction, the optional viewer, search, print/download and form display/filling, notes that getDocument URL fetches follow same-origin/CORS rules and that browser use requires a worker, and makes no editing, OCR, redaction, signing or format-conversion claim",
        "edit": "adding annotations and filling forms in the optional PDF.js web viewer, where the viewer toolbar exposes free text, highlight, ink and stamp annotation editors, the current AnnotationEditorType enum also includes signature and comment types (hidden in the generic viewer toolbar), underline/strikeout are rendered annotation types rather than current editor types, and the viewer can save annotation/form changes into a new PDF through PDFDocumentProxy.saveDocument. The scope records the bundled viewer's visual annotation and form-filling workflow and its ability to save a modified PDF, makes clear that the signature editor is a visual annotation rather than certificate-backed signing, and makes no arbitrary body-text editing, OCR, redaction, certificate signing/trust, merge, compress, encrypt or generic conversion claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 93,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "mozilla.github.io/pdf.js; github.com/mozilla/pdf.js README and FAQ wiki; GitHub API metadata. Licence stated on the project site and confirmed by the repository.",
      "profileUrl": "https://dialegein.com/products/pdf-js/"
    },
    {
      "slug": "pdf-lib",
      "name": "pdf-lib",
      "tagline": "JavaScript library for creating PDFs and filling forms, pages and metadata.",
      "websiteUrl": "https://pdf-lib.js.org",
      "summary": "pdf-lib is a dependency-light MIT JavaScript library, currently published as 1.17.1, for creating PDFs and modifying existing ones in Node, browsers, Deno and React Native. It loads an existing PDF and can add, insert, remove and copy pages; draw text, images, SVG paths and embedded PDF pages; create, fill, read and flatten AcroForm fields; set and read metadata and viewer preferences; add attachments; and embed/subset fonts (with fontkit for custom fonts). It is an object-level PDF construction/manipulation library, not a document editor: it does not reflow or edit existing body text outside form fields, and it has no OCR, redaction, encryption/decryption or digital-signature support. The current published release is 1.17.1 (6 November 2021); the repository was last pushed in July 2024 and still has 318 open issues, so maintenance activity should be checked before a long-lived dependency.",
      "bestFor": "Projects that need to generate PDFs or programmatically fill, stamp, restructure and annotate existing ones entirely in-process, and that either do not need encryption or will pair it with a separate tool.",
      "watchOutFor": "No encryption support: loading an encrypted PDF throws EncryptedPDFError, and there is no API for writing password-protected output. The ignoreEncryption option does not decrypt and the README says not to use it. It cannot reflow or edit existing body text outside form fields; it can draw new content over pages, manipulate pages/forms/metadata/attachments, but it is not a word processor, OCR engine, redaction tool or general document editor. It has no digital-signature, conversion or accessibility-remediation capability. The latest published release is 1.17.1 (6 November 2021); the repository was last pushed in July 2024 and has 318 open issues, so this is not a actively maintained release cadence and should be checked before a long-lived dependency. Image support is PNG/JPEG via the library; PDF embedding is supported. No price applies: MIT, no hosted edition, no account.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Andrew Dillon",
      "platforms": [
        "web",
        "self_hosted"
      ],
      "launchedYear": 2017,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "merge"
      ],
      "jobScores": {
        "edit": 80,
        "merge": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://pdf-lib.js.org",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "pdf-lib is an in-process JavaScript library operating on in-memory PDF byte arrays in whatever runtime loads it (Node, browser, Deno or React Native). There is no pdf-lib service, account or built-in network transfer in the documented path; whether the caller loads bytes over a network is the caller's choice, so this is not an absolute no-network guarantee for every application.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A pure JavaScript library operating on in-memory byte arrays in your own runtime. No vendor service and no runtime downloads, so it can be fully air-gapped."
      },
      "license": "MIT. The npm package is authored by Andrew Dillon and the repository is Hopding/pdf-lib. The current package metadata and README declare MIT; there is no vendor service or commercial edition. Dependencies are pako, tslib, @pdf-lib/upng and @pdf-lib/standard-fonts; font embedding with custom fonts uses the separate fontkit module.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "browser"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Browser JavaScript runtime",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [
            "browser"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Node/Deno/React Native runtime",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "loading and modifying an existing PDF with pdf-lib's object-level JavaScript API: adding, inserting, removing, copying and splitting pages; drawing new text, PNG/JPEG images, SVG paths and embedded PDF pages onto pages; creating, filling, reading and flattening AcroForm fields; setting/reading metadata and viewer preferences; adding attachments; and embedding/subsetting fonts. The scope records only these documented structural/content-object operations on existing documents and explicitly excludes reflowing or editing existing body text outside form fields, OCR, redaction, encryption/decryption, digital signatures, accessibility remediation or general word-processor/document editing",
        "merge": "merging and splitting PDF pages in JavaScript"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 110,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://registry.npmjs.org/pdf-lib/latest (1.17.1, MIT, author Andrew Dillon, dependencies; read 2026-10-16); https://github.com/Hopding/pdf-lib (repo, MIT, created 2017-09-04, last push 2024-07-17, 318 open issues; read 2026-10-16); https://github.com/Hopding/pdf-lib/releases/tag/v1.17.1 (latest release, 2021-11-06); https://raw.githubusercontent.com/Hopding/pdf-lib/master/README.md (features, modification, forms/pages/metadata/attachments/fonts, limitations, encryption, tested Node/Browser/Deno/React Native; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/pdf-lib/"
    },
    {
      "slug": "pdf-redactor",
      "name": "pdf-redactor",
      "tagline": "Python library that redacts a PDF's text layer, links and metadata by regex.",
      "websiteUrl": "https://github.com/JoshData/pdf-redactor",
      "summary": "pdf-redactor is a small pure-Python module (version 0.0.1, released 19 April 2021) built on pdfrw that redacts selected content from an existing PDF: content-stream text via regular expressions or filter functions, plain-text annotations, link target URLs, the Document Information Dictionary and embedded XMP metadata. It rewrites the underlying text in the content stream rather than drawing boxes over it, so matched characters leave the text layer; metadata fields can be rewritten, removed or added. It is not a complete PDF sanitiser or encryption tool: images, graphics and other embedded resources are explicitly untouched, and embedded files, multimedia, scripts, rich-text annotations, forms, internal object names and digital signatures are not examined. The command-line wrapper does nothing useful without custom filter functions, so the documented use is as a library (or with the example script); qpdf may be needed to uncompress/recompress streams, and replacement glyphs can be missing from fonts. The package is CC0-1.0 and runs locally in Python >=3.7.",
      "bestFor": "Developers who need scripted, repeatable text-layer and metadata redaction as one step in a pipeline, and who will review exactly what the tool does and does not touch before trusting it with sensitive material.",
      "watchOutFor": "Protect here means pattern-based text-layer/annotation/link/metadata redaction, not password encryption, permissions, complete sanitisation or a guarantee that no sensitive content remains. The project is explicitly incomplete: images, graphics, embedded files, multimedia, scripts, rich-text annotations, forms, internal object names and digital signatures are not examined; sensitive content inside an image survives. The bare command-line entry point performs no filtering without custom filter functions, so use it as a library or adapt the example. Replacement characters can be missing from embedded fonts, and pdfrw does not support every compression method, so qpdf may be needed before/after. CC0-1.0, no hosted service and no account; local processing is architectural rather than an upload test. The project is still versioned 0.0.1 (PyPI 19 April 2021); its repository was last pushed in June 2024 and it has 22 open issues, so maintenance should be checked. Redaction is not a legal-compliance or security guarantee; review the output and the document's other content.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Joshua Tauberer",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": 2016,
      "primaryJob": "protect",
      "jobs": [
        "protect"
      ],
      "jobScores": {
        "protect": 46
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": null,
        "readAt": "2026-09-17",
        "quote": null,
        "caveat": "Tested on our own canary document: it matches the text layer by pattern and rewrites the characters out. Its own documentation says images, embedded files, forms and signatures are not examined, so a redacted scan may still show everything."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: a Python module and script installed and run on the caller's own machine. The PDF is parsed and rewritten locally, and the project publishes no hosted service or account. This describes the package's processing path, not an audit of every application that embeds it or an absolute no-network guarantee for a caller that fetches/sends files.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Python module and script that must be installed and run on your own machine. The project publishes no hosted service, so there is no server in the path."
      },
      "license": "CC0-1.0 public-domain dedication (not MIT). The package metadata declares CC0-1.0; the README credits Joshua Tauberer and Antoine McGrath. The current PyPI release is 0.0.1, uploaded 19 April 2021, requires Python >=3.7 and <4, and depends on pdfrw and defusedxml. There is no paid edition, hosted service or account.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "protect": "redacting selected content from an existing PDF with pdf-redactor: regex/filter-function substitution in the page text layer, plain-text annotations, link target URLs, the Document Information Dictionary and embedded XMP metadata, with metadata fields rewritten, removed or added and a new PDF written. The scope records pattern-based text/annotation/link/metadata redaction only; it does not claim password encryption, permissions, irreversible removal of all sensitive content, image/graphic sanitisation, embedded-file/script/form/signature coverage or complete PDF sanitisation, and it preserves the project's explicit exclusions and font/compression caveats"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 460,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 96.7
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "https://pypi.org/project/pdf-redactor/ (0.0.1, 19 April 2021, Python >=3.7,<4, CC0-1.0, pdfrw/defusedxml; read 2026-10-16); https://github.com/JoshData/pdf-redactor (CC0-1.0, created 2016-10-14, last push 2024-06-13, 22 open issues; read 2026-10-16); README (text layer, annotations, links, Info/XMP metadata, exclusions, CLI/filter, qpdf/font caveats; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/pdf-redactor/"
    },
    {
      "slug": "pdf-studio",
      "name": "PDF Studio",
      "tagline": "Cross-platform PDF editor for Windows, Mac and Linux, sold as Xodo PDF Studio.",
      "websiteUrl": "https://xodo.com/pdf-studio",
      "summary": "PDF Studio is a cross-platform desktop PDF editor for Windows, macOS and Linux, now sold as Xodo PDF Studio by Apryse Software Corp. and built on Apryse core libraries; the current version is Xodo PDF Studio 2026.0.0, released 31 March 2026. It edits existing PDF text and images with inline reflow, annotates and marks up, designs and fills forms, runs OCR to add searchable text, batch-processes files, converts to and from Microsoft Office formats, HTML, images, PDF/A and PDF/X, validates PDF/UA accessibility, optimises and sanitises PDFs, and applies visible or invisible digital signatures with certification. It works offline and locally on the desktop. Xodo sells it as a USD 19.99 monthly subscription, a USD 9.99 per month yearly subscription, or a USD 240 per-user perpetual licence, with a credit-card trial and a watermarked free demo. The separate free PDF Studio Viewer and Qoppa developer libraries are not part of this record.",
      "bestFor": "Windows, macOS and Linux users who want one licence covering two machines across different operating systems and prefer a one-time fee to a subscription.",
      "watchOutFor": "The current Xodo PDF Studio end user licence names Apryse Software Corp. as licensor, while the Xodo website terms and privacy notice name Apryse Software Inc., and the legacy Qoppa EULA still names Qoppa Software; those first-party documents do not reconcile the entity names, so the owner uses the current product EULA licensor and the other surfaces are recorded separately rather than silently merged. Pricing is USD only: USD 19.99 per month, USD 9.99 per month on the yearly plan billed annually, and USD 240 per user for a perpetual licence, with volume discounts; the previously recorded GBP 14.83 per month was a synthetic conversion of the USD 19.99 figure, so it is removed, priceFromGbp is null and priceBasis is unknown, and no conversion is used. The free demo saves with watermarks and the free trial requires a credit card, so this is not a free product. The product has been rebranded from Qoppa PDF Studio to Xodo PDF Studio, and the separate free PDF Studio Viewer is a different product that is not merged into this record. Core editing, OCR and conversion are local and offline; the Xodo Sign add-on is a separate e-signing service, and the record makes no cloud-processing claim for the desktop editor. Redaction removes page content but form fields and annotations need a separate documented procedure; sanitisation is a separate workflow and the vendor claims are recorded rather than presented as an independent security test. Digital signatures are visible or invisible signatures with certification and digital IDs; no certificate-authority issuance, trust-validation or independent legal-validity guarantee is made. OCR language support is installed through language packs, with the common languages documented as English, French, German, Spanish, Italian and Chinese Simplified and Traditional, and no accuracy guarantee or fixed total language count is asserted. Conversion and OCR have no fidelity or accuracy guarantee. Each user licence may be used on two machines of any operating system, as previously recorded.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Apryse Software Corp.",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "merge",
        "protect",
        "sign",
        "view",
        "convert",
        "ocr",
        "compress",
        "accessibility"
      ],
      "jobScores": {
        "edit": 88,
        "merge": 85,
        "protect": 85,
        "sign": 85,
        "view": 80,
        "convert": 80,
        "ocr": 75,
        "compress": 75,
        "accessibility": 60
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://kbpdfstudio.qoppa.com/why-pure-redaction-is-better-than-pixelating-or-blurring/",
        "quote": "This is why it’s extremely important to use the proper redaction tools, like those provided in PDF Studio, that will remove the underlying content rather than only blurring it.",
        "caveat": "The vendor’s own knowledge-base article, not a test we ran, and it is dated 17 February 2017 - so it describes the product as it was then, and nothing here establishes that the current release behaves identically. The claim is also comparative: it says PDF Studio removes where pixelation does not, which is not the same as describing how it removes."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is a desktop application, and the vendor documents offline processing on the machine. That is a vendor statement rather than a tested guarantee that no server is involved. The current vendor documentation distinguishes a watermarked free demo from a full-access watermark-free trial that requires a credit card, and monthly and yearly subscriptions are offered alongside perpetual licensing.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed desktop application for Windows, macOS and Linux. The vendor also sells adjacent server and online products, but the editor itself runs locally."
      },
      "license": "Proprietary. The current Xodo PDF Studio End User License Agreement, last modified 21 November 2025, names Apryse Software Corp., 530 Harrison Ave, Second Floor, Boston, MA 02118 USA, as the Licensor, is governed by the laws of the State of Delaware and offers subscription and perpetual licences. The Xodo website terms and privacy notice separately name Apryse Software Inc., and the legacy Qoppa PDF Studio EULA still names Qoppa Software and is governed by Delaware law. The three first-party documents do not reconcile the Corp., Inc. and Qoppa naming, so the owner field uses the current product EULA licensor, Apryse Software Corp., and the other two surfaces are recorded in the licence and watchOutFor rather than merged into it. Current Xodo pricing is published in USD only: a monthly subscription at USD 19.99, a yearly subscription at USD 9.99 per month billed annually, and a perpetual licence at USD 240 per user, with volume discounts. The free demo saves documents with watermarks, and the free trial requires a credit card. No GBP price is published, so no GBP figure is asserted and no currency conversion is used. The software is proprietary with no open-source licence.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with PDF Studio, where the current product description documents content editing of text and images with inline text reflow, font, size and colour changes, interactive form design and filling, annotation and markup, page organisation, splitting and merging, and watermark and header/footer tools; the older Qoppa feature list describes PDF Studio Pro as including content editing of text and images, an interactive form designer, annotation and markup, page operations and redaction. The scope records the documented existing-text and image editing, form, annotation and page operations on the installed Windows, macOS and Linux application, makes no layout-fidelity guarantee and does not merge the separate free PDF Studio Viewer or the Qoppa developer libraries into this record",
        "merge": "merging supported input files, including PDFs, into a single PDF in PDF Studio through the Add Files or Add Folder workflow, with optional bookmarks for each merged document and results opened, appended or saved; not arbitrary formats beyond the documented Supported File Types list",
        "protect": "setting, changing or removing a PDF's open password and permissions password and its permission restrictions in PDF Studio's Document Security settings, the change applying only once the document is saved; not certificates, DRM or specific encryption algorithms",
        "sign": "signing PDFs with PDF Studio, where the current product comparison documents digitally signing PDF documents, certifying documents, adding digital IDs and applying visible or invisible signatures, and the older Qoppa feature list describes digital signatures with visible and invisible signatures authenticating document contents; the Xodo Sign add-on is a separate e-signing service. The scope records the documented digital-signature, certification, digital-ID and visible-or-invisible signature path in the desktop application, keeps Xodo Sign separate, and makes no certificate-authority issuance, trust-validation, timestamp or independent legal-validity guarantee",
        "view": "viewing PDFs with PDF Studio, where the current product comparison documents viewing and printing PDFs with loupe, pan and zoom, rulers and grids, and the older Qoppa feature list lists loupe, pan, zoom and rulers among PDF Studio Pro features; the separate free PDF Studio Viewer is a different product and is not merged into this record. The scope records the documented open, read, search, navigation, zoom, loupe, ruler, grid and print functions of the PDF Studio editor on Windows, macOS and Linux, and makes no claim about the separate viewer product or a hosted viewing surface",
        "convert": "converting documents with PDF Studio, where the current product comparison documents PDF to Word, Excel, PowerPoint, JPEG, PNG, TIFF, GIF, PDF/A, PDF/X and HTML5/SVG, scan-to-PDF, and the reverse conversions from Microsoft Word, Excel and PowerPoint and images to PDF, and the older Qoppa feature list documents conversion to and from Microsoft files, conversion to HTML, PDF/A and PDF/X support and batch processing. The scope records the documented conversion directions in the installed desktop application, makes no fidelity guarantee and does not claim a format that is not in those vendor lists",
        "ocr": "running OCR with PDF Studio, where the current product comparison documents scanning and OCR to add searchable text and text recognition, and the PDF Studio knowledge base documents OCR of existing documents and scanned documents, adding searchable text to pages and OCR language packs installed through PDF Studio; the common documented languages are English, French, German, Spanish, Italian and Chinese Simplified and Traditional. The scope records the documented OCR of existing PDFs and scanned documents into searchable text with installed language packs, and makes no accuracy guarantee and no fixed total language-count claim because the pages read list common languages and packages rather than a complete supported-language total",
        "compress": "reducing PDF file size by optimizing specific parts of the PDF through PDF Studio's documented Optimizing PDFs tool",
        "accessibility": "checking a document against PDF/UA standards with PDF Studio's PDF/UA Validation, and creating or editing document tags, alternative text, field tab order, form field tooltips and document reading properties for screen readers; the guide describes more accessible PDFs rather than a conformance guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 400,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "qoppa.com (product page, buy page); the Qoppa knowledge base on pure redaction and how to redact; xodo.com/pdf-studio. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdf-studio/"
    },
    {
      "slug": "pdf-toolbox",
      "name": "pdfToolbox",
      "tagline": "Commercial PDF preflight, correction and standards validation, including PDF/UA checks.",
      "websiteUrl": "https://callassoftware.com/products/pdftoolbox/",
      "summary": "pdfToolbox is callas software's commercial PDF processing platform. The current release is 17.1.692, dated 1 October 2026. It checks PDFs against configurable preflight profiles built on standards such as PDF/X, PDF/A and PDF/UA, then applies fixes; process plans can automate validation, correction, optimization and conversion. The product has four normal variants: Desktop (standalone or an Adobe Acrobat Pro plug-in) for manual preflight and correction on Windows and macOS; Server for customer-managed automated workflows; CLI for command-line batch processing; and SDK for embedding the engine through C/C++ libraries with .NET and Java wrappers. Linux is supported through the server/CLI/SDK packages, not as a Desktop platform. The normal Desktop/Server/CLI/SDK product is self-managed and local or customer-hosted, including REST API and Docker deployments on customer hardware. Separately, pdfToolbox in the Cloud is an OEM-only, AWS-managed API at api.callassoftware.io with x-api-key authentication; it is not the normal self-managed product and is not required for Desktop/Server/CLI/SDK use. All variants have a 14-day trial; pricing is commercial and not published. The product is associated with, but not dependent on a separate Adobe licence merely because Desktop uses Adobe PDF Library technology.",
      "bestFor": "Production and prepress teams who need PDF/X, PDF/A or PDF/UA checked and corrected before use, and organisations that want validation and correction to run manually in Desktop or unattended through customer-managed Server/CLI/SDK workflows.",
      "watchOutFor": "The current release is 17.1.692, dated 1 October 2026. The normal product is not a hosted SaaS: Desktop runs locally on Windows/macOS, and Server/CLI/SDK run on customer-managed hardware, including Linux server/CLI/SDK packages, Docker and a REST API. Activation and update checks do not turn those workflows into vendor cloud. The optional pdfToolbox in the Cloud/OEM API at api.callassoftware.io is a separate, OEM-only, AWS-managed service with x-api-key authentication; it is not the normal Desktop/Server/CLI/SDK product and its availability does not make the normal product hosted. Linux is supported for Server/CLI/SDK, not as a Desktop platform. The Desktop variant is built on Adobe PDF Library technology, a third-party dependency with its own licensing; that alone does not prove a buyer needs a separate Adobe licence. The variants are licensed separately, though the Server/CLI package includes Desktop for profile configuration and Server uses CLI behind the scenes, so the packaging is not four unrelated purchases. All variants have a 14-day trial, not a permanent free tier; pricing is quote-based and no public price is invented. PDF/UA profiles validate conformance and fix mechanical issues, but they do not rewrite the document's tagging into genuinely well-structured, screen-reader-ready content; semantic accessibility still needs human remediation. The product is a preflight/correction engine and process-plan tool, not a generic body-text PDF editor, and it does not replace Acrobat-style authoring or guarantee legal accessibility. Automated Server/CLI/SDK processing is distinct from the manual Desktop correction workflow.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "callas software GmbH",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "edit"
      ],
      "jobScores": {
        "accessibility": 85,
        "edit": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://callassoftware.com/products/pdftoolbox/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence. The product page is a detailed description of what pdfToolbox does - preflight profiles, checks and fixes, processing reports, process plans, and the Desktop, Server, CLI and SDK variants - and it never mentions redaction or removing content, so there is no feature here that this index would classify as redaction. What it does not establish: that no correction could ever delete content. A profile fix can remove or change objects in a document, which is why the absence is recorded as \"no redaction feature\" rather than \"cannot remove anything\". A reader who needs redaction should read this as \"not the tool for that\", not as \"safe to use on a secret document\"."
      },
      "processesLocally": true,
      "processesLocallyNote": "Desktop, Server, CLI and SDK are normally local or customer-managed: Desktop works on local files, and Server/CLI/SDK run on the customer's own hardware, including Linux server/CLI/SDK deployments and Docker/REST API installations. The optional pdfToolbox in the Cloud/OEM API at api.callassoftware.io is an AWS-managed callas service requiring an x-api-key and is a separate product, not the normal local product. Activation and update checks do not make the Desktop or Server product vendor_cloud.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: pdfToolbox Desktop (standalone or Adobe Acrobat Pro plug-in), pdfToolbox Server, CLI and SDK (customer-managed). On their servers: pdfToolbox in the Cloud / OEM API. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Commercial, sold through callas software GmbH and its reseller network. Desktop, Server, CLI and SDK are separately licensed variants; the Server/CLI package includes Desktop for profile configuration and Server uses CLI in the background, so they are not four completely independent purchases. The SDK is separately licensed. All variants have a documented 14-day free trial, but there is no permanent free tier. The optional pdfToolbox in the Cloud/OEM API is a separate OEM-only AWS-managed service with its own licensing. No public price list is published.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "cli",
        "library",
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "desktop",
          "name": "pdfToolbox Desktop (standalone or Adobe Acrobat Pro plug-in)",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "server-cli-sdk",
          "name": "pdfToolbox Server, CLI and SDK (customer-managed)",
          "processing": "customer_server",
          "platforms": [
            "windows",
            "linux",
            "mac",
            "self_hosted"
          ],
          "interfaces": [
            "cli",
            "library",
            "http"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "cloud-oem",
          "name": "pdfToolbox in the Cloud / OEM API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "checking PDF/UA accessibility conformance with pdfToolbox, where the product's profiles support PDF/UA checks and fixups alongside PDF/X and PDF/A, and the Desktop, Server, CLI and SDK variants can run those profiles manually or in automated process plans. The scope records PDF/UA conformance checking/validation and profile-driven mechanical corrections/fixups, and makes clear that mechanical preflight fixes do not guarantee semantic accessibility, do not rewrite tagging into genuinely screen-reader-ready structure, and do not replace human remediation or establish legal accessibility; it is not a screen-reader authoring or full remediation editor",
        "edit": "applying documented PDF preflight corrections and processing operations with pdfToolbox, where profiles define checks and fixups and process plans automate validation, correction, optimization and conversion; the REST API preflight operation can validate, correct, optimize or convert PDFs, and Server/CLI/SDK provide customer-managed automated workflows while Desktop provides manual correction. The scope records profile-driven correction/fixup, process-plan and documented validation/optimization/conversion operations, keeps manual Desktop correction distinct from automated Server/CLI/SDK processing, and makes no generic body-text PDF-editing, OCR, redaction, signing, arbitrary content-authoring or semantic-accessibility-remediation claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "http_error",
        "label": "http_error",
        "httpStatus": 503,
        "latencyMs": 555,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 96.7
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "https://callassoftware.com/products/pdftoolbox/ (variants, Desktop standalone/Acrobat plug-in, 14-day trial); /products/pdftoolbox/system-requirements/ (Windows 10/11 and Server 2012R2-2025, macOS 12-27, Linux Debian/RHEL/SLES glibc>=2.19); /products/pdftoolbox/version-history/ (current 17.1.692, 2026-10-01); https://help.callassoftware.com/m/pdftoolbox/l/2097759-the-pdftoolbox-rest-api-operation-preflight (REST API validate/correct/optimize/convert on the server/API); https://help.callassoftware.com/a/1442918-pdftoolbox-in-the-cloud-preflight and https://help.callassoftware.com/a/1442899-pdftoolbox-in-the-cloud-for-oem-partners (OEM-only AWS cloud API at api.callassoftware.io with x-api-key); https://help.callassoftware.com/m/pdftoolbox/l/660026-using-profiles (profiles/preflight/fixups); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pdf-toolbox/"
    },
    {
      "slug": "pdf-xchange-editor",
      "name": "PDF-XChange Editor",
      "tagline": "Windows-only PDF editor with a large free tier and perpetual licences.",
      "websiteUrl": "https://www.pdf-xchange.com/product/pdf-xchange-editor",
      "summary": "PDF-XChange Editor is a Windows desktop PDF editor from PDF-XChange Co Ltd, with Tracker Software Products as its wholly owned subsidiary. The current version is 11.1.0.0 and it supports Windows 10 and later; there are 32-bit, 64-bit, ARM64 and portable builds. The vendor counts 402 features, of which 257 are free and 145 licensed, and says about 70 per cent of functionality is unrestricted. The editor covers overtype editing of existing text, annotation and measurement tools, bookmarks and page manipulation, form filling and creation, conversion to and from Word, Excel, PowerPoint, PDF/A, PDF/X, WebP and other formats, OCR of documents and selected regions, PAdES digital signatures with certification, timestamps and long-term validation, document comparison, save-as-optimised compression and the FreeSign signature tool. Editor costs GBP 48.00 plus VAT and Editor Plus GBP 61.00 plus VAT, each with the first year of maintenance. Core processing is local; optional AI Assistant features use third-party models only when the user supplies an API key, and cloud-storage integrations are optional.",
      "bestFor": "Windows users who want a capable desktop editor with a substantial documented free feature set and the option to license the rest.",
      "watchOutFor": "Windows 10 or later only. The current version is 11.1.0.0 and the current single-user prices are GBP 48.00 for Editor and GBP 61.00 for Editor Plus, plus VAT, each including the first year of maintenance; the previously recorded GBP 47.00 and GBP 60.00 figures and the 11.0.1.0 version are superseded. There are no refunds once a licence key is issued. In evaluation mode, licensed features can be used but output carries a watermark that cannot be removed without a licence; free features are not universally watermarked, so the free-watermark position is conditional rather than uniform. The vendor says more than seventy per cent of features are free, which is an approximate vendor statement rather than a measured score, and the 145 licensed features include the Editor Plus Enhanced OCR engine, fillable-form creation and editing, dynamic stamps, document comparison, Identify Forms and Add Placeholder. Digital signatures are PAdES-compliant and the editor can certify documents, add timestamps and perform long-term validation; the record makes no certificate-authority issuance or independent legal-validity guarantee. Visual signatures and the FreeSign tool are separate from certificate-based signing. OCR is available in the Editor with the default engine and in Editor Plus with the Enhanced OCR engine; language support is added through the Add/update Languages function and language packs, and no accuracy guarantee is made. Conversion covers the documented Word, Excel, PowerPoint, PDF/A, PDF/X, plain-text and WebP exports and the documented CSV, image, Office, Publisher, Visio, Markdown, RTF, text, metafile and XPS imports, with no fidelity guarantee. Save as Optimized, recompressing images and rasterising are documented, but no lossless or percentage-reduction guarantee is made. Core editing, OCR and conversion are local; optional AI Assistant features use third-party OpenAI, Anthropic or Google models only when the user supplies an API key, and cloud-storage integrations are optional, so those network paths are not covered by the local-processing claim.",
      "pricingModel": "freemium",
      "priceFromGbp": 48,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "PDF-XChange Co Ltd",
      "platforms": [
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "ocr",
        "sign",
        "compress"
      ],
      "jobScores": {
        "edit": 92,
        "convert": 85,
        "ocr": 80,
        "sign": 75,
        "compress": 75
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": null,
        "readAt": null,
        "quote": null,
        "caveat": "Downgraded from removes_content on 2026-09-22. The vendor’s manual is JavaScript-only at both the current and the previous URL, and neither is archived, so we could not read any statement about the mechanism. The guide’s tier note separately records that redaction is a paid feature and is absent from the free version - a fact about the edition, not about whether content is removed."
      },
      "processesLocally": true,
      "processesLocallyNote": "Desktop core processing happens on the machine, and that is a statement about the desktop application rather than about the product as a whole: the optional AI features send data to configured providers, and the network behaviour has not been tested. Installed or portable architecture is not used here to assert that no vendor service or network traffic exists.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: PDF-XChange Editor on Windows. On their servers: Optional AI providers. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary, perpetual per-user licence. PDF-XChange Co Ltd is the company named on the product and licensing pages, and the site footer says Tracker Software Products is a wholly owned subsidiary of PDF-XChange Co Ltd, registered in England under number 11091579. End-user licensing is per user, with no concurrent usage, and allows one desktop installation plus a secondary device for the primary user. The Single User Editor licence is GBP 48.00 plus VAT and the Editor Plus licence is GBP 61.00 plus VAT, each including the first year of maintenance; extended maintenance is optional. The vendor says it does not offer refunds after the release of licence keys. Editor Plus adds the Enhanced OCR engine, fillable-form creation and editing, dynamic stamps, document comparison, Identify Forms and Add Placeholder. The free edition and evaluation mode can use licensed features but place watermarks on output, and evaluation watermarks cannot be removed without a licence. No open-source licence is published.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "PDF-XChange Editor on Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Optional AI providers",
          "processing": "vendor_cloud",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with PDF-XChange Editor, where the product feature list documents overtype editing of existing text, typewriter and annotation tools, measurement annotations, page and bookmark editing, form filling and form-field creation, and document-content panes, and the vendor counts the Edit Documents category at 97 features with 40 licensed and 57 free, including the three Edit Document Text features; the scope records the documented existing-text overtype editing, object, annotation, page, bookmark and form operations on the Windows desktop application, makes no layout-fidelity guarantee and does not import developer SDK capabilities",
        "convert": "converting documents with PDF-XChange Editor, where the product feature list documents converting PDF files to Microsoft Word, PDF/A, PDF/X, plain text, Microsoft Excel, Microsoft PowerPoint and WebP images, and converting CSV files, image files, Microsoft Excel, PowerPoint, Publisher, Visio and Word documents, Markdown, RTF, text files, Windows metafiles and XPS files to PDF; the scope records those documented conversion directions in the installed Windows application, makes no fidelity guarantee and claims no conversion direction that is not in the list",
        "ocr": "running OCR with PDF-XChange Editor, where the product feature list documents performing OCR on documents, OCR of a selected region, OCR of multiple selected images from the context menu, the Enhanced OCR Plugin, and using OCR to recognise characters when converting PDFs to Microsoft Office formats; the vendor says Editor Plus supplies the Enhanced OCR engine while the regular Editor has a default OCR engine. OCR language support is added through the Add/update Languages function and language packs. The scope records the documented OCR surfaces and the Editor versus Editor Plus engine difference, and makes no accuracy or language-completeness guarantee because no fixed supported-language total or accuracy figure is published on the pages read",
        "sign": "signing PDFs with PDF-XChange Editor, where the product feature list documents PAdES-compliant digital signatures, certification, timestamps, long-term validation for digital signatures, signature fields, signing and saving automatically, and detecting conformity with EU 910/2014; it also documents a separate visual Type Your Signature feature and the FreeSign tool for adding signatures and initials. The scope records both the certificate-based PAdES signing, certification, timestamp and long-term-validation path and the visual signature path, and makes no certificate-authority issuance, trust-validation or independent legal-validity guarantee beyond the vendor documented capabilities",
        "compress": "compressing and optimising PDFs with PDF-XChange Editor, where the product feature list documents Save as Optimized, the Optimize Document enhancements that include optimising images in comments and flattening fields and markup comments, and recompressing document images and rasterising pages; the scope records those documented optimisation operations in the installed Windows application and makes no lossless, fidelity or specific percentage-reduction guarantee because the vendor pages read do not state one"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 626,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdf-xchange.com product, pricing, version history, demo limitations and privacy policy pages; company about page. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdf-xchange-editor/"
    },
    {
      "slug": "pdf-xchange-sdk",
      "name": "PDF-XChange Core API SDK",
      "tagline": "Windows SDK for creating and manipulating PDFs, now sold only to approved developers on application.",
      "websiteUrl": "https://www.pdf-xchange.com/product/pdf-xchange-core-api-sdk",
      "summary": "The PDF-XChange Core API SDK is the foundation library in PDF-XChange Co Ltd's developer range: a Windows API and DLL for creating and manipulating PDF files, from the company whose Tracker Software Products subsidiary also sells PDF-XChange Editor. The current version is 11.1.0.0 and the supported operating systems are Windows 10 and later. The documented Core API feature set includes page insertion, deletion, re-ordering and cropping, merging, overlaying pages as stationery, watermarks, bookmarks, compression and optimisation with Zip, JPEG, JPEG2000, Run Length, LZW, JBIG2 and CCITT G3/4 options, AcroForm creation and field-data extraction, text and image extraction, raster rendering, encryption, digital signatures and conversion of raster images, EMF/WMF/AMF and text files to PDF. The vendor has stopped almost all sales of its developer kits and now offers the SDK only to approved developers on application, with licensing by distribution volume and no published price.",
      "bestFor": "Teams with an existing licence and a Windows deployment who need a PDF library they can embed without a server dependency, and who value the same engine as the editor their users already know. For anyone starting fresh the practical question is not which SDK is better but whether this one can be bought at all, which is why the sales notice is the first thing to read.",
      "watchOutFor": "The product page carries a notice that PDF-XChange has stopped almost all sales of its developer kits and now offers them to approved developers on application: the practical effect is case-by-case sales approval rather than a closed door or a published price. No price is published for the distribution-volume tiers of 25,000, 50,000, 100,000, 250,000 or 1 million client desktop installs. Evaluation builds are fully functional but place a demo watermark on every page of any PDF created or modified, removed only by licence strings, and Tracker Software says it does not offer refunds after licensing information is issued; this is not a free production tier. Core API, Editor SDK and Viewer SDK are separate products, and the comparison chart's Core API column is the evidence used here rather than features from the Editor SDK or the Editor application; the chart shows the Core API supports compression, merge, page operations, forms, annotations, digital signatures, encryption, text and image extraction and raster export, while its external-to-PDF conversion is limited to raster images, EMF/WMF/AMF and .txt rather than Office or HTML. The system-requirements page still labels the product V8 and lists Windows 10 and later, while the product page and version history give the current version as 11.1.0.0, so the version-specific page is the one to use and the V8 wording is a stale label rather than a second current version. The SDK is an in-process Windows DLL/COM library with no hosted processing endpoint; documents stay in the application that embeds it. A rendering capability does not amount to a packaged viewer.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "PDF-XChange Co Ltd",
      "platforms": [
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "merge",
        "compress",
        "sign",
        "extract"
      ],
      "jobScores": {
        "edit": 76,
        "convert": 74,
        "merge": 74,
        "compress": 70,
        "sign": 72,
        "extract": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.tracker-software.com/pdf-creation-and-manipulation-sdks-comparison-chart",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and the absence is unusually well documented: the vendor's own feature matrix for the whole developer range lists 40-odd capabilities - page operations, merging, overlaying, watermarks, compression, AcroForm creation and extraction, text and image extraction, raster rendering, encryption, digital signatures and comment support - and **no row in it mentions redaction at any point**, for any of the six SDKs. What it does not establish: the matrix's per-SDK tick columns did not render as text, so this rests on the feature list rather than on reading the Core API SDK's own column, and the separate PDF-XChange Editor record has its own verdict on its own evidence. Also absent from that trace: whether content removal exists under another name the matrix does not use."
      },
      "processesLocally": true,
      "processesLocallyNote": "A compiled library that runs inside the application you build, on machines you control. There is no vendor service in the path and no account to sign in to: licensing works by licence strings compiled into the application, which the demo limitations page describes as what removes the watermark. That is a structural fact about an embeddable SDK rather than a measurement, and the same reasoning the index applies to the other embedded libraries.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A compiled library embedded in the application you build, licensed by licence strings compiled in at release time. There is no vendor service in the path and no account: Tracker Software operates no processing endpoint in that path."
      },
      "license": "Commercial, proprietary. The site identifies PDF-XChange Co Ltd as the company, with Tracker Software Products described as a wholly owned subsidiary registered in England under number 11091579. The Core API SDK is licensed by distribution volume, with client desktop install tiers of 25,000, 50,000, 100,000, 250,000 and 1 million published as available, and no public price is given for any tier. PDF-XChange says it has stopped almost all sales of software developer kits and makes them available to approved developers on application, so this is a case-by-case sales approval rather than a published price. Evaluation builds are fully functional but place a demo watermark on every page of PDFs created or modified, removed by licence strings; that is an evaluation limitation, not a free production tier. Each SDK has its own EULA, and the version history and product page give the current version as 11.1.0.0.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs programmatically with the PDF-XChange Core API SDK, where the SDK comparison chart's Core API column marks support for creating new PDF pages placing objects, drawings, images and text, annotations, AcroForm creation, AcroForm field-data extraction, adding and editing and re-ordering bookmarks, adding new pages, re-ordering pages, deleting pages and cropping pages, and the Core Layer manual says the interfaces provide access to high-level document objects such as document, pages, annotations and form fields and support creating new documents and modifying existing ones; the scope records page, object, annotation, form, bookmark and page-structure editing, makes no existing-body-text rewrite claim, and keeps the capability inside the SDK rather than attributing it to the Editor application",
        "convert": "converting documents with the PDF-XChange Core API SDK, where the SDK comparison chart's Core API column marks support for converting external document and image formats to PDF only for raster image formats plus EMF/WMF/AMF and .txt, and marks export/render of pages or files to raster image formats; the scope records the documented raster-image, EMF/WMF/AMF and text-to-PDF directions and raster export, makes no native Office or HTML conversion claim because the chart limits Core API external conversion to those formats, and makes no fidelity guarantee",
        "merge": "merging and arranging PDFs with the PDF-XChange Core API SDK, where the SDK comparison chart's Core API column marks support for merging PDF files, adding new pages, re-ordering pages, deleting pages and cropping pages, and the Core Layer manual documents creation and modification of documents and pages; the scope records the documented merge, page insertion, re-order, delete and crop operations and makes no claim about preserving signatures, forms, links or annotations across a merge",
        "compress": "compressing and optimising PDFs with the PDF-XChange Core API SDK, where the SDK comparison chart's Core API column lists compression/optimisation options of Zip, JPEG, JPEG2000, Run Length, LZW, JBIG2 and CCITT Group 3/4; the scope records the documented compression and optimisation options and makes no lossless, fidelity or specific size-reduction guarantee",
        "sign": "signing PDFs with the PDF-XChange Core API SDK, where the SDK comparison chart's Core API column marks digital signature support, and the SDK help manual documents signing interfaces including deferred digital signing and PFX/PFX2 signing and signature-field methods on IPXC_Document; the scope records the documented digital-signature and signature-field support, makes no certificate-authority issuance, trust-validation, timestamping or independent legal-validity guarantee, and does not attribute the Editor application's signature UI to this SDK",
        "extract": "extracting content with the PDF-XChange Core API SDK, where the SDK comparison chart's Core API column marks extract/export text, extract image content to raster image format and AcroForm field-data extraction, and the Core Layer manual documents page-text interfaces and form-field access; the scope records the documented text, image and form-field extraction and makes no OCR claim because OCR is not documented for the Core API SDK"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 169,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "URL canonicalization checked 2026-10-18: the old https://www.tracker-software.com/product/pdf-xchange-core-api-sdk path returns 200 and redirects to https://www.pdf-xchange.com/product/pdf-xchange-core-api-sdk, now recorded as websiteUrl. tracker-software.com, read 2026-09-22 with headless Chrome: the PDF-XChange Core API SDK product page (visible text 2202 bytes), its system requirements page (2898 bytes), its demo limitations page (2567 bytes) and the PDF-creation and manipulation SDKs comparison chart (3882 bytes). Vendor documentation, not independently tested; no SDK was downloaded, no licence was requested and no document was produced.",
      "profileUrl": "https://dialegein.com/products/pdf-xchange-sdk/"
    },
    {
      "slug": "pdf24",
      "name": "PDF24",
      "tagline": "Free ad-funded PDF toolkit online, plus a free offline Windows Creator app.",
      "websiteUrl": "https://www.pdf24.org/en/",
      "summary": "PDF24 comes in two parts: free browser tools covering merge, split, compress, edit, sign, OCR, conversion and password protection.\n\nThe online tools are funded by advertising and run on servers in Germany. PDF24 says uploaded files and results are usually deleted about one hour after upload or creation.\n\nPDF24 Creator is a free Windows application, currently version 11.31.1. It adds a virtual PDF printer, a reader and offline batch processing. Files stay on the user's own PC.\n\nNo paid tier, subscription or forced premium version was found, and no account is required.",
      "bestFor": "Anyone who wants capable PDF tools at no cost and without an account, especially Windows users who want an offline virtual PDF printer.",
      "watchOutFor": "The online tools upload documents to PDF24's servers in Germany. The privacy policy says uploads and results are usually deleted after about one hour, with no backups. It names an exception for optional AI recognition of invoice data.\n\nPDF24 Creator works offline on Windows. There is no macOS or Linux version, and it is currently version 11.31.1.\n\nNo paid tier or subscription was found. The services are funded by advertising, with an optional AI feature. Editing means adding writing, images, shapes and freehand drawing, not rewriting existing page text.\n\nSigning is an electronic signature, not a certificate-based digital signature. Password protection uses AES-256 and can set permissions, but the pages do not establish that every reader enforces them.\n\nOCR produces searchable output and PDF/A with deskewing and cleaning. No accuracy figure is published. Redaction is a separate tool.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "geek Software GmbH",
      "platforms": [
        "web",
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "merge",
      "jobs": [
        "merge",
        "compress",
        "edit",
        "convert",
        "sign",
        "ocr",
        "protect"
      ],
      "jobScores": {
        "merge": 75,
        "compress": 75,
        "edit": 65,
        "convert": 75,
        "sign": 60,
        "ocr": 65,
        "protect": 70
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://tools.pdf24.org/en/redact-pdf",
        "quote": "Black out confidential text and images with a pen or shapes, pages are rasterized on saving so hidden content is removed for good and cannot be restored",
        "caveat": "The vendor’s own tool page, not a test we ran. Stating the mechanism is the useful part: the pages are RASTERIZED on saving, so the hidden content is gone - and so is the rest of that page’s text layer, which is the same cost as SnackPDF, one of the tools we did test. PDF24 also documents a separate \"Erase or white out\" feature in its help centre; that is a different operation and is not covered by this verdict. The tool is cloud-based, so the file is uploaded before it is redacted."
      },
      "processesLocally": false,
      "processesLocallyNote": "This verdict is for the online tools, which PDF24's own pages say run in the cloud on their servers, with files stored for about an hour.\n\nThe separate PDF24 Creator for Windows works offline and explicitly does not upload files. It has the opposite processing model from the online tools.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: PDF24 Creator for Windows. On their servers: The online tools. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Freeware, proprietary. PDF24 is a project of geek Software GmbH, Einstein Palais, Friedrichstrasse 171, 10117 Berlin, registered at Berlin-Charlottenburg under HRB 100865 B, VAT ID DE248847214, with Benjamin Bohlmann as managing director. The online services are provided free of charge and funded by advertising; the legal notice says the services currently offered free of charge will remain free of charge in the future, and the tool pages state there are no subscription traps or forced premium versions. PDF24 Creator is free Windows software for private and business use. No open-source licence or published source distribution was found, so the product is recorded as proprietary freeware; the online Terms of Use (as of 8 October 2026) expressly exclude PDF24 Fax and PDF24 Creator from their scope, and no paid tier was found on the pages read.",
      "openSource": null,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "eu",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "The online tools",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "PDF24 Creator for Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "merge": "merging PDFs with PDF24, where the Merge PDF tool documents combining multiple PDFs, images, Word documents and other supported files into a single PDF, with drag-and-drop ordering, an optional page mode, bookmarks and blank pages, files transferred over SSL to servers in Germany and deleted after one hour, and free use without registration; the page's without-losing-quality wording is recorded as marketing rather than a lossless guarantee, and the scope makes no claim about preserving signatures, forms or annotations across a merge",
        "compress": "compressing PDFs with PDF24, where the Compress PDF tool documents shrinking files by reducing image resolution and image quality and removing unneeded data, with adjustable DPI and image-quality percentage and additional removal options, with files uploaded over SSL to servers in Germany and deleted after one hour and free use without registration; the scope records the documented adjustable compression and makes no lossless or specific size-reduction guarantee",
        "edit": "editing PDFs with PDF24, where the Edit PDF tool documents writing on PDF pages, inserting images, rectangles, circles and arrows, and freehand sketching with the mouse, then downloading the changed PDF, and its own tip suggests converting a PDF to Word to edit the text; the scope records adding new marks, images and shapes and freehand drawing, makes no claim to rewrite existing page text, and keeps the web upload and one-hour deletion facts",
        "convert": "converting common Office and image files to PDF and converting PDFs back to editable DOCX and other formats in PDF24's online PDF Converter, where the conversion is done on PDF24 servers; not a claim about every format in the wider PDF24 tool set",
        "sign": "signing PDFs with PDF24, where the Sign PDF tool documents electronically signing contracts, applications and forms without a printer or scanner by drawing, uploading or photographing a signature and placing it on the PDF, with free use without registration and files deleted after one hour; the page describes an electronic signature only and does not document a certificate-based digital signature, certificate authority, trust validation or timestamping, so the scope makes no cryptographic-signature or legal-validity claim",
        "ocr": "running OCR with PDF24, where the PDF OCR tool documents making scanned documents and photos searchable with text recognition, copying text from them and saving as PDF/A with deskewed and cleaned pages, and provides a long language selector; the scope records the searchable-text and PDF/A output workflow and the language selector, and makes no accuracy figure, language-count guarantee or handwriting claim",
        "protect": "protecting PDFs with PDF24, where the Protect PDF tool documents encrypting PDF files with a password at AES-256 bits and restricting permissions such as printing, copying content, commenting or changing the document, with free use without registration and files deleted after one hour; the scope records the documented AES-256 encryption and permission restrictions and makes no claim that other readers enforce the permission flags, with redaction kept separate"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 271,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 0,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "pdf24.org; pdf24.org privacy policy; tools.pdf24.org compress and Creator pages. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdf24/"
    },
    {
      "slug": "pdf2go",
      "name": "PDF2Go",
      "tagline": "German browser PDF toolkit for converting, compressing, OCR and redaction.",
      "websiteUrl": "https://www.pdf2go.com/",
      "summary": "PDF2Go is an online document service run by QaamGo Web GmbH in Germany, with 50 apps for converting, editing, merging, splitting, compressing, OCR, e-signing, protecting and redacting PDFs and other file types. Free use needs no account; paid Starter, Pro and Business plans add 64 GB file sizes, batch processing, queue priority and monthly credits. The web service uploads your file to PDF2Go's European servers, and a separate desktop app is advertised as working offline and is included from the Pro plan upward.",
      "bestFor": "People who need a quick conversion or PDF fix in a browser without installing anything, and small teams that prefer a credit-based batch plan to a desktop licence.",
      "watchOutFor": "The free tier is limited and ad-supported: it offers access to most apps and limited file processing, without batch processing or AI use, and the edit and sign pages say files up to 50 MB can be processed without an account, while the paid plans raise the maximum file size to 64 GB. The desktop app is not included in Free or Starter and is included from Pro upward; it is free to try, then needs a plan that includes it. The web tools upload the document to PDF2Go's servers in Europe, and the privacy policy says download access is blocked after 24 hours and files are physically deleted at the latest after 72 hours, with no backups kept. Credits are consumed per task and AI tasks cost more, subscription credits expire each billing period while pay-as-you-go credits last 12 months.  The developer page offers URL-based integration and refers users to a partner service, which is not a native PDF2Go HTTP API.",
      "pricingModel": "freemium",
      "priceFromGbp": 6.85,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "QaamGo Web GmbH",
      "platforms": [
        "web",
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "compress",
        "merge",
        "protect",
        "ocr",
        "edit",
        "sign"
      ],
      "jobScores": {
        "convert": 80,
        "compress": 78,
        "merge": 78,
        "protect": 75,
        "ocr": 72,
        "edit": 68,
        "sign": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://pdf2go.com/redact-pdf",
        "quote": "After you draw the black boxes, the tool deletes the hidden content so it cannot be copied, selected, or searched. … Redacted files are processed to remove all marked content before download.",
        "caveat": "The vendor’s own words on the tool page, not a test we ran. The mechanism it describes - drawing black boxes - is also how covering tools describe themselves, and that one sentence is the only thing distinguishing them: we tested PDF Candy’s similar-looking tool and it covers rather than removes. The page separately claims it clears metadata, which is a different claim from removing the marked content. Test your own file."
      },
      "processesLocally": false,
      "processesLocallyNote": "It is a hosted service: uploaded files go to the vendor’s servers to be processed, so the record describes the upload and the documented handling rather than declaring files unsuitable for confidential use, which is the reader’s assessment to make. Desktop offline operation is a vendor claim rather than a tested confidentiality guarantee, and the current download page lists Windows, macOS for Apple Silicon and Linux. EU residency would need an explicit data-processing source, because German ownership alone is not that.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Windows, macOS, Linux. On their servers: Web. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. The terms are those of QaamGo Web GmbH, Fritz-Reichle-Ring 2, 78315 Radolfzell, Germany (Registergericht Freiburg i. Br., HRB 711602; CEO Jens-Peter Bierkandt), issued first in German and governed by German law, with prices shown including VAT. Credits are bought pay-as-you-go, valid for 12 months, or come as a fixed monthly allowance on a monthly or yearly subscription where unused subscription credits expire at the end of each billing period. Paid plans are Starter at EUR 8 per month, Pro at EUR 28 per month and Business at EUR 85 per month per person, with extra users at EUR 5 per user per month, and the provider offers a 14-day money-back guarantee on paid plans.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "eu",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting documents with PDF2Go, where the conversion apps document PDF to Word DOCX with editable text and reconstructed headings, lists and tables, PDF to JPG and other images, PDF to Excel, PDF to PowerPoint, PDF to Text, PDF to PDF/A and PDF to EPUB, and conversion to PDF from Word, JPG and other images, Excel, EPUB, PowerPoint, DJVU and web pages, plus AI speech tools; the PDF to Word page itself warns that a heavily designed layout or a scan has no underlying structure to recover so formatting may move, and the scope makes no fidelity guarantee and claims no format beyond the listed apps",
        "compress": "compressing PDF documents with PDF2Go, where the Compress PDF page documents Basic compression as the default medium-size high-quality setting and Strong compression for smaller files at medium image quality, six resolution presets from Insane at 20 dpi through Minimum 40, Normal 72, Ebook 150 and Printer 300 to Prepress 300, a target file size mode with an email preset aimed at 10 MB, greyscale conversion and an option to remove images as the last resort; the page says Basic keeps text sharp and mainly downsamples images, and the scope records the presets and target-size mode while making no lossless or size-reduction guarantee",
        "merge": "merging PDF documents with PDF2Go, where the Merge PDF page documents combining two or more files in the order the user sets, setting the output page size and orientation once for the merged document, and naming the output file, with the separate Split PDF and Organize PDF apps covering splitting into pages and reordering or removing pages; the scope is the documented combine, order, page-size and organise operations, with no claim about preserving signatures, forms or annotations across a merge",
        "protect": "protecting PDF documents with PDF2Go, where the Protect PDF page documents two separate passwords: an open password that must be entered before the file displays, and a permissions password that keeps the document readable while restricting what can be done with it, with the protection embedded in the file so it travels with the document; the scope is the documented open-password and permission-restriction workflow, and the page states no encryption algorithm or permission list, so no AES level, permission detail or reader-enforcement claim is made",
        "ocr": "running optical character recognition with PDF2Go, where the Make PDF Searchable page documents adding a searchable text layer to a scanned PDF so its words can be selected and found while the page still looks the same, and tells the user to select the document language before running OCR, selecting more than one language for a mixed document because recognition depends on a language-specific dictionary; the page states no language count and no accuracy figure, so the scope records the language selection and searchable-text-layer workflow without a language list, accuracy claim or handwriting claim",
        "edit": "editing PDF documents with PDF2Go, where the Edit PDF page documents adding text anywhere on the page, adding images and shapes, filling in PDF forms including documents that only look like forms, and painting over a scanned page with new content; the page says the editor places new text, images and shapes onto the page and that changing the existing body text requires converting to Word, editing there and converting back, so the scope is adding new content and filling forms rather than rewriting existing text, with no OCR claim for scanned pages and no layout-reflow claim",
        "sign": "signing PDF documents with PDF2Go, where the Sign PDF page documents drawing a signature, uploading a signature image or typing a signature as text, then placing it on the page, resizing or rotating it and saving the signed PDF, with files up to 50 MB signable without an account; the page explicitly says this is not a cryptographic digital signature and not a certificate-based signature that proves who signed and that the file has not changed, so the scope is the electronic signature image workflow only and makes no certificate-based, timestamping or long-term validation claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 127,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "pdf2go.com (home, redact-pdf, plans, privacy, desktop download page, developers). Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdf2go/"
    },
    {
      "slug": "pdfapilot",
      "name": "pdfaPilot",
      "tagline": "PDF/A and PDF/UA conversion, validation and correction for archiving and accessibility.",
      "websiteUrl": "https://callassoftware.com/products/pdfapilot/",
      "summary": "pdfaPilot turns documents into PDF/A for long-term archiving and checks or corrects them against PDF/UA for accessibility. Current version is 17.0.683 (12 May 2026). It can check PDF/A and PDF/UA compliance for machine-verifiable requirements, convert PDFs and many office formats plus emails with attachments into PDF/A, correct many common PDF/A or accessibility issues, and convert tagged PDFs to HTML with structure/tagging views for human review. The accessible-accessibility scope is honest about the limit: only the machine-verifiable part is complete; human semantic review remains necessary, and a passing automated report is not an accessible document. It ships as Desktop (Windows/macOS, Acrobat plug-in or standalone), Server, CLI and SDK for customer-managed Windows/macOS/Linux deployments. It is not a hosted service, not an OCR/editing/redaction/signing tool, and no legal-accessibility certification is claimed.",
      "bestFor": "Records management, libraries, government and anyone with a legal obligation to keep documents readable for decades, where the same tool has to cover PDF/A and machine-verifiable PDF/UA work, with human review for the rest.",
      "watchOutFor": "The PDF/UA boundary is the critical point: the vendor states that only part of PDF/UA can be verified by software, and pdfaPilot handles that machine-verifiable part; the HTML structure/tagging views support human verification but do not replace it. A passing automated report is not an accessible document, and no legal/compliance certification is claimed. It is a paid, quote-only product with a free 14-day trial, not a free tier; Desktop, Server, CLI and SDK are separately licensed variants, and Server operates with CLI, so confirm the package entitlements. Desktop uses Adobe PDF Library technology, a third-party dependency. Server/CLI/SDK are customer-managed on Windows/macOS/Linux, not vendor-hosted. It is not an OCR, general PDF editing/redaction/signing tool or a hosted service; PDF-to-HTML conversion is for accessibility structure review, and PDF/A/office/email conversion does not imply arbitrary format conversion or extraction.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "callas software GmbH",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "convert"
      ],
      "jobScores": {
        "accessibility": 85,
        "convert": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://callassoftware.com/products/pdfapilot/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence: the product page describes archiving conversion, PDF/A validation, PDF/UA verification and correction in detail and never mentions redaction or removing content. What it does not establish: that a correction cannot alter or delete content. A conformance fix rewrites parts of a document, so this is \"no redaction feature\" rather than \"incapable of removing anything\". A reader who needs redaction should read it as \"not the tool for that\"."
      },
      "processesLocally": true,
      "processesLocallyNote": "Customer-managed software: Desktop works on local files, and Server/CLI/SDK deployments run on infrastructure the customer controls (Windows/macOS/Linux, including systemd guidance). The vendor does not operate a required processing service for this product. No absolute no-upload or traffic guarantee is claimed; the Desktop Acrobat plug-in and Server/CLI/SDK are distinct editions.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Installed desktop, server and command-line software for PDF/A and PDF/UA conversion and validation. The file is read and written on your own infrastructure; callas software operates no processing service in the path."
      },
      "license": "Commercial, sold through resellers; Desktop, Server, CLI and SDK are licensed variants, and Server operates with CLI. No public price list is published, so pricing is quote-only. All variants have a free 14-day trial; there is no permanent free tier. Desktop uses Adobe PDF Library technology; dependency/licensing details need confirming for a deployment.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "cli",
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "desktop",
          "name": "pdfaPilot Desktop (standalone or Acrobat Pro plug-in)",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "server-cli-sdk",
          "name": "pdfaPilot Server, CLI and SDK (customer-managed)",
          "processing": "customer_server",
          "platforms": [
            "windows",
            "linux",
            "mac",
            "self_hosted"
          ],
          "interfaces": [
            "cli",
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "checking and correcting PDF/UA accessibility conformance with pdfaPilot: validating the machine-verifiable PDF/UA requirements, automatically correcting many common detectable issues, and converting tagged PDFs to HTML with structure/tagging visualisations to support human review of structure, language, reading order and tags. The scope records machine-verifiable validation/correction and human-review support only; it explicitly does not claim complete semantic accessibility, human verification, legal certification or a validator guarantee, and keeps automated checks distinct from human judgement",
        "convert": "converting documents with pdfaPilot: checking PDFs against PDF/A or converting incoming PDFs to PDF/A, converting many standard office document formats into PDF/PDF-A, and converting emails with attachments into standards-compliant PDF/A. It also supports tagged-PDF-to-HTML conversion for accessibility structure review. The scope records those documented archival/accessibility conversion directions and the PDF-to-HTML review output; it does not claim arbitrary format conversion, OCR, text extraction, general PDF editing/redaction/signing, or a hosted conversion service"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 711,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://callassoftware.com/products/pdfapilot/ (variants, PDF/A and PDF/UA validation/correction, PDF-to-HTML structure review, office/email-to-PDF-A, 14-day trial; read 2026-10-16); https://callassoftware.com/products/pdfapilot/system-requirements/ (Windows 10/11 and Server 2012R2-2025, macOS 12-27, Linux glibc>=2.19; read 2026-10-16); https://callassoftware.com/version-history/ (pdfaPilot 17.0.683, 12 May 2026; read 2026-10-16); https://help.callassoftware.com/m/pdfapilot; read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pdfapilot/"
    },
    {
      "slug": "pdfcpu",
      "name": "pdfcpu",
      "tagline": "Apache-2.0 Go PDF library and CLI for validation, assembly, extraction and encryption.",
      "websiteUrl": "https://pdfcpu.io",
      "summary": "pdfcpu is an Apache-2.0 PDF processing library and command-line tool written in Go, with a Go API and CLI. The current release is v0.16.2, published 11 October 2026; go.mod declares Go 1.26.0 and the release notes say building requires Go 1.26 or later, while the published binaries were built with Go 1.27.2. Official release assets include Darwin arm64 and x86_64, Linux arm64, armv7, i386 and x86_64, Windows i386 and x86_64, a JS/WASM build, checksums and source. pdfcpu validates against PDF 1.7 and basic PDF 2.0 checks, optimizes, splits, trims, collects and merges PDFs, extracts images, fonts, raw page content, pages and embedded XML metadata, encrypts and decrypts with owner/user passwords and permissions, resizes and rotates pages, adds and removes stamps and watermarks, manages attachments and portfolios, and validates signature integrity, reports signature evidence and removes signatures. Signature validation uses a local trusted-certificate store, optionally initialised from an EU Trusted List snapshot in a pdfcpu_eutl build; there is no signing API and no legal/eIDAS/trust guarantee. It runs locally as a Go library or binary with no hosted service.",
      "bestFor": "Go teams and shell automation that want PDF assembly, encryption and validation in one dependency-light binary.",
      "watchOutFor": "The current release is v0.16.2, published 11 October 2026. go.mod declares Go 1.26.0 and the release notes say building requires Go 1.26 or later, not the earlier Go 1.25 requirement; the published binaries were built with Go 1.27.2. Official assets cover Darwin arm64/x86_64, Linux arm64/armv7/i386/x86_64, Windows i386/x86_64 and JS/WASM, plus source; there is no hosted pdfcpu service. The extract command's documented modes are image, font, content, page and meta: it does not extract plain text from the text layer, does not perform OCR, and does not offer an attachment extraction mode; attachments and portfolios are managed by separate commands. Raw page content is PDF content-stream syntax, not extracted text. Merge supports create, append and zip modes with bookmarks, dividers, sorting and optional signature removal; split, trim and collect are separate page-assembly commands. Security commands cover encryption/decryption, owner/user password changes and reading or setting permissions, including AES-256 handling described in the 0.16.2 release notes; they do not provide universal reader enforcement or a security guarantee. Signature support is validation, evidence reporting and removal only: there is no signing API, standard builds start with an empty trusted-certificate store, importing a certificate does not establish legal validity, eIDAS compliance or an enterprise trust policy, and signature validation is not a legal or regulatory-compliance assessment. Validation is not complete ISO 32000 compliance, PDF 2.0 coverage is basic and improving, and strict/relaxed validation policies do not select PDF/A or constitute signature trust. No general redaction workflow is documented, and the absence of a redaction command is not proof that content has been securely removed. No generic Office/PDF conversion, rendering, OCR or arbitrary body-text editing is claimed.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Horst Rutter",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2017,
      "primaryJob": "protect",
      "jobs": [
        "protect",
        "merge",
        "edit",
        "compress",
        "extract"
      ],
      "jobScores": {
        "protect": 75,
        "merge": 88,
        "edit": 82,
        "compress": 75,
        "extract": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/pdfcpu/pdfcpu",
        "quote": null,
        "caveat": "The repository README is the source, because pdfcpu.io renders its documentation from JavaScript. The project describes itself as PDF tooling for Go and the command line, and lists validation, optimisation, encryption and page assembly - no redaction. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: a compiled Go library and CLI that runs in-process on the caller's machine. It has no service component, so processing cannot leave the host.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A compiled Go library and CLI that runs in-process on the caller's machine, with no service component."
      },
      "license": "Apache-2.0. The repository LICENSE.txt is the Apache License, Version 2.0. The README identifies Horst Rutter as the maintainer of pdfcpu and notes his PDF Association membership; the Go module is github.com/pdfcpu/pdfcpu. No price, subscription or hosted service is published; the Apache-2.0 licence is the terms.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "protect": "encrypting, decrypting and access-controlling PDFs with pdfcpu, where the security commands document encryption and decryption, changing owner and user passwords, and listing or setting permissions, with the 0.16.2 release notes describing AES-256 password handling and extraction-permission enforcement. The scope records password-based encryption/decryption, owner/user password changes and permission inspection/update, and makes no universal reader-enforcement, unbreakable-encryption, certificate-trust, legal-security or signature guarantee; signature validation and removal are a separate capability, not part of protect",
        "merge": "merging and assembling PDFs with pdfcpu, where the CLI and Go API document merge create/append/zip modes, sorting inputs, bookmarks and bookmark modes, divider pages, optional optimization and signature removal, and the separate split, trim and collect page-assembly commands. The scope records merging multiple PDFs into a new or existing document, appending, zip interleaving, page assembly and the documented bookmark/divider options, and makes no claim to edit page content, render pages, preserve signatures or convert to other document formats",
        "edit": "page insertion, removal and rearrangement, stamps, watermarks, forms, bookmarks and document properties",
        "compress": "optimizing PDFs by removing redundant page resources",
        "extract": "extracting PDF internals with pdfcpu, where the extract command documents image, font, content, page and metadata modes, with page selection: images and fonts written to disk, raw page content in PDF syntax, actual pages as single-page PDFs, and embedded XML metadata. The scope records image, font, raw-content, page and metadata extraction, explicitly notes that it does not extract plain text from the text layer and has no OCR or attachment-extraction mode, and makes no redaction or arbitrary content-removal claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 142,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "github.com/pdfcpu/pdfcpu (repository, README, LICENSE, API metadata); pdfcpu.io about and watermark documentation.",
      "profileUrl": "https://dialegein.com/products/pdfcpu/"
    },
    {
      "slug": "pdfelement",
      "name": "Wondershare PDFelement",
      "tagline": "Cross-platform PDF editor with OCR, Smart Redact and AI tools.",
      "websiteUrl": "https://pdf.wondershare.com/",
      "summary": "PDFelement is Wondershare's commercial PDF editor, sold as installed apps for Windows, Mac, iOS and Android alongside browser-based online tools and a cloud service. The current release is PDFelement 13. It edits text and images, converts to and from Office formats, runs OCR in more than 20 languages according to the vendor, handles forms, batch processing, e-signing, password protection, watermarks and a Smart Redact tool. The desktop apps are the main product; the free download behaves as a watermarked trial.",
      "bestFor": "Individuals and small teams that want a full desktop PDF editor with OCR and AI features at a lower sticker price than Adobe Acrobat.",
      "watchOutFor": "The unregistered version is a watermarked trial rather than a free tier: the current store FAQ says it offers limited functionality including Create, View, Protect PDF and Organize Pages and adds a watermark when saving, while a registered 14-day trial opens nearly all features but is also watermarked, gives an AI-usage quota and allows Recognize Table and Create Notes 3 times. The store's plan comparison puts feature-specific trial limits on the same page, including eSign 1 time, AI 10 uses, Combine up to 3 files within 20 MB and Batch up to 3 files within 20 MB, against paid allowances such as eSign 3 times and AI 50 uses. The earlier archive-derived note about a three-versus-five page conversion cap is superseded by this current table rather than repeated as a universal cap. A bare free-tier yes is misleading beside a watermarked trial, so what can actually be saved free is what belongs in the field. The Windows FAQ says three conversion pages in its table and five in its prose, and the versioned manuals and store pages document different OCR, compression and batch restrictions, so the conflict is recorded and the current build needs verifying before any universal cap is asserted. Smart Redact is vendor-described detection, preview and applied permanent removal rather than an independently verified guarantee that every sensitive item is found, and multiple-region residency needs a direct service-specific source. The price comparison with another product is removed in favour of dated comparable plan prices or nothing.",
      "pricingModel": "freemium",
      "priceFromGbp": 59.33,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Wondershare Technology Group Co., Limited",
      "platforms": [
        "web",
        "windows",
        "mac",
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "merge",
        "protect",
        "compress",
        "sign",
        "ocr"
      ],
      "jobScores": {
        "edit": 85,
        "convert": 85,
        "merge": 82,
        "protect": 82,
        "compress": 80,
        "sign": 80,
        "ocr": 78
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://pdf.wondershare.com/smart-redact-pdf.html",
        "readAt": "2026-10-16",
        "quote": "Permanently remove and black out sensitive content. Keep your PDFs secure and private. ... Mark for redaction - manually select texts or areas to black out. ... Permanently hide it with one step.",
        "caveat": "Read from the live vendor page on 2026-10-16; the earlier recording used an Internet Archive snapshot because the live guide returned only navigation. The vendor describes both permanent removal and blacking out, and also uses the word hide once, so the safe reading is that applied redaction is documented as removal but the wording is not perfectly consistent. Marking is separate from applying, as in the earlier guide. This remains a vendor claim rather than an independently tested result."
      },
      "processesLocally": false,
      "processesLocallyNote": "The online tools and cloud edition process and store files on Wondershare's servers, while the Windows, Mac and mobile apps are installed software. No vendor statement was found that all desktop processing - particularly the AI features - stays on the device.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Windows, macOS. On their servers: Web. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. The terms are published by WONDERSHARE TECHNOLOGY GROUP CO., LIMITED, with the site operated by WONDERSHARE GLOBAL LIMITED (Hong Kong, registration number 2794708) and WONSON GLOBAL ENTERPRISES INC (Vancouver, Canada) as subsidiaries. Paid PDFelement plans shown on the current Windows store page are Yearly US$79.99 (auto-renewing, listed against US$129), 2-Year US$109.99 (manual renewal), and Perpetual US$129.99 as a one-time fee for PDFelement 13; the store also advertises a 30-day money-back guarantee, and both the unregistered and the registered 14-day trial are watermarked.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF documents with PDFelement, where the Edit PDF page documents editing text with the same formatting, changing text size, font, colour and alignment, a built-in spelling check, adding, replacing, moving, rotating, flipping, cropping and opacity-changing images, adding watermarks, hyperlinks, page numbering and backgrounds, managing layers with visibility and import, and adding audio and video to PDFs; the scope is the documented text, image, page-decoration and layer editing, and two boundaries are kept: editing text inside a scanned page needs the separate OCR capability, and the unregistered trial only offers Create, View, Protect and Organize Pages, so editing is a paid or registered-trial capability, with no layout-reflow guarantee",
        "convert": "converting PDF documents with PDFelement, where the Convert PDF page documents PDF to Word DOC, DOCX and RTF, Excel XLS and XLSX, PowerPoint PPT and PPTX, Text TXT and XML, HWP and HWPX, images JPG, PNG, TIFF, BMP and GIF, PDF to editable, image-based or PDF/A, and PDF to HTML and EPUB, plus conversion to PDF from Word, Excel, PowerPoint, images, TXT, HTML, PUB, OFD, DWG, MPP and VSD files, with batch conversion and OCR-assisted scanning noted; the scope is the documented conversion directions, with no fidelity guarantee and no claim for formats not listed",
        "merge": "merging and splitting PDF documents with PDFelement, where the Combine page documents merging multiple PDFs and combining images into one PDF, arranging and reordering the combined document, and the optional Organize step to reorder, delete or rotate pages, and the Split PDF how-to page documents splitting a PDF into individual pages; the page also notes that the combined document can then be compressed; the scope is the documented combine, reorder, delete, rotate and split operations, with no claim about preserving signatures, forms or annotations across a merge",
        "protect": "protecting PDF documents with PDFelement, where the Password Protect page documents an open password to control viewing and a permission password to control editing and printing, three encryption levels of AES-128, AES-256 and 128-bit RC4, and permission settings that can allow low-quality printing, restrict editing while allowing signing or commenting, and block copying of text, images or other content; the same page and the Smart Redact page document marking content for redaction and applying it so that sensitive information is permanently removed and blacked out; the scope is the documented encryption, permission and redaction workflow, and the vendor's own eSign and certificate functions are left to the separate sign job, with no claim about how other readers enforce permissions beyond what the page states",
        "compress": "compressing PDF documents with PDFelement, where the Compress PDF page documents one-click compression that reduces resolution at high, medium or low settings, manual adjustment of image DPI resolution to reduce file size, and batch compression of multiple PDFs; the page claims compression without losing quality, which is recorded as vendor marketing rather than a lossless guarantee, and no size-reduction percentage is claimed",
        "sign": "signing PDF documents with PDFelement, where the Sign PDF page documents creating an electronic signature that is handwritten, typed or supplied as an image, adding it to a PDF, and auto-syncing signatures across the user's desktop and mobile devices, alongside certificate-based digital signatures that confirm author identity and document integrity and can appear as text or an image including a scanned handwritten signature on Windows and Mac, with batch digital signing using a digital certificate; the eSign page adds certificate-based legal signatures, sending documents to bulk signers and real-time signature tracking, marked as cloud-only; the scope separates the electronic signature from the certificate-based digital signature, keeps cloud sending as the platform-specific feature the page states, and makes no claim of a certificate authority, timestamping authority or independent legal certification",
        "ocr": "running optical character recognition with PDFelement, where the PDF OCR page says PDFelement turns scans and image PDFs into editable and searchable PDFs, preserves and reproduces document layout and formatting elements, states that it recognizes more than 20 languages, and documents choosing a page range and a language recognition option before applying OCR; the page's steps also mention converting scanned PDFs to editable text and deskewing, and the store comparison limits OCR results preview to the trial; the scope records the more-than-20-language statement as the vendor's claim, makes no accuracy figure claim, and does not claim handwriting-specific recognition"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 124,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "URL canonicalization checked 2026-10-18: https://pdf.wondershare.com/pdfelement/ returns 200 and canonicalizes/redirects to https://pdf.wondershare.com/; the dedicated product path is no longer a distinct page, so the official PDFelement brand home is recorded as websiteUrl. pdf.wondershare.com product page; wondershare.com privacy policy; official user guide and trial-limitation FAQ read from Wayback Machine snapshots because the vendor's CDN returned HTTP 503 for every subpage.",
      "profileUrl": "https://dialegein.com/products/pdfelement/"
    },
    {
      "slug": "pdfescape",
      "name": "PDFescape",
      "tagline": "Long-running free browser PDF editor and form filler, with paid desktop tiers.",
      "websiteUrl": "https://www.pdfescape.com/",
      "summary": "A hosted web PDF editor and form filler, operated under the Avanquest Software brand by 7270356 Canada Inc. under Quebec law, with Avanquest Software SAS as the EU data controller, running since the mid-2000s. In the browser you can annotate, add text, shapes, whiteout and images, fill or design basic AcroForm fields, crop, reorder and insert pages, add links, edit document information tags and add a password without registering or paying. Heavier features such as editing existing text and images, merging, compression, conversion, watermarking, 256-bit encryption, certificate signing and permanent redaction sit in the paid Windows Desktop app included with Premium or Ultimate, and no Desktop version number is published on the pages read. Premium is USD 5.99 billed monthly or USD 2.99 per month billed yearly; Ultimate is USD 8.99 billed monthly or USD 5.99 per month billed yearly.",
      "bestFor": "Non-technical users who occasionally need to fill, sign or lightly annotate a form without installing anything or creating an account.",
      "watchOutFor": "The free online editor uploads the PDF to US servers, caps each file at 10 MB, stores at most 10 files and keeps recent-file history for 7 days, while Premium and Ultimate raise the online limits to 40 MB, 100 stored files and 30 days or no expiration respectively; PDFescape also warns of further undisclosed limits on image sizes, page sizes, print page counts and usage rates. The free online service is ad-supported but adds no logo or watermark to the file. Its strongest capabilities need the paid Windows Desktop app: editing existing text and images, merging multiple PDFs, conversion to Word and other formats, compression, 256-bit encryption and password protection, certificate signing and sealing, and permanent redaction are documented under the Desktop section, with redaction and the strongest security in Ultimate, not the free browser. The free online editor lists password encryption but does not state the algorithm, so no algorithm is claimed for that tier. Whiteout in the browser is not redaction; the permanent blackout tool is a Desktop Ultimate feature. Signing is an Ultimate Desktop capability, not the free online editor, and no certificate-authority or legal-validity guarantee is made. The Desktop app is Windows 7, 8 or 10 only, needs internet for activation and updates, and Microsoft Office is required for plug-in conversion to Word, Excel and PowerPoint. Prices are in USD: Premium at USD 5.99 billed monthly or USD 2.99 per month billed yearly, and Ultimate at USD 8.99 billed monthly or USD 5.99 per month billed yearly, all with a 15-day money-back guarantee and a 7-day free trial. No Desktop version number is published, and no open-source licence is offered.",
      "pricingModel": "freemium",
      "priceFromGbp": 4.44,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "7270356 Canada Inc. (Avanquest Software)",
      "platforms": [
        "web",
        "windows"
      ],
      "launchedYear": 2007,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "merge",
        "compress",
        "convert",
        "sign"
      ],
      "jobScores": {
        "edit": 60,
        "protect": 60,
        "merge": 55,
        "compress": 55,
        "convert": 50,
        "sign": 50
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": null,
        "readAt": null,
        "quote": null,
        "caveat": "Downgraded from removes_content on 2026-09-22. PDFescape’s help centre has no article about redaction, and its feature pages describe the tool without stating what happens to the marked content. We could not find a vendor page that supports the verdict, so it is not one we can stand behind."
      },
      "processesLocally": false,
      "processesLocallyNote": "A hosted tool: the site's own FAQ states uploaded files are saved on their web servers in a United States data centre. The Windows desktop app processes locally, but it is a paid product rather than the free web editor.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Windows. On their servers: Web. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary freeware. PDFescape is a product of Avanquest Software; the Terms of Use form a binding agreement with 7270356 Canada Inc. (Avanquest Software), a Canadian company, and are governed by the laws of Quebec, Canada, while the EU data controller is Avanquest Software SAS, Immeuble Adamas, 2 rue Berthelot, 92400 Courbevoie, France. The online service is free forever with ads; paid Premium and Ultimate memberships are billed per month, with Premium at USD 5.99 billed monthly or USD 2.99 per month billed yearly, and Ultimate at USD 8.99 billed monthly or USD 5.99 per month billed yearly, all with a 15-day money-back guarantee and a 7-day free trial of Premium and the Desktop app. No open-source licence or source distribution was published on the pages read.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "us",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with PDFescape, where the free online editor documents annotating and marking up files, adding text, shapes, whiteout and images, filling and saving PDF forms, creating basic PDF forms, sharing, and printing or saving without watermarks, while the paid Windows Desktop app documents editing existing text and images, changing fonts and colours, highlighting, underlining and crossing out text, freehand drawing, shapes, sticky notes, bookmarks, hyperlinks, stamps and watermarks; the scope records the free browser annotation and form-filling route and the paid Desktop editing route separately, makes no fidelity or layout-stability guarantee and leaves redaction to the redaction field",
        "protect": "protecting PDFs with PDFescape, where the free online editor lists encrypting PDF contents using a password without stating the algorithm, and the paid Windows Desktop features document 256-bit encryption and password protection alongside permission restrictions in the Ultimate tier, with permanent redaction also a Desktop Ultimate capability; the scope records the free online password route without an algorithm claim, the Ultimate Desktop 256-bit and permission route, and no claim about how other readers enforce the permissions, while redaction remains its own field",
        "merge": "merging PDFs with PDFescape, where the paid Windows Desktop app documents merging multiple PDFs at once and combining and extracting PDF pages, included with the Premium and Ultimate memberships rather than the free online editor; the scope records the Desktop merge, combine and extract operations and makes no claim about preserving signatures, forms, links or annotations across a merge",
        "compress": "compressing PDFs with PDFescape, where the paid Windows Desktop app documents compressing and reducing the size of PDFs, included with the Premium and Ultimate memberships rather than the free online editor; the scope records the documented Desktop compression and makes no lossless or specific size-reduction guarantee",
        "convert": "converting PDFs with PDFescape, where the paid Windows Desktop app documents converting PDF files to Word and other formats, creating PDFs from 300+ file types and printing files to PDF, included with Premium and Ultimate rather than the free online editor, with Microsoft Office required for plug-in conversion to Word, Excel and PowerPoint; the scope records the documented Desktop conversion directions and the Office dependency, and makes no fidelity guarantee",
        "sign": "signing PDFs with PDFescape, where the paid Windows Desktop features list electronic signatures and certificate signing and sealing in the Ultimate tier, while the free online editor does not document a signing capability beyond form filling and annotation; the scope records the Desktop Ultimate electronic and certificate signing capability and makes no certificate-authority, trust-validation, timestamping or independent legal-validity guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 299,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 96.7
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdfescape.com (home, signup, premium, features, privacy). Vendor claims, not independently verified. The privacy policy URL returns HTTP 200 but rendered no readable text.",
      "profileUrl": "https://dialegein.com/products/pdfescape/"
    },
    {
      "slug": "pdfgear",
      "name": "PDFgear",
      "tagline": "Free cross-platform PDF editor, converter and signer with an AI copilot.",
      "websiteUrl": "https://www.pdfgear.com/",
      "summary": "PDFgear is a cross-platform PDF application from PDF GEAR TECH PTE. LTD. in Singapore, with installed builds for Windows, macOS, iOS and Android plus browser-based tools. It reads, edits and annotates PDFs, changes existing text and objects, fills forms, converts between PDF and Office or image formats, merges, splits, compresses, signs electronically and runs OCR on scans, with batch modes for conversion and OCR. It also bundles an AI copilot based on Microsoft Azure OpenAI Service. The vendor currently charges nothing and does not require sign-up.",
      "bestFor": "Individuals and small teams who want a genuinely free all-round PDF editor with offline desktop editing, no account and no watermark.",
      "watchOutFor": "The vendor says the product is free today with no paid tier found on the pages read, but it also says advanced features may become paid options in future and that pricing is still under consideration, so the current free position should not be read as a permanent price promise. The installed Windows, macOS, iOS and Android builds process files locally for their core features, but some advanced conversions and the AI copilot are cloud-based: the privacy policy says AI features send PDF content, chat text and limited metadata to Microsoft Azure OpenAI Service. The browser tools differ by tool: the Merge PDF and Sign PDF pages say the file stays in the browser and merging/signing happens locally, while the Compress PDF tool uploads the file and the online conversion tools rely on cloud processing. Signing in PDFgear is a visual electronic signature drawn, typed or uploaded and applied locally; the certificate-backed digital signature, audit trail and eIDAS/ESIGN workflow described alongside it belong to eSignGear, a separate product built by the same team, so PDFgear itself is not credited with certificate-based signing. OCR converts scans into editable Word, TXT or RTF output with 30+ languages for conversions and 10+ for area extraction, but the vendor says direct scanned-to-searchable-PDF conversion is still in development and publishes no accuracy figure. Editing changes existing text and objects, with original formatting claimed to be preserved, but no layout-fidelity guarantee is made. Merging claims no quality loss and no watermark, compression offers Low, Medium and Strong levels, and conversion covers 60+ formats; none of these carries a lossless, fidelity or preservation guarantee.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "PDF GEAR TECH PTE. LTD.",
      "platforms": [
        "windows",
        "mac",
        "ios",
        "android",
        "web"
      ],
      "launchedYear": 2022,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "merge",
        "compress",
        "sign",
        "ocr"
      ],
      "jobScores": {
        "edit": 85,
        "convert": 85,
        "merge": 80,
        "compress": 75,
        "sign": 70,
        "ocr": 70
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": null,
        "readAt": null,
        "quote": null,
        "caveat": "Downgraded from removes_content on 2026-09-22. The only English PDFgear material found is an article about REMOVING TEXT, which is a different operation from redaction and does not describe the mechanism. No vendor page states that marked content leaves the file."
      },
      "processesLocally": true,
      "processesLocallyNote": "The vendor states that PDFgear processes files locally without storing user data, and the Windows, macOS, iOS and Android builds are installed applications that read and write local files. The same site also says certain advanced conversions run on PDFgear's Amazon Cloud servers and the AI copilot is cloud-based, so this holds for the core editing workflow but not every feature.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "The vendor claims local processing, but also states that some advanced conversions run on its Amazon Cloud servers. The browser tools necessarily upload. Testing an installed build is not something a browser probe can do - this needs a different method."
      },
      "license": "Proprietary freeware. PDFgear is operated by PDF GEAR TECH PTE. LTD., 91 Bencoolen Street, #05-09 Sunshine Plaza, Singapore 189652, the entity named in the privacy policy last updated 23 March 2026. The product is free to use today with no paid tier found on the pages read, and the vendor says advanced features may become paid options in future with pricing still under consideration, so no price is asserted. No open-source licence or source distribution was published. The AI copilot sends PDF content and chat text to Microsoft Azure OpenAI Service, and some advanced conversions and browser tools use cloud processing, while the installed Windows, macOS, iOS and Android builds and the browser merge/sign tools are documented as local processing.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "in_process",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "in_process",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "web",
          "name": "Browser tools",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with PDFgear, where the PDF editor page documents a direct text-editing mode that can search for, select, copy and change existing PDF text, identify and change fonts and sizes, and edit existing text boxes and objects, plus inserting images, text boxes, hyperlinks and shapes, highlighting, stamping, watermarking, annotating, adding sticky notes, underlining and striking through text, filling and creating forms, and organising pages; the scope records the documented direct text and object editing and annotation on the installed Windows, macOS, iOS and Android builds, makes no layout-fidelity guarantee, and leaves OCR and conversion to their own jobs",
        "convert": "converting documents with PDFgear, where the PDF converter page documents support for 60+ document formats, Microsoft Office documents and image formats, converting images, Excel and text to PDF and converting PDFs to other formats, with batch conversion and custom page ranges and a claim that original formatting is retained; the vendor also says some advanced conversions use cloud processing, so the scope records the documented conversion directions and batch mode, notes the cloud exception for some advanced conversions, and makes no fidelity guarantee",
        "merge": "merging PDFs with PDFgear, where the Merge PDF page documents joining two or more PDFs into one document, arranging files and pages and removing or reordering pages, with no watermark and no account required, and says the browser merging tool keeps files in the browser and processes them locally rather than uploading them for merging; the page claims merging without losing quality, which is recorded as marketing, and the scope makes no claim about preserving signatures, forms, links or annotations across a merge",
        "compress": "compressing PDFs with PDFgear, where the Compress PDF page documents three compression levels, Low for high quality and a larger file, Medium for a high-quality medium file and Strong for a less-quality smallest file, with no email or account required, and the tool uploads the file for processing in the browser; the scope records the three levels and the upload boundary and makes no lossless or specific size-reduction guarantee",
        "sign": "signing PDFs with PDFgear, where the Sign PDF page documents a browser-based electronic signature created by drawing, typing or uploading an image, with customisable colours and fonts, plus added text, preset stamps and images, and says the file stays in the browser and signing is processed locally; the page distinguishes this visual electronic signature from certificate-based digital signatures and says the certificate-backed signing, audit log and eIDAS/ESIGN workflow belong to eSignGear, a separate product built by the same team, so the scope is the visual electronic signature only and makes no certificate-authority, audit-trail, timestamping or independent legal-validity guarantee",
        "ocr": "running OCR with PDFgear, where the PDF OCR page documents converting scanned PDFs into editable document formats such as Word, TXT and RTF and copying text from scanned PDFs, with 30+ languages supported for OCR during PDF conversions and 10+ languages for area extraction OCR, and says direct conversion of scans into searchable, selectable and editable PDFs is still in development; the scope records the documented editable-output OCR and language figures and makes no accuracy guarantee and no searchable-PDF claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 206,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdfgear.com; pdfgear.com/insights/is-pdfgear-free.htm; pdfgear.com/pdfgear-for-windows/; pdfgear.com/about-pdfgear/. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdfgear/"
    },
    {
      "slug": "pdfgohtml",
      "name": "pdfGoHTML",
      "tagline": "Free Acrobat plug-in that renders a tagged PDF as structured HTML, so a person can judge its accessibility and tagging.",
      "websiteUrl": "https://callassoftware.com/products/pdfgohtml/",
      "summary": "pdfGoHTML opens a PDF, says immediately whether it is tagged, and converts it to HTML so you can see the structure rather than infer it. The exported page has several views - the default view, one that exposes the structure tags, an easy-reader view, and inverted, low-vision and dyslexia-friendly presentations - and the structure-tags view is the interesting one: it shows where the tagging needs work. It is the tool for the half of accessibility that no checker can do, because a document can pass every automated test and still be unusable to a screen reader. The current release is 2.2.032 (4 September 2025), a free Acrobat plug-in for Windows and macOS; obtaining the download requires an account, but the inspection runs inside Acrobat on the local machine. It is not a validator or a remediation tool.",
      "bestFor": "Anyone who has to decide whether a document's tagging is meaningful rather than merely present: accessibility specialists reviewing a supplier's output, and teams who have run a checker, been told the document passes, and still want to see what a reader would actually get.",
      "watchOutFor": "It is an inspection aid, not a validator. It does not check a document against PDF/UA or WCAG and it will not tell you whether a document passes anything - it shows you the structure and leaves the judgement to you, which is the point but also the limit. It only becomes useful on a tagged PDF: it indicates whether a file is tagged, and an untagged scan gives it nothing to inspect, so it is not a starting point for remediation. It is an Adobe Acrobat plug-in, so it needs Acrobat installed on Windows or macOS, and it is one of the few free tools here that still requires an account: the download link is behind a sign-up. The account requirement is about obtaining the download rather than about running it, so this record does not claim that signing in is needed while the plug-in inspects a document. It does not remediate tags, validate PDF/UA/WCAG, certify accessibility or replace a screen-reader test.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "callas software GmbH",
      "platforms": [
        "windows",
        "mac"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility"
      ],
      "jobScores": {
        "accessibility": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://callassoftware.com/products/pdfgohtml/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence: the product page describes converting tagged PDF into HTML for inspection, with several display views, and never mentions redaction or removing content. This is the easiest absence in the batch to be confident about, because the tool writes HTML and does not write PDF at all - there is no output document in which content could be left behind. What it does not establish: anything about the other callas products, which are separately licensed and separately recorded."
      },
      "processesLocally": true,
      "processesLocallyNote": "An Adobe Acrobat plug-in that inspects/converts the open document inside Acrobat on the machine running it. The account requirement is for obtaining the download; nothing in the documentation establishes that signing in is needed while the plug-in processes a document, and the record does not claim that no data is transmitted. Acrobat host edition/version and licence prerequisites remain to verify for a given environment.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An Acrobat plug-in: the PDF is opened and converted to HTML inside your own copy of Acrobat, on your own machine. The account the vendor requires gates the download, not the processing."
      },
      "license": "Free to download and use; an account is required to obtain the download link. The current product page describes pdfGoHTML as a free Acrobat plug-in; the account gates the download, not document inspection. Proprietary freeware, not open source; no source licence is offered.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "inspecting an existing tagged PDF's accessibility structure with pdfGoHTML: converting it to a structured HTML representation with views for the default rendering, structure tags, easy-reader, inverted, low-vision and dyslexia-friendly presentation; checking whether the file is tagged; and supporting human review of tag structure, language, content order and where tagging needs work, including archival workflows that require structural information. The scope records visual/human inspection and structure preview only; it explicitly does not validate PDF/UA or WCAG, produce a conformance result, remediate or edit tags, certify accessibility, replace screen-reader testing or guarantee legal compliance"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 675,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://callassoftware.com/products/pdfgohtml/ (free Acrobat plug-in, inspection/structured HTML, account-gated download; read 2026-10-16); https://callassoftware.com/products/pdfgohtml/system-requirements/ (system-requirements page; download/account; read 2026-10-16); https://callassoftware.com/version-history/ (pdfGoHTML 2.2.032, 4 September 2025; Windows/macOS fixes; read 2026-10-16); https://callassoftware.com/callas-downloads/ (downloads; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/pdfgohtml/"
    },
    {
      "slug": "pdfium",
      "name": "PDFium",
      "tagline": "Google's BSD-licensed C++ PDF rendering engine, embedded in Chrome.",
      "websiteUrl": "https://pdfium.googlesource.com/pdfium/",
      "summary": "PDFium is the open-source C++ PDF engine that Chrome uses to display PDFs. It is a source dependency rather than a released product: GitHub has no PDFium releases, and the meaningful revision is the PDFium commit pinned by Chromium's DEPS file, currently a50f1a5953264de698f398fe3a2ef6153677fafa. The engine loads and renders pages, rasterises them, extracts text and supports text search, displays and fills forms, handles annotations, exposes tagged-structure/accessibility APIs, and provides a low-level public edit API that can create documents and pages, add page objects, fill forms, add annotations and save a copy. It also has signature inspection APIs but no signing API, OCR, redaction or encryption-creation workflow. PDFium is a library with no end-user application; the repository's standalone test program rasterises pages for testing, and the real user-facing PDF interface is Chromium's wrapper and Chrome's built-in viewer. Building it means using Chromium's GN, Ninja and depot_tools toolchain, and official source/build support is separate from Chrome/Chromium's end-user platform support.",
      "bestFor": "Developers who need a permissively licensed PDF renderer to link into their own application or application.",
      "watchOutFor": "PDFium has no normal product release feed: GitHub reports no releases, and the meaningful version is a moving source revision. This record uses the Chromium DEPS pin a50f1a5953264de698f398fe3a2ef6153677fafa; that pin changes as Chromium rolls PDFium, so it is a snapshot rather than a stable version. There are no official standalone PDFium binaries or end-user application; the repository test program is a rasterisation test, and users normally encounter PDFium through Chromium's wrapper or Chrome's built-in viewer. Building requires Chromium's GN, Ninja and depot_tools toolchain; the Windows, Linux, macOS and Android build surfaces are source/build support, not a promise of packaged binaries. The LICENSE is not BSD-only: it opens with BSD-3-Clause and continues with the full Apache-2.0 and third-party notices. The public API is low-level: it can load and render pages, extract text, search, fill forms, handle annotations and accessibility structure, create documents/pages and page objects, and save a copy; it is not a general Acrobat-style editor and does not provide arbitrary body-text editing, a complete redaction workflow, encryption creation or a signing API. Signature support is inspection only (FPDF_GetSignatureCount/FPDF_GetSignatureObject), not certificate signing or trust. Encrypted documents can be opened and saved with FPDF_REMOVE_SECURITY, but that is security removal, not an encryption workflow. The Chromium wrapper has accessibility/OCR service hooks for Chromium's own UI, but OCR is not a PDFium engine capability. No Office conversion, hosted service, certificate trust, signing or universal rendering/accuracy guarantee is claimed.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "The PDFium Authors",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "android"
      ],
      "launchedYear": 2014,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit"
      ],
      "jobScores": {
        "view": 80,
        "edit": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://pdfium.googlesource.com/pdfium/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Inherent to the technology rather than a vendor claim: an in-process C++ rendering engine with no service component, so documents are parsed and rendered inside the host process and never leave the machine. There is no data residency question because there is no service.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An in-process C++ rendering engine with no service component, so documents are parsed and rendered inside the host process."
      },
      "license": "BSD-3-Clause for PDFium itself, with a LICENSE file that also carries the full Apache License 2.0 and further third-party licence text. The copyright line is The PDFium Authors. PDFium is a Google-maintained open-source project built with Chromium's GN/Ninja/depot_tools toolchain; there is no product release feed and no paid edition.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "in_process",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "loading, parsing and rendering PDFs with PDFium's public API, where the C API exposes document loading, page handles, bitmap rendering, text extraction and search, form display/filling, annotations and tagged-structure/accessibility APIs; Chromium's pdf/pdfium wrappers additionally implement document loading, page rendering, text runs, selection/caret, form integration, accessibility and save-data paths for Chrome's viewer. The scope records the engine and wrapper parsing/rendering/text/form/annotation/accessibility surface and the test program's rasterisation role, and makes clear that PDFium is not a standalone viewer, has no OCR engine, and is distinct from Chrome's end-user UI; no redaction, signing/trust or format conversion is claimed",
        "edit": "using PDFium's low-level public edit API, where public/fpdf_edit.h documents FPDF_CreateNewDocument, FPDFPage_New, page-object creation and insertion (including FPDFPageObj_NewTextObj and FPDFText_SetText), transforms and flattening; public/fpdf_formfill.h and fpdf_annot.h document form filling and annotation creation; and public/fpdf_save.h documents FPDF_SaveAsCopy with incremental/no-incremental/remove-security flags. The scope records low-level document, page and object creation/manipulation and save-copy operations exposed to embedding developers, and makes no general Acrobat-style editing interface, arbitrary body-text layout editing, complete redaction, encryption-creation, signing or certificate-trust claim; signature APIs are inspection-only and OCR/Office conversion are not provided"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 477,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 83.3
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdfium.googlesource.com (project home, LICENSE file); opensource.google project listing; InfoQ report on the 2014 open-sourcing.",
      "profileUrl": "https://dialegein.com/products/pdfium/"
    },
    {
      "slug": "pdfix",
      "name": "PDFix",
      "tagline": "On-premises PDF accessibility desktop app and SDK: PDF/UA and WCAG validation, auto-tagging and remediation.",
      "websiteUrl": "https://pdfix.net/",
      "summary": "PDFix is a desktop application and developer SDK for PDF accessibility work from PDFix s.r.o., with a US distributor PDFix-US LLC. The current official downloads identify PDFix Desktop 3.3.0 and PDFix SDK 9.3.0, available on Windows, macOS and Linux. Desktop is a local GUI for PDF/UA, WCAG 2.1/2.2, Section 508 and EAA checking with veraPDF, plus auto-tagging, manual remediation, reading order, alt text, headings, tables, lists, forms and metadata editing. The SDK embeds the same accessibility engine in Python, C#, Java, C++, Node.js and CLI workflows, with programmatic auto-tagging, remediation, validation and conversion. Core Desktop/SDK processing is local/on-premises, and the FAQ describes the SDK as fully on-premises. However, the optional AI Actions marketplace includes external actions such as Amazon Textract and OpenAI that can send page images or content to those third-party services; the vendor tells users to check each action's data handling. Desktop Lite and SDK Lite are permanently free; Desktop Pro is EUR 350 or USD 599 per user per year and Enterprise is EUR 1,000 per user per year; SDK commercial tiers are quote-only. Free downloads can use the features without registration or time limit but saved documents can carry a watermark. The vendor explicitly does not guarantee 100% accessibility, and human review remains required.",
      "bestFor": "Compliance teams, accessibility specialists and engineering teams that need local or customer-managed PDF remediation at volume, and can account for optional AI Actions that may send content to Amazon Textract or OpenAI.",
      "watchOutFor": "The current official download page identifies PDFix Desktop 3.3.0 and PDFix SDK 9.3.0; no older version should be presented as current. The provider is PDFix s.r.o. in Stupava, Slovakia; PDFix-US LLC is the US distributor, not a separate product. Core Desktop/SDK processing is local/on-premises, but the optional AI Actions marketplace includes Amazon Textract and OpenAI actions that send page images or content to those third-party services. The vendor's blanket 'no cloud upload' language therefore applies to core processing, not to every optional AI action; check each action's data handling for sensitive documents. Desktop Lite and SDK Lite are permanently free, and free downloads can use the features without registration or time limit, but saved documents can carry a watermark; the EULA also defines a separate 30-day Trial License, so do not conflate the permanent Lite tiers, the watermarked free download and the trial. Desktop Lite is a free PDF accessibility checker; SDK Lite covers PDF rendering, object/content/metadata reading, while commercial SDK tiers are quote-only. Desktop Pro is EUR 350 or USD 599 per user per year; Desktop Enterprise is EUR 1,000 per user per year; SDK tiers are quote-only. No GBP price has been verified and no currency conversion is made. Redaction is an SDK Professional/Enterprise feature, not a Desktop capability. The vendor explicitly does not guarantee 100% accessibility; validation and mechanical fixes do not replace human semantic review or establish legal compliance. The Desktop GUI and the embedded SDK are distinct; there is no PDFix-hosted REST/SaaS edition of this product, and networking by SDK customers does not create one. Desktop and SDK are proprietary binaries; free use is not the same as open source, and the EULA's Apache-2.0 Free License does not establish that the product source is available. PDFix Mobile and the separate PDFix Services are not part of this desktop/SDK record.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "PDFix s.r.o.",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "edit"
      ],
      "jobScores": {
        "accessibility": 90,
        "edit": 55
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://pdfix.net/solutions/standard-pdf-features/",
        "quote": "Redaction permanently removes sensitive content from the selected area. … Once the text or graphics are removed, they cannot be retrieved.",
        "caveat": "The vendor’s own feature page, not a test we ran. The scope is narrower than the verdict implies: \"from the selected area\". The page separately claims automatic removal of all private information and personal data connected to the redacted area, which is a broader claim and is not established by that sentence."
      },
      "processesLocally": true,
      "processesLocallyNote": "Core Desktop and SDK processing is local/on-premises on Windows, macOS and Linux, and the SDK is embedded in the customer's application. Optional AI Actions can send page images or content to Amazon Textract or OpenAI; those external actions are the exception, not evidence of a PDFix-hosted service. License activation can be online or offline; no account is required for the free download.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A desktop application and an embeddable SDK, documented as fully on-premises with no document data sent to PDFix servers or any cloud service. One caveat that belongs with the verdict: two optional AI actions in the vendor's own marketplace do send page images to Amazon Textract and content to OpenAI, so the no-upload position is true of the core product and false for those specific actions."
      },
      "license": "Proprietary commercial EULA from PDFix s.r.o., Jilemnického 2346/3, 90031 Stupava, Slovak Republic (CORP ID 46248650); PDFix-US LLC, Frederick, Maryland, is the US distributor. The EULA provides a Free License under Apache 2.0, a 30-day Trial License, and commercial Desktop Pro/Enterprise and SDK tiers. Desktop Pro is EUR 350 or USD 599 per user per year; Desktop Enterprise is EUR 1,000 per user per year; SDK commercial tiers are quote-only per instance. Desktop Lite and SDK Lite are permanently free tiers. Free downloads can carry a watermark on saved documents. No public product-source licence is established; openSource remains null.",
      "openSource": null,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "desktop",
          "name": "PDFix Desktop (GUI accessibility remediation and checking)",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "sdk",
          "name": "PDFix SDK (embedded library and CLI)",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "checking and repairing PDF accessibility with PDFix Desktop and SDK, where the official feature list documents PDF/UA validation, WCAG 2.1/2.2, Section 508 and EAA profiles through veraPDF, automatic tagging, reading order, headings, tables/lists, alt text, forms, metadata and validation reports with fix-and-revalidate actions. The scope records PDF/UA/WCAG/508 validation, auto-tagging and manual or programmatic remediation in Desktop/SDK, explicitly notes the vendor does not guarantee 100% accessibility and that validation/fixes do not replace human semantic review or establish legal compliance, and makes no screen-reader authoring or universal-compliance claim",
        "edit": "editing PDF tagging, structure and content for accessibility remediation with PDFix Desktop and SDK, where the official Desktop feature list documents tag creation/editing, reading-order changes, headings, alt text, table row/column/header editing, lists, bookmarks, annotations, forms, language/metadata and a low-level document object browser, and the SDK exposes corresponding programmatic remediation operations. The scope records the documented tagging/structure/content-remediation operations and programmatic SDK actions, distinguishes the manual Desktop workflow from embedded SDK automation, and makes no generic word-processor/body-text editing, OCR, Office conversion, signing or hosted-service claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 906,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 90
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://pdfix.net/download/ (Desktop 3.3.0 and SDK 9.3.0; Windows/macOS/Linux; free to start and watermark); https://pdfix.net/products/pdfix-sdk/ (SDK languages/CLI, local processing, no 100% guarantee); https://pdfix.net/pdfix-desktop-feature-list/ (validation, tagging, reading order, alt text, tables, metadata); https://pdfix.net/faq/ (free/Lite/watermark, on-prem and AI Actions, external table action, no full-accessibility guarantee); https://pdfix.net/pricing/ (Desktop Lite free, Pro EUR 350/USD 599, Enterprise EUR 1,000, SDK quote); https://pdfix.net/terms/ (EULA, PDFix s.r.o., Free/Trial licences); https://pdfix.net/offline-licensing/ (offline activation); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pdfix/"
    },
    {
      "slug": "pdflib",
      "name": "PDFlib",
      "tagline": "Long-standing commercial library for generating PDFs, with page-import and personalisation tiers.",
      "websiteUrl": "https://www.pdflib.com/",
      "summary": "PDFlib is a library for creating PDF files from your own application: laying out text, images and vector graphics, and writing a valid PDF rather than printing through a driver. It is one of the oldest commercial PDF toolkits still sold, and the family splits into three levels - PDFlib for creation, PDFlib+PDI for importing pages from existing documents, and the Personalization Server for template-driven output at volume. A separate text-extraction product, TET, shares the brand.",
      "bestFor": "Server-side document generation where the output has to be a real, controlled PDF: invoices, statements, labels and reports produced at volume, in any language with good typographic control. Teams that want one vendor for generation rather than a rendering engine they have to drive.",
      "watchOutFor": "The licence is priced per platform and per product level, and the levels are not interchangeable: a PDFlib licence does not include page import, that is PDFlib+PDI at roughly double, and PPS roughly triples it again. Shipping the library inside a product you sell needs a premium licence for royalty-free redistribution, which is a different and larger purchase than the standard one, and support is billed yearly at 40% of the licence fee on top - a renewal most buyers do not expect from something described as perpetual. Buying for Windows Server and for desktop are different line items at very different prices. And the company is now owned by Apryse, so the commercial terms sit with a vendor that also owns iText, Apryse SDK, Xodo, PDF Studio and Scanbot - worth knowing if you are consolidating PDF suppliers and would rather not concentrate them. The family levels are not interchangeable: page import is PDFlib+PDI and volume personalisation is the Personalization Server, neither of which a base PDFlib licence includes, and text extraction is the separate TET product rather than part of PDFlib. Optional annual support is 40% of the licence fee.",
      "pricingModel": "paid",
      "priceFromGbp": 740,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Apryse",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 1997,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "accessibility",
        "protect"
      ],
      "jobScores": {
        "convert": 85,
        "accessibility": null,
        "protect": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.pdflib.com/products/pdflib-family/pdflib-11-features/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and the search is worth stating exactly because there is no sentence to quote. The PDFlib 11 feature page was read on 2026-09-22 and searched for `redact`, `sanitiz`, `black out` and `obliterat`: no occurrence of any of them. The product is a generator - it writes PDFs from your data rather than editing documents you already have - and its two editing-adjacent capabilities are page import (PDFlib+PDI) and personalisation, neither of which removes content. What this does not establish: anything about TET, the sibling text-extraction product, or about a premium or OEM build. It also does not establish that a document generated with PDFlib could not contain sensitive data; a generator writes whatever it is told to write."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded library, so generation runs inside the application that links it, on the infrastructure that application runs on. The library itself has no service and no account in the path, but that is a statement about the library rather than about every deployment: the official feature matrix includes Internet-download helpers and network resources, so where documents go is determined by how the application is deployed and configured. A local generation architecture is not a network test.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A commercial library for generating PDFs, linked into your own application. It runs in your process and writes to your own storage; PDFlib operates no processing service to upload to."
      },
      "license": "Commercial perpetual per-platform licence; optional support at 40% of the licence fee per year; premium licences for royalty-free redistribution",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "PDF generation from text, images and SVG; not a Word/Excel file converter",
        "accessibility": "tagged PDF and PDF/UA-1 generation",
        "protect": "encryption"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 952,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdflib.com: the home page, the PDFlib product family page, the PDFlib 11 feature page and the prices page, all read 2026-09-22 with headless Chrome, plus the European Central Bank reference rate for the same date. Vendor documentation, not independently tested; the library was not installed.",
      "profileUrl": "https://dialegein.com/products/pdflib/"
    },
    {
      "slug": "pdfminer-six",
      "name": "pdfminer.six",
      "tagline": "Pure-Python library for pulling text, images and structure out of a PDF, with a command-line tool.",
      "websiteUrl": "https://pdfminersix.readthedocs.io/en/latest/",
      "summary": "pdfminer.six is a community-maintained MIT Python library and CLI for extracting information from PDFs. The current PyPI release is 20260107, uploaded 7 January 2026; it requires Python 3.10 or newer and publishes a py3-none-any wheel. It parses a PDF into Python objects and provides automatic layout analysis for text, with exact location, font and colour information; it extracts embedded images (JPG, PNG, TIFF, JBIG2 and bitmaps), HTML or hOCR output, table-of-contents/outline data, tagged content and AcroForm interactive form fields, and supports CJK languages, vertical writing, various font types, common stream compressions, and RC4/AES-encrypted inputs. The project code is pure Python, but installation brings charset-normalizer and cryptography, with Pillow only via the optional image extra. The CLI includes pdf2txt.py for text extraction and dumppdf.py for internal PDF object inspection. It is a reader/extractor: it does not write or edit PDFs, does not perform OCR, and an image-only scan needs a separate OCR engine.",
      "bestFor": "Python projects that need text, layout and object-level information from a PDF without adding a heavyweight dependency, including CJK/vertical documents and AcroForm field extraction. It is not an OCR or PDF-writing tool.",
      "watchOutFor": "The current PyPI release is 20260107, uploaded 7 January 2026, with Python >=3.10 and a py3-none-any wheel; the documentation's development version is newer, so do not treat a dev build as the released package. The code is MIT and community maintained; no company owner or legal entity is documented, and the copyright belongs to the original PDFMiner author, 2004-2016. Although the project code is pure Python, installation requires charset-normalizer and cryptography, and image extraction needs the optional Pillow image extra; do not say it has no runtime or compiled dependencies. Text output order is inferred from layout, so tables become loose lines and complex multi-column pages can interleave; projects needing table structure should use a table-specific tool. Some documents legitimately produce (cid:x) values when fonts lack a usable Unicode mapping; this is a font-mapping caveat, not OCR or a generic text guarantee. The package does not write, edit, redact, sign or repair PDFs and has no OCR; image-only scans produce no text without a separate OCR engine. The library and pdf2txt.py have no built-in PDFminer service or account requirement, but this is not an absolute no-network guarantee for every deployment or dependency. PDF-1.7 support is qualified by the project as almost complete, and no semantic/reading-order or security guarantee is made.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "pdfminer.six contributors",
      "platforms": [
        "linux",
        "windows",
        "mac",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract"
      ],
      "jobScores": {
        "extract": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://pdfminersix.readthedocs.io/en/latest/",
        "readAt": "2026-09-22",
        "quote": "Pdfminer.six is a python package for extracting information from PDF documents.",
        "caveat": "Recorded as `none` on absence from the documented feature set, which is a list of things that read a PDF: parse objects, group text, extract text, images, table of contents and tagged content, support encryption and AcroForm fields. Nothing in it removes content, and the library does not write PDFs at all. What it does not establish: that extracted text is safe. This is the same point the Apache Tika record makes - an extraction tool's output carries whatever was in the document, and reading it is not redacting it."
      },
      "processesLocally": true,
      "processesLocallyNote": "The documented library and CLI run in the caller's own Python interpreter/machine and require no PDFminer account or hosted service. The project code is pure Python with platform-independent py3-none-any wheels, while its dependencies may have platform-specific wheels. This is the documented local processing path, not an absolute no-network guarantee for every deployment or dependency.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A pure-Python library and its pdf2txt.py command line. It runs in your own interpreter with no service, no account and no network call in the package."
      },
      "license": "MIT. The repository LICENSE is MIT and its copyright is 2004-2016 Yusuke Shinyama; pdfminer.six is the community-maintained Python 3 continuation of that project. No company owner or legal maintainer entity is documented, so the owner is recorded as pdfminer.six contributors rather than a company. The package is published as pdfminer.six on PyPI under MIT; the source licence is established, so openSource is true.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "pdfminer.six review - Python PDF text extraction",
      "originalPricing": null,
      "editions": [
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting information from PDFs with pdfminer.six, where the README and high-level API document text extraction with automatic layout analysis, exact text location/font/colour information, embedded image extraction (JPG, PNG, TIFF, JBIG2 and bitmaps), HTML and hOCR output, PDF object parsing/analysis, AcroForm interactive form extraction, table-of-contents/outline extraction, tagged-content extraction, CJK and vertical-writing support, PDF-1.7 support qualified as almost complete, and pdf2txt.py/dumppdf.py command-line tools. The scope records those documented extraction outputs, makes clear that an image-only scan needs a separate OCR engine, that (cid:x) values reflect font/Unicode mapping gaps, and that inferred reading order can interleave tables/columns; it makes no OCR, PDF-writing/editing, redaction, signing, repair or semantic/reading-order guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 104,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://pypi.org/project/pdfminer.six/ (20260107, 7 January 2026, Python >=3.10, py3-none-any, charset-normalizer/cryptography/Pillow image extra); https://github.com/pdfminer/pdfminer.six/blob/master/README.md (features, MIT/community fork, PDF-1.7 qualified, CJK/vertical, images/HTML/hOCR, AcroForm/TOC/tagged/layout, pdf2txt.py); https://github.com/pdfminer/pdfminer.six/blob/master/docs/source/tutorial/highlevel.rst (extract_text/extract_text_to_fp, HTML/layout); https://pdfminersix.readthedocs.io/en/master/tutorial/commandline.html (pdf2txt.py, dumppdf.py); CHANGELOG 20260107; read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pdfminer-six/"
    },
    {
      "slug": "pdfplumber",
      "name": "pdfplumber",
      "tagline": "Python library that exposes every character, line and rectangle in a PDF, with text and table extraction built on top of that.",
      "websiteUrl": "https://github.com/jsvine/pdfplumber",
      "summary": "pdfplumber is an MIT-licensed Python library that exposes the objects on each PDF page -- characters, words, lines, rectangles, curves, images and annotations, with their coordinates -- and builds text, layout and table extraction on top of them. The current release is 0.11.10, published 15 June 2026, built on pdfminer.six 20260107 and also depending on Pillow>=12.2.0 and pypdfium2>=5.9.0. It extracts page text with layout options, words and characters with coordinates, tables via a configurable line- or word-alignment strategy, shapes and images, annotations and hyperlinks, and PDF/page metadata; it opens password-protected PDFs with a password argument; and it provides visual debugging through PageImage and table-finder diagnostics. The CLI emits CSV, JSON or text. It is read-only by design: upstream explicitly lists PDF generation, PDF modification and OCR as features it does not provide, and it works best on machine-generated PDFs with a text layer rather than scanned images. It runs locally with no hosted service. The catalog has two jobs, extract and view; there is no edit or convert job, matching the upstream non-features.",
      "bestFor": "Python developers and data journalists who need the layout around a table as well as the table itself: column positions, font sizes, the heading above the grid. It is a permissive MIT licence with no compiled code of its own, though installing it brings pypdfium2 and Pillow, so how it installs depends on whether wheels exist for your platform and Python version.",
      "watchOutFor": "The current release is 0.11.10, published 15 June 2026. PyPI declares Python >=3.8 and the wheel is py3-none-any, while the README says the library is tested on Python 3.10 through 3.14; the install floor and the tested range are different claims, not a contradiction, and both are recorded. The package pins pdfminer.six==20260107 and requires Pillow>=12.2.0 and pypdfium2>=5.9.0, so installation can depend on platform wheels for those binary dependencies. It is read-only: upstream explicitly does not provide PDF generation, PDF modification or OCR, and says it does not strongly support extracting tables from OCR'ed documents. It works best on machine-generated PDFs with a text layer; image-only scans need a separate OCR step and are not a supported extraction path here. Table extraction reconstructs cells from visible drawn lines or inferred word alignments; it is not a guarantee of table accuracy, and borderless or complex tables can be misread. Page objects cache layout and object information, which can consume substantial memory on large PDFs. The catalog's view job is only visual debugging and page-image inspection for extraction development, not a general PDF reader or renderer: Page.to_image() produces a PageImage for checking detected objects, and the CLI text output is a text projection, not a viewer. The catalog has no edit or convert job and none should be added; cropping and filtering return derived in-memory page views and do not write PDFs. No redaction, signing, OCR, Office conversion, table-accuracy guarantee or general rendering claim is made. Password-protected PDFs can be opened when the password is supplied, but decryption beyond that is not an editing feature.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Jeremy Singer-Vine",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2015,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "view"
      ],
      "jobScores": {
        "extract": 78,
        "view": 35
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/jsvine/pdfplumber",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural and documented: pdfplumber.open() takes a filesystem path, raw bytes or a file-like object, and the project describes no hosted component anywhere. Nothing in the library posts a document anywhere; there is no account, no endpoint and no telemetry described in the README. Files are read on the local filesystem and results are returned in-process.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A pure-Python library that parses bytes already in memory. There is no vendor service and no network component at all."
      },
      "license": "MIT. The repository LICENSE.txt is the MIT License, copyright 2015 Jeremy Singer-Vine, and PyPI classifies the package as OSI-approved MIT. The package is pure Python with direct dependencies on pdfminer.six==20260107, Pillow>=12.2.0 and pypdfium2>=5.9.0; the wheel is py3-none-any, while Pillow and pypdfium2 may bring platform wheels. There is no paid tier, hosted service or commercial edition.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting PDF content and structure with pdfplumber, where the README documents page text and layout extraction with extract_text/extract_text_simple, word and character extraction with coordinates through chars/extract_words, table extraction through extract_tables/extract_table/find_tables/debug_tablefinder using line or word-alignment strategies, shape extraction through lines/rects/curves, image extraction through images, annotations and hyperlinks through annots/hyperlinks, PDF and page metadata, password-protected PDFs via the password argument, and CLI output in CSV, JSON or text. The scope records the documented text, layout, word/character, table, shape, image, annotation/hyperlink and metadata extraction paths and the CLI formats, explicitly notes that the library is read-only, has no OCR and works best on machine-generated text-layer PDFs, and makes no table-accuracy, scanned-document or edit/convert claim",
        "view": "inspecting extraction results with pdfplumber's visual-debugging tools, where the README documents PageImage via Page.to_image() with resolution, width, height, antialias and crop options, image rendering of a page or cropped page for checking detected objects, and debug_tablefinder/table-finder diagnostics for table detection. The scope is limited to visual debugging and page-image inspection for extraction development, plus the CLI text projection; it is not a general PDF reader, viewer or rendering API, and makes no OCR, redaction, signing, editing or document-conversion claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 417,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "github.com/jsvine/pdfplumber (README, stable branch; LICENSE.txt; GitHub API repo metadata and release list); pypi.org/pypi/pdfplumber/json (version 0.11.10, requires_dist, classifiers); camelot-py.readthedocs.io user/comparison.html ('At a glance' capability matrix and the pdfplumber section, hand-maintained and marked 'Last verified: 2026-05-21 against pdfplumber 0.11.5').",
      "profileUrl": "https://dialegein.com/products/pdfplumber/"
    },
    {
      "slug": "pdfrest",
      "name": "pdfRest",
      "tagline": "REST API for PDF processing built on Adobe PDF Library, with a self-hosted option.",
      "websiteUrl": "https://pdfrest.com/",
      "summary": "pdfRest is an HTTP API for the ordinary PDF jobs - convert, merge, split, compress, redact, OCR, sign, extract - built on Adobe PDF Library rather than on an open-source engine. Every endpoint is callable from the API Lab console before you write any code, and clients are documented in JavaScript, Python, PHP, C# and cURL. It is sold by Datalogics, Inc., which also sells the underlying library, and the same endpoints can be deployed in the customer's own AWS account or container instead of calling the cloud API.",
      "bestFor": "Teams that want PDF processing as an HTTP call without embedding a library, particularly where the fidelity argument for Adobe's engine matters and where a self-hosted container is acceptable as an alternative to a public API. The API Lab makes it unusually easy to evaluate before integrating.",
      "watchOutFor": "The product is split across three deployment modes and the choice changes who processes the document. The Cloud API is hosted by Datalogics in the United States by default, with an optional EU GDPR backend at eu-api.pdfrest.com that adds per-call fees on Starter and Premium; the AWS deployment runs the container or AMI inside the customer's own VPC and is billed through AWS Marketplace or BYOL; and the Container is self-hosted on-premises with Docker or Kubernetes under a license key with a 14-day trial, though a container is not automatically an offline licence. Cloud plans meter API calls rather than documents, and authenticated POST and DELETE requests and status polling are billable. Starter is free with 100 calls a month, watermarked output, no overage and a 5-minute retention; Premium and Pro are watermark-free with 30-minute retention, and Pro adds the Pro tools, including PDF to Word, Redact, OCR and Sign. Included and maximum upload sizes differ by plan, overage and upload-size fees apply, and Enterprise retention and configuration are custom. Data residency is therefore a deployment decision rather than a product-wide property: the standard cloud stores in the United States, the EU backend is an optional paid routing choice, and the AWS and Container modes keep processing in infrastructure the customer controls. The redaction endpoint documents removal by text or regular expression, but that is a vendor statement rather than a test we ran. OCR language support and accuracy are not stated on the endpoint page read, conversion makes no fidelity guarantee, and the endpoints are individually documented so a specific behaviour should be checked on that endpoint's page.",
      "pricingModel": "freemium",
      "priceFromGbp": 7.48,
      "priceBasis": "month",
      "unitPrice": {
        "amount": 0.115,
        "currency": "USD",
        "per": "api_call",
        "asShown": "API Call Overage Fee - Premium: $0.115 per call (Pro $0.06, Enterprise $0.035)",
        "source": "https://pdfrest.com/pricing/",
        "readAt": "2026-09-22"
      },
      "hasFreeTier": true,
      "owner": "Datalogics, Inc.",
      "platforms": [
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "ocr",
        "merge",
        "compress",
        "sign",
        "extract"
      ],
      "jobScores": {
        "edit": 75,
        "convert": 75,
        "protect": 75,
        "ocr": 70,
        "merge": null,
        "compress": null,
        "sign": null,
        "extract": null
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://pdfrest.com/apitools/redact-pdf-api/",
        "readAt": "2026-10-16",
        "quote": "Redact PDF is a REST API tool designed to securely remove sensitive information from PDF documents, ensuring privacy and compliance with data protection regulations.",
        "caveat": "Documentation read again on 2026-10-16; the endpoint page describes the mechanism as sanitising rather than covering, removing by specific text or custom regular expressions with presets for phone numbers, email addresses and URLs. That is a removal claim for the specific endpoint rather than shared feature-list wording. What it does not establish is a test: no page read states whether metadata or attachments are handled, so a reader relying on it for a confidential document should redact one and check."
      },
      "processesLocally": false,
      "processesLocallyNote": "A hosted REST API: the document is posted to Datalogics and processed there. The same endpoints are sold as a container you can deploy on-premises or in a private cloud, which the vendor describes as achieving \"total independence\" - so the same product can be local or hosted, and which one you get is a licensing and deployment choice rather than a feature. Recorded as not-local because the default and the documented quick start is the hosted API.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Self-hosted. On their servers: API. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Commercial. Datalogics, Inc., 1207 Delaware Ave, Suite 1810, Wilmington, DE 19806-4743, provides the Site and Services under terms governed by Delaware law, covering the cloud-hosted API, the AWS deployment and the downloadable container. Cloud plans are Starter at 0 with 100 API calls a month and watermarked output, Premium at USD 9.99 per month or USD 8.99 billed annually with 600 calls, Pro at USD 99.99 or USD 89.99 billed annually with 5,000 calls and the Pro tools, Enterprise at USD 349.99 or USD 314.99 billed annually with 15,000 calls, and Enterprise+ by arrangement. Included upload size runs from 5 MB to 500 MB and maximum upload from 100 MB to 1 GB by plan, overage calls are billed per plan, and file retention is 5 minutes on Starter, 30 minutes on Premium and Pro and custom on Enterprise. The EU GDPR backend is optional and adds per-call fees on Starter and Premium. The AWS deployment is billed through AWS Marketplace or BYOL, and the self-hosted container is licensed with a 14-day trial.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "http"
      ],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": true,
      "title": "pdfRest review - PDF processing API",
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "customer_server",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "adding content to PDFs with pdfRest, where the Add to PDF endpoint documents adding new content to a PDF, including text, images, lines, rectangles, tables and file attachments, and says developers can enhance existing PDFs without disrupting the underlying content, or pair it with Create Blank PDF to generate new PDFs; the scope is adding new content and attachments rather than rewriting the existing text or layout, and no existing-text editing or layout-reflow claim is made",
        "convert": "converting documents with pdfRest, where the PDF to Word endpoint converts PDFs into editable DOCX files, Convert to PDF accepts Word, Excel, PowerPoint, images including JPEG, TIF, BMP and PNG, email and other structured inputs, Convert to PDF/A produces archival output, and the endpoint set also documents PDF to Excel, PowerPoint, images, PostScript, PDF/X and PDF to Markdown; the scope records the documented conversion directions, makes no fidelity guarantee and claims no format beyond the endpoints",
        "protect": "protecting PDFs with pdfRest, where the Encrypt PDF endpoint documents encrypting all content and requiring a password to open the document, the Restrict PDF endpoint documents applying usage restrictions with a permissions password to forbid printing, copying text or editing, and the Redact PDF endpoint, listed as a Pro tool, documents removing sensitive information by targeting specific text or using custom regular expressions for PII and financial data; the scope records the password, permission and redaction endpoints, keeps the documented removal as a vendor statement rather than a test, and makes no specific encryption-algorithm or reader-enforcement claim beyond the endpoint pages",
        "ocr": "running OCR with pdfRest, where the OCR PDF endpoint, listed as a Pro tool, documents converting scanned documents and images in PDFs into searchable and extractable text and turning static documents into searchable text PDFs; the endpoint page read does not state an OCR language list, a language count or an accuracy figure, so the scope records the scanned-to-searchable-text capability without a language or accuracy claim and leaves handwriting recognition unclaimed",
        "merge": "merging and splitting PDFs with pdfRest, where the Merge PDFs endpoint documents joining any number of full PDF files or specified pages from separate documents into a consolidated PDF with control over assembly, and the Split PDF endpoint documents separating a single PDF into multiple new documents by page range, extracting sections or removing unwanted pages; the scope records the documented merge and split operations, with no claim about preserving signatures, forms or annotations across a merge",
        "compress": "compressing PDFs with pdfRest, where the Compress PDF endpoint documents reducing file size while maintaining document integrity and preserving content and layout according to the endpoint page; the scope records the documented compression capability and makes no lossless or specific size-reduction guarantee",
        "sign": "signing PDFs with pdfRest, where the Sign PDF endpoint, listed as a Pro tool, documents applying cryptographic digital signatures using PFX or certificate credentials with embedded signatures, and says the signatures inherently include electronic signature elements with custom visual appearances using typed text or image files; the scope records the certificate-based digital signature and visual appearance, and makes no certificate-authority, timestamping, long-term-validation or e-signature-workflow claim",
        "extract": "extracting PDF content with pdfRest, where the Extract Text endpoint documents extracting text from PDFs with options to include detailed style and positional information, and the Extract Images endpoint documents extracting all embedded images without altering the original PDF; the endpoint set also documents Query PDF and PDF to Markdown, and the scope records the documented text and image extraction, leaves scanned text to the OCR endpoint, and makes no accuracy or structure-reconstruction guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 988,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdfrest.com: the home page and the Redact PDF API endpoint page, read 2026-09-22 with headless Chrome, read alongside the Datalogics product pages for the underlying library. Vendor documentation, not independently tested; no document was submitted to the API.",
      "profileUrl": "https://dialegein.com/products/pdfrest/"
    },
    {
      "slug": "pdfsam",
      "name": "PDFsam",
      "tagline": "Desktop PDF split and merge apps - Basic is free and open source, others paid.",
      "websiteUrl": "https://pdfsam.org/",
      "summary": "PDFsam is a family of desktop applications that run on the user's own computer. PDFsam Basic, currently version 6.0.6, is a free AGPL-3.0 tool for merging, splitting, extracting, rotating and mixing PDFs on Windows, macOS and Linux. PDFsam Visual, currently version 7.1.0, adds compression, cropping, metadata cleaning, password protection with permissions and unprotecting, and also runs on Windows, macOS and Linux, with a 14-day trial and a paid per-user subscription or perpetual licence. PDFsam Enhanced, currently version 7.0, is a Windows-only PDF editor sold in Standard, Pro and Pro+OCR Advanced tiers, adding conversion, forms, secure PDFs with 256-bit AES and digital-certificate signatures, OCR and editing. Every edition processes files locally on the user's own computer.",
      "bestFor": "Anyone who wants offline, no-upload PDF processing - particularly a free, dependable split and merge tool across Windows, macOS and Linux.",
      "watchOutFor": "The editions differ sharply. PDFsam Basic 6.0.6 is free and AGPL-3.0 and covers merge, split, extract, rotate and mix on Windows, macOS and Linux; it performs only incidental optimisation rather than true compression. PDFsam Visual 7.1.0 is proprietary and also runs on Windows, macOS and Linux, with a 14-day free trial, a paid subscription at GBP 29 per user per year or a GBP 49 perpetual licence, and a 14-day money-back guarantee; after the trial, Merge PDF, Alternate Mix, Split by bookmarks and Split by size continue to work for free. PDFsam Enhanced 7.0 is Windows-only and sold in Standard, Pro and Pro+OCR Advanced tiers at USD 69, 89 and 129 per user per year, with free View and Create modules and a 30-day money-back guarantee. OCR, conversion, editing and digital-certificate signing are Enhanced capabilities, not Basic or Visual ones; secure PDFs with 256-bit AES encryption, permission restrictions and digital signatures are in the Pro and Pro+OCR tiers, and OCR is Pro+OCR Advanced only. The Desktop editions process files locally and do not upload document content; Visual may contact the vendor's servers for licensing, update and news checks, and the privacy policy says the data controller is Sober Lemur S.r.l. in Italy. The EULAs are governed by Italian law. No hosted processing surface exists.",
      "pricingModel": "freemium",
      "priceFromGbp": 29,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Sober Lemur S.r.l.",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "merge",
      "jobs": [
        "merge",
        "compress",
        "edit",
        "convert",
        "sign",
        "ocr",
        "protect"
      ],
      "jobScores": {
        "merge": 85,
        "compress": 70,
        "edit": 70,
        "convert": 60,
        "sign": 55,
        "ocr": 60,
        "protect": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://support-enhanced.pdfsam.org/hc/en-us/articles/21705219146388-How-to-redact-my-file",
        "quote": "PDFsam Enhanced has a Redaction tool. This will permanently delete information from your document. It’s the digital equivalent of redacting physical documents.",
        "caveat": "Vendor support documentation, not a test we ran. It describes PDFsam ENHANCED, which is a different and paid edition from the free PDFsam Basic, and the page does not resolve which tier includes the tool - the edition question is the one that matters here. The same vendor also publishes a whiteout article, and whiteout is the covering operation; the two must not be read as one feature."
      },
      "processesLocally": true,
      "processesLocallyNote": "Stated plainly by the vendor: files never leave your computer, and the desktop applications do not upload PDF content. The paid editions do contact their servers for licence checks and updates.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Desktop applications for Windows, macOS and Linux. There is no web service to upload to."
      },
      "license": "PDFsam Basic is free software under AGPL-3.0. PDFsam Visual and PDFsam Enhanced are proprietary and licensed under their own EULAs with Sober Lemur S.r.l., Via Rosemberg 4, 42021 Bibbiano (Reggio Emilia), Italy, VAT IT02771170350, REA RE-312122, under Italian law; the EULAs are dated 1 September 2023. PDFsam Visual is sold as a subscription at GBP 29 per user per year, VAT inclusive, with recurring billing, or as a perpetual licence at GBP 49 one time, VAT inclusive, with a 14-day free trial, a 14-day money-back guarantee and two computers per user. PDFsam Enhanced is Windows-only and sold per user per year at USD 69 for Standard, USD 89 for Pro and USD 129 for Pro+OCR Advanced, VAT inclusive, with free View and Create modules, a 30-day money-back guarantee and volume discounts on five or more licences. No LULU Software provision appears on the current EULAs or about page, so the earlier LULU attribution is removed.",
      "openSource": true,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": {
        "amount": 49,
        "currency": "GBP",
        "period": "one_off",
        "planName": "PDFsam Visual perpetual",
        "asShown": "\"PDFsam Visual perpetual £49.00\" - total £49.00, \"Includes VAT £8.17 (20%)\"",
        "source": "https://pdfsam.onfastspring.com/pdfsam-visual",
        "readAt": "2026-10-05"
      },
      "editions": [
        {
          "id": "basic",
          "name": "PDFsam Basic",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": [
            {
              "name": "PDFsam Basic",
              "licence": "AGPL-3.0",
              "version": null,
              "note": null
            }
          ]
        },
        {
          "id": "visual",
          "name": "PDFsam Visual",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "yes",
          "licenceComponents": [
            {
              "name": "PDFsam Visual",
              "licence": "Proprietary",
              "version": null,
              "note": null
            }
          ]
        },
        {
          "id": "enhanced",
          "name": "PDFsam Enhanced",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "yes",
          "licenceComponents": [
            {
              "name": "PDFsam Enhanced",
              "licence": "Proprietary",
              "version": null,
              "note": null
            }
          ]
        }
      ],
      "jobScopes": {
        "merge": "merging PDFs with PDFsam, where the PDFsam Basic merge page documents combining multiple PDF files into one, arranging the files in the desired order, selecting the resulting file name and running the merge on Windows, macOS and Linux, and the PDFsam Visual page lists Merge PDF and Alternate Mix as free tools that continue to work after the trial and adds Split by bookmarks and Split by size; the scope records the documented combine and ordering operations and the free-tool boundary, with no claim about preserving signatures, forms, links or annotations across a merge",
        "compress": "compressing PDFs with PDFsam, where the PDFsam Visual page documents Compress PDF by choosing the quality and resolution of the images and selecting the compression settings to reduce file size, and its FAQ says PDFsam Basic performs only some optimisations on generated files and that PDFsam Visual or PDFsam Enhanced is needed for true PDF compression; the scope records Visual compression with adjustable image quality and resolution and makes no lossless or specific size-reduction guarantee, while noting Basic is not a true compression route",
        "edit": "editing PDFs with PDFsam, where the PDFsam Enhanced PDF editor page documents modifying or adding text, annotations, images and links, redacting sensitive content, adding watermarks, headers, footers, comments and shapes, and digital signatures, with PDFsam Enhanced 7.0 being a Windows-only paid application in Standard, Pro and Pro+OCR tiers; the scope records the documented editing and content-addition capabilities of Enhanced, makes no fidelity or layout-stability guarantee, and leaves redaction to the redaction field",
        "convert": "converting PDFs to Office formats and creating PDFs from 300+ formats with PDFsam Enhanced on Windows, where the free view and create capability requires registration; not PDFsam Basic or Visual",
        "sign": "signing PDFs with PDFsam, where the PDFsam Enhanced Secure module documents protecting PDF files with 256-bit AES encryption, restricting permissions and adding a digital signature using a digital certificate, listed for the Pro and Pro+OCR tiers of the Windows-only Enhanced 7.0 application; the scope records digital-certificate signing in Enhanced Secure and makes no certificate-authority, trust-validation, timestamping or independent legal-validity guarantee",
        "ocr": "running OCR with PDFsam, where the PDFsam Enhanced OCR module documents recognising text within images and scanned documents and turning them into editable PDF files, including batch recognition of multiple files, listed only for the Pro+OCR Advanced tier of the Windows-only Enhanced 7.0 application; the scope records the documented OCR capability and tier boundary and makes no accuracy figure, language count or handwriting claim",
        "protect": "protecting PDFs with PDFsam, where the PDFsam Visual page documents Protect PDF with a password and permissions and Unprotect PDF removing permissions and the password, and the PDFsam Enhanced Secure module documents protecting PDF files with 256-bit AES encryption and restricting permissions in the Pro and Pro+OCR tiers of the Windows-only Enhanced 7.0 application; the scope records the documented password and permission features across Visual and Enhanced, makes no claim about how other readers enforce permissions, and leaves redaction to the redaction field"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 220,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdfsam.org; pdfsam.org privacy policy; Visual and Enhanced download pages. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/pdfsam/"
    },
    {
      "slug": "pdfsharp",
      "name": "PDFsharp",
      "tagline": "AGPL or commercial .NET library for creating PDFs with GDI+-style drawing and modifying, merging and splitting existing ones.",
      "websiteUrl": "https://docs.pdfsharp.net",
      "summary": "PDFsharp is a .NET library from empira Software GmbH in Troisdorf, Germany, for creating, modifying, merging and splitting PDF documents with GDI+-style drawing. Its related MigraDoc library builds documents from a paragraph, table and section object model and renders them to PDF or RTF. The current stable release is PDFsharp 6.5.0, dated 13 October 2026, and the current preview is PDFsharp 7.0.0 Preview 2, dated the same day. The current packages are published under AGPL-3.0-only or a commercial licence from empira, not MIT. The Core build targets .NET 8, .NET 9, .NET 10 and .NET Standard 2.0 and runs on Windows, Linux, macOS and other .NET platforms; the GDI and WPF builds target net8.0-windows7.0, net9.0-windows7.0, net10.0-windows7.0 and .NET Framework 4.6.2 and are Windows-only. The documentation covers drawing, text, images, annotations, merging, splitting, encryption and certificate-backed CMS digital signatures, but PDFsharp is not a renderer, a text extractor or an existing-text editor.",
      "bestFor": "Teams embedding PDF generation, MigraDoc document layout or light structural PDF manipulation in a .NET application, who can comply with the AGPL or buy a commercial licence from empira.",
      "watchOutFor": "The current stable package is 6.5.0 and the current preview is 7.0.0 Preview 2, both dated 13 October 2026. The current licence is AGPL-3.0-only or a commercial licence from empira Software GmbH; the earlier MIT value is stale for the current stable package, and MigraDoc 6.5.0 is also AGPL-3.0-only. There is no public commercial price; commercial licensing and support route through empira. The Core build targets .NET 8, .NET 9, .NET 10 and .NET Standard 2.0 and is cross-platform, while the GDI and WPF builds target net8.0-windows7.0, net9.0-windows7.0, net10.0-windows7.0 and .NET Framework 4.6.2 and are Windows-only; do not treat GDI or WPF as cross-platform. PDFsharp cannot render PDF files to images and is not a text extractor or a general editor of existing page text; text extraction and existing-content editing are absent at the API level, and the preview control is for drawing operations, not rendering imported PDFs. The current feature page documents annotations but does not document general form-field or metadata editing, so those are not claimed here. The Core build needs a FontResolver on Linux and macOS and accepts a narrower image set than the Windows builds. Encryption supports user and owner passwords, RC4 40-128 bit, AES-128 default, AES-256 for PDF 2.0 and permission flags; readers may enforce permissions but no universal reader-enforcement or legal security guarantee is made. Certificate-backed CMS signatures are documented separately with optional timestamps, but no sign job is added to this record. There is no OCR, redaction, PDF/A compliance in the stable line, or Office/image conversion, and no hosted service.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "empira Software GmbH, Troisdorf (Cologne Area), Germany",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2001,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "convert",
        "merge"
      ],
      "jobScores": {
        "edit": 78,
        "protect": 70,
        "convert": 40,
        "merge": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://docs.pdfsharp.net",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded .NET library, so it runs in the process of the application that references it. That describes the library rather than the application hosting it, and API documentation is not evidence that a configured application makes no network calls, so no exhaustive traffic claim is made here.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A .NET library compiled into the calling application. It has no server component and no vendor endpoint."
      },
      "license": "AGPL-3.0-only or commercial. The current NuGet packages for PDFsharp 6.5.0 and 7.0.0-preview-2 declare AGPL-3.0-only, and the current documentation, GitHub README and pdfsharp.com support page say the libraries are published under the free AGPL licence with a separate commercial licence available from empira Software GmbH. The current MigraDoc 6.5.0 package is also AGPL-3.0-only. The earlier MIT value applies to an older line and is stale for the current stable package. No commercial price is published; commercial licensing and support route through empira. The libraries are open source under the AGPL path, and no hosted service is involved.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing and generating PDFs with PDFsharp and MigraDoc, where the current PDFsharp feature documentation covers creating PDF documents from any .NET language, an object model for composing documents, drawing lines, paths, curves, shapes, images, transparency, form XObjects and fonts, text layout, annotations, and modifying, merging and splitting existing PDFs, and the MigraDoc documentation covers a document object model with paragraphs, tables, charts, sections, bookmarks, tables of contents and indexes that lays out and generates PDF or RTF output. The scope records object, page, drawing, annotation and MigraDoc generation operations, makes no general existing-text editing, OCR, redaction or fidelity claim, and leaves general form-field and metadata editing unverified because the current feature page does not document them",
        "protect": "protecting PDFs with PDFsharp, where the Encryption documentation documents user and owner passwords, opening encrypted PDFs with the user or owner password, writing encrypted PDFs, encryption version 2 using RC4 with a variable key length from 40 to 128 bit, version 4 using AES with a 128 bit key as the default, version 5 using AES with a 256 bit key for PDF 2.0, and document access permission flags. The scope records the documented password, encryption-method and permission controls in the .NET library, notes that readers may enforce permissions, and makes no universal reader-enforcement, legal security or unbreakable-encryption guarantee",
        "convert": "converting and generating documents with PDFsharp and MigraDoc, where the PDFsharp feature documentation covers creating PDF documents and drawing content into them, and the MigraDoc documentation says it generates PDF or RTF documents from its document object model. The scope records PDF creation and MigraDoc PDF/RTF generation only, and explicitly makes no claim to render an existing PDF to an image, convert Office or image files to PDF, extract text, or preserve fidelity, because PDFsharp does not render PDF files and the current documentation does not document those conversion directions",
        "merge": "merging and splitting PDFs with PDFsharp, where the current feature documentation says the library can modify, merge and split existing PDF files, and the object model exposes pages and page import and addition operations. The scope records the documented page import, addition, copy and assemble operations for combining and splitting existing PDFs, and makes no claim about preserving signatures, forms, links or annotations across a merge or split"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 342,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "docs.pdfsharp.net (home, PDFsharp About, Features, FAQ, Specifications, General History); github.com/empira/PDFsharp README, LICENSE file, GitHub REST API metadata, commit history and tags; NuGet package registration and flat-container version list for PDFsharp; nuget.org packages/PDFsharp; pdfsharp.com/Offers; the licensed features list on docs.pdfsharp.net.",
      "profileUrl": "https://dialegein.com/products/pdfsharp/"
    },
    {
      "slug": "pdfshift",
      "name": "PDFShift",
      "tagline": "Hosted HTML-to-PDF API running headless Chromium behind a single REST endpoint.",
      "websiteUrl": "https://pdfshift.io/",
      "summary": "PDFShift is a hosted conversion API that renders HTML, raw HTML or a URL to PDF with headless Chromium, and can also produce PNG, JPEG, WEBP and Open Graph image outputs where documented. It supports modern CSS, injected stylesheets and JavaScript, webfonts, custom headers and footers with page numbering, and optional password protection or watermarks through the REST API at api.pdfshift.io. Billing is by generated output size: one credit covers under 5 MB of generated output, so output size determines cost rather than a fixed document count. The free plan is 50 credits/month with a 15 MB file-size cap and 30-second timeout; paid plans currently start at Startup USD 9 for 500 credits, with 250 MB file size and 100-second timeout on the paid endpoint. The API requires an X-API-Key and an account. Default rendering is in memory with no remaining traces after the request, but filename/webhook storage and log_request logging are documented exceptions; optional s3_destination and is_gdpr/is_hipaa settings alter storage. The product is vendor-hosted, not self-hosted or local. PDFShift's current structured data gives founding date 2018, and the operator is PDFShift SASU.",
      "bestFor": "Product and back-office teams that need HTML, raw HTML or a URL rendered to PDF or a documented image/screenshot output by a Chromium-based hosted API, at low to moderate volume, without running their own Chromium fleet.",
      "watchOutFor": "PDFShift is a hosted API: HTML, inline data and URLs you ask it to fetch go to PDFShift servers, so it is unsuitable for content that cannot leave the infrastructure. The free plan is 50 credits/month, 15 MB maximum file size and 30-second timeout; paid plans currently have a 250 MB file size and 100-second timeout, with Startup USD 9/500 credits and larger plans as listed by the current pricing endpoint. No GBP price is verified and no synthetic conversion is made. Default conversion is in memory, and PDFShift says no traces remain after the request, but filename and webhook parameters store the generated PDF on PDFShift S3 for two days, log_request stores the raw request, and s3_destination, is_gdpr and is_hipaa alter storage; those vendor statements were not independently tested. PDFShift says EU customer data is stored in OVH France, but non-EU residency and the S3 region are not established and the privacy terms contain broader transfer caveats, so this is not a universal France-only guarantee. Authenticated free conversions are not watermarked; sandbox/unauthenticated requests can be watermarked, and the free-plan watermark should not be confused with that sandbox behaviour. PDFShift does not guarantee any SLA level. Chromium-based rendering is not identical to every desktop rendering environment; print styling, font availability, viewport size and load timing can change output, and no fidelity comparison was run here. Credit accounting is by generated output size, not document count. It is not an Office/Word/Excel converter, a general PDF editor, an OCR tool, a redaction tool or a signing service; redaction is recorded as absent from the documented scope rather than as a security guarantee. No source licence is offered.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 0.4,
        "currency": "USD",
        "per": "credit",
        "asShown": "Startup plan overage: 40 (cents per credit), from the vendor's own rate card - {\"display\":\"Startup\",\"credits\":500,\"price\":9,\"overage\":40}",
        "source": "https://api.pdfshift.io/v3/credits/pricing",
        "readAt": "2026-09-22"
      },
      "hasFreeTier": true,
      "owner": "PDFShift SASU",
      "platforms": [
        "api"
      ],
      "launchedYear": 2018,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://pdfshift.io/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "This is a vendor-hosted HTTP API: HTML/raw HTML or a URL is POSTed to https://api.pdfshift.io/v3/convert/pdf and rendered on PDFShift servers. Default conversion is in memory with no traces after the request, but filename/webhook storage on PDFShift S3, log_request raw-request storage, and s3_destination/is_gdpr/is_hipaa changes are documented exceptions; those are vendor statements, not independently tested. The vendor states EU customer data is stored in OVH France; non-EU customer residency and the S3 region are not established, and the privacy terms contain broader transfer caveats. Residency is therefore recorded as unknown rather than asserting an EU-only service.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Content is posted to api.pdfshift.io and converted there. No self-hosted edition exists."
      },
      "license": "Proprietary hosted SaaS. PDFShift SASU, a French company, is the provider; the terms describe the service as SaaS offered free and paid. The API requires an X-API-Key. Free users get 50 credits/month with a 15 MB file-size cap and 30-second timeout; paid plans currently have a 250 MB file size and 100-second timeout, with plans from Startup USD 9/500 credits; no GBP price is verified, so no currency conversion is made. No source licence is offered.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http"
      ],
      "dataResidency": "unknown",
      "requiresAccount": true,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "Hosted REST API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting HTML, raw HTML or a URL to PDF through PDFShift's hosted REST API at https://api.pdfshift.io/v3/convert/pdf, where the current site and API documentation describe headless Chromium rendering, CSS/JavaScript/webfonts, headers and footers, page numbering, password protection/watermarks, and documented screenshot, PNG, JPEG, WEBP and Open Graph image outputs where the API supports them. The scope records HTML/raw-HTML/URL-to-PDF conversion and the documented image/screenshot modes, notes that credits are charged by generated output size (one credit per under-5-MB output), and makes no Office/Word/Excel conversion, generic PDF editing, OCR, redaction, signing or self-hosted-service claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 459,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://pdfshift.io/ (hosted HTML-to-PDF/screenshots/Open Graph, free 50 credits/15 MB/30 s, PDFShift SASU, foundingDate 2018); https://api.pdfshift.io/v3/credits/pricing (Startup USD 9/500 credits; paid plans 250 MB/100 s; read 2026-10-16); https://help.pdfshift.io/why-the-watermark-is-present-when-sandbox-is-set-to-false (X-API-Key, watermark/sandbox); https://help.pdfshift.io/how-do-you-handle-sensitive-documents (default memory/no-trace plus filename/webhook/log_request/S3 exceptions); https://help.pdfshift.io/how-does-pdfshift-counts-credits (1 credit per under-5-MB output); https://pdfshift.io/legal/terms/ (SaaS, PDFShift SASU); SLA help page; read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pdfshift/"
    },
    {
      "slug": "pdftk-java",
      "name": "pdftk-java",
      "tagline": "Java port of pdftk for scripted merging, splitting, form filling and encryption.",
      "websiteUrl": "https://gitlab.com/pdftk-java/pdftk",
      "summary": "pdftk-java is Marc Vinyals' Java port of the original PDFtk command-line toolkit, keeping the pdftk command syntax. The current tag and release is v3.3.3, dated 22 September 2022, with no newer public release; the program's --version output identifies itself as 'pdftk port to java 3.3.3' and carries copyright notices for Marc Vinyals 2017-2023 and Steward and Lee, LLC 2003-2013. It runs as a Java command-line tool, assembling and splitting documents by page range, rotating pages, collating scans, filling and flattening AcroForm forms from FDF/XFDF data, applying background or stamp watermarks, reporting and updating metadata/bookmarks/page data, attaching files, adding or removing password encryption with permission flags, and applying compress/uncompress stream filters for source editing. It is not a general embeddable Java library: the README recommends iText or OpenPDF for programmatic use. The project code is GPL-2.0-or-later, while the bundled modified iText, Apache Batik, BouncyCastle and other components retain their own licences; the original PDFtk licence note contains a commercial-redistribution condition.",
      "bestFor": "Scripts, cron jobs and administrators who need pdftk's page-assembly, form-filling and encryption operations and want a Java build that runs on a JVM instead of the original C++ binary.",
      "watchOutFor": "The current public tag/release is v3.3.3, dated 22 September 2022, and there is no newer release. The program's version string is the pdftk-java port version 3.3.3; it also prints the original PDFtk copyright for Steward and Lee, LLC, but it does not expose a separate original-PDFtk program version. The project is a Java command-line tool, not a general embeddable Java library: the README recommends iText or OpenPDF if you need a library to call from Java, and the pdftk syntax and CLI are the product surface. It requires a JRE for the standalone jar; package-manager builds and an experimental native image exist, and distributions older than 3.0.4 are explicitly discouraged. The project is GPL-2.0-or-later, but the bundled modified iText, Apache Batik, BouncyCastle and other third-party components retain their own licences. The bundled original PDFtk licence note says PDFtk is not public domain, that third-party libraries have their own terms, and that commercial redistribution as part of another product requires a commercial licence unless the distributor's software is GPL-compatible; ordinary local use does not require that commercial licence. There is no OCR, format conversion, body-text editing, repair, redaction, digital signature or certificate trust. Encryption covers 40-bit and 128-bit RC4 and AES-128 with owner/user passwords and permission flags; it is not DRM or signature support. The compress and uncompress switches are stream filters for hand-editing PDF source, not a general size-reduction or image-downsampling tool. The project has no API and does not claim hosted processing.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Marc Vinyals",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2018,
      "primaryJob": "merge",
      "jobs": [
        "merge",
        "protect",
        "edit"
      ],
      "jobScores": {
        "merge": 90,
        "protect": 80,
        "edit": 74
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://gitlab.com/pdftk-java/pdftk",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural rather than a vendor claim: pdftk-java is a local command-line program that reads input files and writes output files on the invoking machine. There is no vendor service, account or upload step.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Local command-line program that reads and writes files on the invoking machine. No account and no service."
      },
      "license": "GPL-2.0-or-later for the pdftk-java code, per the source headers. The Java port is by Marc Vinyals and is a port of PDFtk, originally copyright 2003-2013 Steward and Lee, LLC. The bundled license_gpl_pdftk folder carries third-party terms for the modified iText library, Apache Batik, BouncyCastle and other components, plus the original PDFtk licence note stating that PDFtk is not public domain, that third-party libraries have their own terms, and that commercial redistribution as part of another product needs a commercial licence unless the distributor's software is GPL-compatible. Ordinary local use is free and open source; the third-party/commercial-redistribution boundary is recorded separately.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "merge": "merging and collating PDF documents, and splitting pages",
        "protect": "protecting PDFs with pdftk-java, where the manual documents encrypt_40bit, encrypt_128bit and encrypt_aes128, AES-128 as the default when a user or owner password is supplied, owner_pw and user_pw, allow permission flags, and decryption of password-protected input. The scope records password/permission encryption, the weaker RC4 options and decryption, and makes no digital-signature, certificate-trust, DRM, redaction or hosted-processing claim; the original PDFtk and third-party library licences remain separate from the operation",
        "edit": "making documented structure and assembly edits with pdftk-java, where the manual documents rotate, generate_fdf, fill_form with FDF/XFDF data, flatten, background/multibackground, stamp/multistamp, dump_data variants, update_info, attach_files and unpack_files, plus compress/uncompress stream filters for source editing. Page-range assembly, cat, shuffle and burst remain in the already-scoped merge job. The scope records rotation, form fill/flatten, overlays, metadata/bookmark/page-data updates, attachments, unpacking and source stream filters, and makes no body-text editing, OCR, Office conversion, repair, redaction, digital signing or certificate-trust claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 431,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "https://gitlab.com/pdftk-java/pdftk (README, pdftk.1, CHANGELOG, LICENSE, license_gpl_pdftk/readme.txt, license_gpl_pdftk/third_party, build.gradle, source headers and tags v3.3.3); all read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/pdftk-java/"
    },
    {
      "slug": "pdftools-pdf-web-viewer",
      "name": "Pdftools PDF Viewer SDK",
      "tagline": "Client-side PDF viewer SDK for web and mobile, with true redaction built in.",
      "websiteUrl": "https://www.pdf-tools.com/products/viewing-printing/pdf-web-viewer/",
      "summary": "A PDF viewer you embed rather than a service you call: it renders, annotates and redacts in the browser or in a mobile app, without a server-side PDF library behind it. It ships as two npm packages, one for the headless engine and one for a ready-made interface you can restyle or replace, and it is built on the vendor's own rendering engine rather than a browser's built-in PDF support. Its redaction is the claim worth reading: the PDF is rebuilt without the marked content when it is exported, and the vendor says residual data - metadata, embedded objects, hidden elements - goes with it.",
      "bestFor": "Teams building a document experience where the file must not be sent anywhere: air-gapped deployments, mobile apps that work offline, and regulated industries where showing a PDF inside somebody else's viewer is not acceptable. It is one of the components here that documents removal-grade redaction in a client-side component rather than in a desktop application or a service, and MuPDF.js documents browser-capable redaction as well, so it is a capable option rather than the only one.",
      "watchOutFor": "It is sold by a vendor that is joining Apryse, so the commercial terms and the support organisation are in motion - and it is a paid SDK with a trial on request and no published price, so the cost has to come from a conversation. The redaction claim is strong and specific, and it is still a vendor claim rather than a test: this index records eight redaction verdicts as tested and this is not one of them, so anybody relying on it for confidential documents should redact one and inspect the output rather than trusting the sentence. Being client-side, its security properties follow the browser or the app rather than a server you control, which cuts both ways - nothing is uploaded, and the document is on the device. And despite being aimed at air-gapped use, the packages are installed from npm, which is a supply-chain surface a genuinely disconnected environment has to handle deliberately. Client-side and air-gapped deployment are supported options rather than proof that every embedding application sends no files anywhere: the SDK can open URLs and a custom integration controls its own input and output. The licence documentation reconciles the free testing route: with no licence key the viewer is free but view-only and watermarked, with a ceiling of 100 concurrent users, while the Trial, Professional, Business and Enterprise feature sets are contact-sales tiers and no price is published. Edit here means annotation and form operations primarily, not general editing of existing text.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Apryse",
      "platforms": [
        "web",
        "ios",
        "android",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit"
      ],
      "jobScores": {
        "view": 85,
        "edit": 75
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.pdf-tools.com/products/viewing-printing/pdf-web-viewer/",
        "readAt": "2026-09-22",
        "quote": "Pdftools delivers true redaction by permanently eliminating residual data such as metadata, embedded objects, and hidden elements. The PDF is rebuilt without the redacted content, ensuring sensitive information is fully removed.",
        "caveat": "The strongest redaction wording on any record added in this batch, and it earns the verdict because it describes the mechanism rather than naming a feature: the file is rebuilt without the content, and the vendor names the categories that usually survive a page-level redaction - metadata, embedded objects, hidden elements. That is the failure mode this index's guide was written about. What it does not establish: a test. This is a vendor claim, the index records eight verdicts as tested and this is not one of them, and no page read states what happens to attachments or document-level JavaScript specifically. Settling it is cheap in principle - mark one string, export, and search the output - and until somebody does, the verdict is documentation-based."
      },
      "processesLocally": true,
      "processesLocallyNote": "Entirely client-side: the vendor's pitch is to work with PDFs \"directly on the client without a server-side PDF library\", and it documents self-contained deployment in air-gapped environments including iOS and Android devices. There is no Pdftools service in the path, so a document opened in it does not leave the device.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A client-side SDK: it renders, annotates and redacts inside the browser or the mobile app, which is the vendor's whole pitch - \"directly on the client without a server-side PDF library\". No Pdftools service is in the path."
      },
      "license": "Commercial; trial licence on request",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing PDF documents with the Pdftools PDF Viewer SDK, a TypeScript and JavaScript library that renders PDFs directly on the client without a server-side PDF library, as the vendor's documentation describes: it renders documents with high fidelity, navigates pages, zooms and scrolls, configures fit mode and page layout mode, searches text and highlights and navigates search results, opens documents from a URL, a file or memory, saves and downloads them as PDF or FDF with or without changes, prints with configurable DPI, and exposes document metadata and page information; the documentation lists tested support for Chrome 63+, Edge 41+, Firefox 55+ and Safari 11.0.3+, support for PDF versions 1.3 through 1.7 and 2.0 including the PDF/A conformance levels named on the page, use in TypeScript and JavaScript applications built with React or Angular, and two npm packages, PDF Web Viewer for a ready-made toolbar-and-sidebar interface and PDF Web SDK for a headless document view, with plugins, CSS theming, event listeners and runtime localisation; the product page adds native deployment on Android and iOS, including offline and air-gapped use, and the licence documentation says no-licence use is view-only and watermarked with a 100 concurrent user ceiling while the trial and paid tiers are contact sales; the scope is the SDK's own client-side viewer rather than a browser's built-in PDF viewer and claims no server-side rendering",
        "edit": "editing and annotating PDF documents with the Pdftools PDF Viewer SDK, where the vendor's documentation for version 5, current at 5.19.0 on 14 October 2026, lists adding, editing and deleting annotations of the types highlight, underline, strikeout, squiggly, sticky notes, free text, rectangles and ellipses, lines and arrows, ink, clouds, stamps and images; filling PDF form fields including text boxes, checkboxes, radio buttons and combo and list boxes; creating redaction annotations by selecting text or drawing areas and applying them to download a permanently redacted document; saving and downloading the result as PDF or FDF with or without changes; and extending the viewer with custom plugins, toolbar buttons, events, CSS theming and runtime localisation; the documented editing is annotation, form filling and redaction rather than editing existing page text, images or layout, and no general text or image editing, no form field creation and no document-level JavaScript editing is claimed"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 21,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdf-tools.com: the PDF web viewer product page and the true-redaction feature page, read 2026-09-22 with headless Chrome. Vendor documentation, not independently tested; the packages were not installed and no document was redacted.",
      "profileUrl": "https://dialegein.com/products/pdftools-pdf-web-viewer/"
    },
    {
      "slug": "pdftools-sdk",
      "name": "Pdftools SDK",
      "tagline": "Commercial SDK for PDF/A conversion, validation, compression and signing at volume.",
      "websiteUrl": "https://www.pdf-tools.com/products/conversion/pdf-tools-sdk/",
      "summary": "Pdftools SDK is a commercial in-process PDF library for developers, provided by PDF Tools AG, Steinstrasse 21, 8003 Zurich, Switzerland. The current release is Pdftools SDK 1.21.0, dated 13 October 2026; the release line also includes 1.20.1 (12 August 2026) and 1.20.0 (23 July 2026), and older versioned documentation remains available. The SDK is a native library with bindings for C, C#, Java and Python, and Go support through the other-languages interface; the current technical-specification table does not list a separate C++ binding. It supports Windows x86/x64, macOS x64 and ARM64, and Linux x64 on glibc 2.17+ and 2.34+ distributions; release notes separately record native Windows ARM64 and Linux ARM64 support added in earlier releases. It converts images to PDF and PDF/A, converts PDF to images through Viewing, Archive and Fax profiles, archives to PDF/A, compresses and optimises with image recompression and MRC profiles, merges and splits, signs and certifies with certificate-backed signatures, validates signatures, and can use a separate Pdftools OCR Service for OCR. It is designed for on-premises, private-cloud or hybrid deployment and is not a hosted conversion API. The site says Pdftools is joining Apryse; the legal provider remains PDF Tools AG.",
      "bestFor": "Enterprise document pipelines where PDF/A compliance and validation matter, and teams whose existing stack is in C or a language without good PDF tooling, since the C API is genuinely a first-class binding rather than an afterthought. It is also a reasonable choice where deployment has to stay on your own infrastructure for regulatory reasons.",
      "watchOutFor": "The live release notes now show Pdftools SDK 1.21.0 (13 October 2026), not 1.20.1, which is the previous release. The legal provider is PDF Tools AG, Steinstrasse 21, 8003 Zurich, Switzerland, per the imprint and licence agreement. The site banner says Pdftools is joining Apryse; that is a prospective corporate/brand transition in the vendor's own wording, and this record keeps PDF Tools AG as the documented provider rather than silently replacing it. The SDK is priced per page and quote-based; no numeric rate is published, so priceFromGbp is null and priceBasis is unknown, with no currency conversion. The SDK can be used without a licence key only with watermarked results, and trial output is also watermarked; page-credit licensing uses two credits for PDF/A archival and one for the other operations. The licensing service URL and Licensing Gateway are licence-checking paths and are not evidence that document contents are uploaded or processed by Pdftools. The current technical-specification table lists C, C#, Java and Python bindings plus Go through the other-languages interface; it does not list a separate C++ binding. Windows is listed as x86/x64, macOS as x64/ARM64 and Linux as x64 with glibc requirements; release notes separately record Windows ARM64 and Linux ARM64 support added in earlier releases, so the platform table and the release notes are not identical. OCR requires a separate Pdftools OCR Service instance and the service performs the actual character recognition; no OCR accuracy guarantee is made, and OCR is not one of this record's jobs. Conversion covers image-to-PDF and PDF/A, PDF-to-image profiles, PDF/A archival and conformance validation; it is not a generic Office converter and carries no fidelity guarantee. Compression covers Optimize profiles, image recompression and MRC; no percentage, size-reduction or lossless guarantee is made. Signing is certificate-backed through PFX/P12 or the built-in cryptographic provider, with certification, timestamps, LTV information and signature validation; no certificate authority is supplied, and no trust-chain, timestamp or legal-validity guarantee is made.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "PDF Tools AG, Steinstrasse 21, 8003 Zurich, Switzerland",
      "platforms": [
        "windows",
        "linux",
        "mac",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "compress",
        "sign"
      ],
      "jobScores": {
        "convert": 85,
        "compress": 70,
        "sign": 70
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.pdf-tools.com/products/conversion/pdf-tools-sdk/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "RECORDED AS UNVERIFIED, AND THE REASON IS SPECIFIC. The vendor makes an unusually strong redaction claim elsewhere on this site - \"Redaction That Can't Be Undone\", building \"a new PDF without sensitive information\" with \"no residual data\" - and that page attributes the manual redaction path to the PDF Viewer rather than to this SDK. This SDK's own page describes conversion, PDF/A creation and validation, compression and signing, and does not mention redaction at all. Recording `removes_content` here would be taking a family brochure for a product page, which is the mistake this index made with Foxit's desktop editor and the SDK. What would settle it: the API reference for this SDK, or a canary test through it."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded SDK, so it runs inside the application that links it. The vendor also sells a separate Conversion Service, and that service is offered for self-hosted, on-premises and cloud deployment on Windows, Linux and Docker rather than being vendor-hosted only: a REST API is an interface, not evidence that the vendor processes the files. SDK deployment and service deployment are separate decisions, and where documents go is determined by the deployment rather than by the shared boilerplate.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An SDK that runs inside your own application. The vendor's own wording is \"deploy on-premise, in the cloud, or hybrid\", where cloud means the customer's cloud rather than theirs. The same company also sells a separate Conversion Service, and the documentation offers that for self-hosted, on-premises and cloud deployment on Windows, Linux and Docker, so it is not a vendor-hosted-only product: a REST API is an interface rather than evidence that the vendor processes the files."
      },
      "license": "Commercial, per-page and quote-based. PDF Tools AG, Steinstrasse 21, 8003 Zurich, Switzerland, is the legal provider named in the imprint and licence agreement. The current pricing page says the SDK is priced per page, by product, with per-page rates that decrease at higher volumes and a quote tailored to the pipeline; no numeric rate or public price is published. The SDK can be used without a licence key only with watermarked results, and a trial licence also produces watermarked output; a full licence removes the watermark. Page-credit licensing charges one credit per page operation, with PDF/A archival charged at two credits per operation and other operations at one. The licensing page describes a default licensing service URL and an optional Licensing Gateway for offline or proxied operation; that is a licence-checking path, not a document-processing endpoint. The site banner says Pdftools is joining Apryse, which is recorded as a prospective brand/corporate transition; it is not used to replace PDF Tools AG as the documented provider. The provider's commercial licence is separate from third-party and native libraries and from the separate Conversion Service, OCR Service, Toolbox add-on and Viewer SDK.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting documents with Pdftools SDK, where the current guides document image-to-PDF conversion, image-to-PDF/A conversion with PDF/A-1b, PDF/A-1a, PDF/A-2b, PDF/A-2u, PDF/A-2a, PDF/A-3b, PDF/A-3u and PDF/A-3a conformance, PDF-to-image conversion using the Viewing, Archive and Fax profiles, PDF-to-PDF/A archival with the Archive profile, and PDF/A and other standards validation. The conversion-profile documentation says profiles define how an input file is converted and rendered into an output file, with raster JPEG or PNG output and adjustable parameters. The scope records those documented image/PDF/A/PDF-to-image directions and conformance profiles, and makes no generic Office conversion, OCR or fidelity guarantee",
        "compress": "compressing and optimising PDFs with Pdftools SDK, where the guides document Optimize with document profiles for web, archive and print, image recompression options, mixed raster content profiles, and removal options such as redundant graphics state save and restore pairs in 1.21. The scope records the documented Optimize profiles, image recompression and MRC settings, notes that optimisation can alter images and depends on the selected settings, and makes no percentage, size-reduction or lossless guarantee",
        "sign": "signing PDFs with Pdftools SDK, where the signing guides document applying a document approval signature with a PFX or P12 certificate through the built-in cryptographic provider or another supported provider, certifying a PDF, adding a document timestamp, creating a signature visual appearance, validating signatures, configuring a timestamp authority, embedding long-term validation information, and using the SDK's signature-validation and certificate/trust-chain APIs. The scope records the documented certificate-backed signing, certification, timestamp, LTV and validation path, and makes no claim that a certificate authority is supplied, no universal trust-chain guarantee, no trusted-timestamp guarantee and no independent legal-validity guarantee; visual appearance is a separate optional step"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 462,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "pdf-tools.com: the home page, the Pdftools SDK product page and the true-redaction feature page, read 2026-09-22 with headless Chrome. Vendor documentation, not independently tested; the SDK was not downloaded and no document was converted.",
      "profileUrl": "https://dialegein.com/products/pdftools-sdk/"
    },
    {
      "slug": "pikepdf",
      "name": "pikepdf",
      "tagline": "Python wrapper around qpdf for reading, repairing and structurally editing PDFs.",
      "websiteUrl": "https://pikepdf.readthedocs.io",
      "summary": "pikepdf is a Python library, current version 10.17.0, for creating, reading, manipulating and repairing PDFs through a Pythonic wrapper around the qpdf C++ library. It exposes a PDF's objects, dictionaries, arrays, streams and page tree rather than a rendered view: it opens and repairs files, merges, splits, rotates and reorders pages, copies pages between documents, edits metadata, reads and writes annotations and AcroForm fields, extracts and replaces images, linearizes for progressive delivery, optimises structures and reads or writes password encryption. It deliberately does not render pages, extract text, perform OCR or convert documents to other formats. The package requires Python 3.11 or later and is published under MPL-2.0; binary wheels are documented for Python 3.11 through 3.14 on Windows x64 and ARM64, Linux x86_64 and aarch64 with manylinux and musllinux, and macOS 15 or later on Apple Silicon, with Intel macOS and older systems possible only from source.",
      "bestFor": "Python developers doing structural PDF surgery, batch repair or metadata sanitisation who want a permissive licence rather than AGPL.",
      "watchOutFor": "It is a library, not a command-line program: no pikepdf executable is installed, so the surface is Python code. It cannot reliably redact text or images, and the project says no purely programmatic tool operating on a file's structure can; it also does not render pages, extract text, perform OCR or convert documents to other formats. The qpdf encryption documentation is explicit that PDF permission restrictions are enforced only by the software that opens the file and can be ignored by a modified reader, so the password and permission API is not a universal reader-enforcement guarantee and no specific cryptographic strength is asserted. The qpdf engine is a separate Apache-2.0 project with its own copyright holders, Jay Berkenbilt and Manfred Holger; pikepdf itself is MPL-2.0 and its wheels bundle other dependencies under their own licences, so the two licences and the bundled notices are kept separate. Binary wheel support is narrower than the platform list suggests: the current wheel table covers Windows x64 and ARM64, Linux x86_64 and aarch64 on manylinux and musllinux, and macOS 15 or later on Apple Silicon only; Intel macOS requires a source build and is not a published wheel. Python 3.11 or later is required, and the documented wheel table covers 3.11 through 3.14. No public commercial price or commercial-support price was found, so no price is asserted. Processing is local to the Python process and there is no vendor-hosted endpoint and no mobile build.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "James R. Barlow",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2017,
      "primaryJob": "protect",
      "jobs": [
        "protect",
        "merge",
        "edit",
        "compress"
      ],
      "jobScores": {
        "protect": 70,
        "merge": 85,
        "edit": 80,
        "compress": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "api",
        "source": "https://pikepdf.readthedocs.io/",
        "readAt": "2026-09-17",
        "quote": null,
        "caveat": "Established by inspecting the installed library rather than by testing a document: no method containing \"redact\" exists at any level of its API. That establishes the absence of a feature, which is a different and firmer kind of claim than a mechanism working. The project documents that purely programmatic redaction of a PDF cannot be reliable."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: an in-process Python extension that compiles qpdf into the wheel. There is no hosted component, so files are opened and written on the local filesystem only.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An in-process Python extension that compiles qpdf into the wheel. There is no hosted component at all."
      },
      "license": "MPL-2.0 for pikepdf. The PyPI metadata reports license_expression MPL-2.0 and the documentation copyright is 2026 James R. Barlow. pikepdf wraps qpdf, which is a separate project under the Apache License 2.0, copyright 2005-2021 Jay Berkenbilt and 2022-2026 Jay Berkenbilt and Manfred Holger, and the wheel binaries bundle other dependencies under their own licences. No corporate ownership relationship between pikepdf and qpdf is asserted or implied; they are separate projects with separate copyright holders and licences.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "protect": "protecting PDFs with pikepdf, where the API documentation exposes Pdf.save with an Encryption object carrying owner and user passwords, allow-oriented Permissions for accessibility, extraction, annotation, assembly, form and other modifications and low- and high-resolution printing, and EncryptionMethod values rc4, aes, aesv3, none and unknown, plus JobBuilder.encrypt, JobBuilder.decrypt and opening password-protected files. The qpdf manual explains that the security restrictions placed on PDF files are enforced solely by the software opening them, that a modified reader can ignore them, and that password protection has separate user and owner password semantics. The scope records the documented encryption, owner and user password, permission and decryption controls in the Python library, makes no universal reader-enforcement guarantee, asserts no particular cryptographic strength beyond the documented method names, and does not claim a specific encryption level where the API documentation does not state one",
        "merge": "merging and assembling documents with pikepdf, where the pages documentation documents splitting a PDF into single-page PDFs, merging or concatenating several PDFs, reversing page order, copying pages from other PDFs, emplacing pages, reordering pages without breaking links by removing and reinserting the page, copying pages within a PDF, and using page ranges. The scope records the documented page-level split, merge, concatenate, copy, insert, extend, reverse and reorder operations and makes no claim about preserving signatures, forms, links or annotations beyond the documented page-copy behaviour",
        "edit": "editing PDF structure with pikepdf, where the documentation exposes the object model for dictionaries, arrays, streams and page trees, page rotation, page boxes, metadata access and editing for XMP and DocumentInfo, annotations, AcroForm fields and form copying, attachments, outlines and the sanitiser helpers for JavaScript, embedded files, external access, thumbnails, search indexes, multimedia, capture data, private application data and collections. The scope records the documented object, page, annotation, form, metadata, attachment and sanitiser operations in the Python library, makes no general text-editor, OCR, trust-preserving or conversion claim, and leaves redaction explicitly unsupported as the project states",
        "compress": "optimising PDFs by removing unreferenced resources, recompressing streams and optimising images"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 252,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "pikepdf.readthedocs.io (home, sanitize topic); the repository LICENSE and pyproject.toml; PyPI metadata; GitHub API metadata.",
      "profileUrl": "https://dialegein.com/products/pikepdf/"
    },
    {
      "slug": "poppler",
      "name": "Poppler",
      "tagline": "GPL PDF rendering library and command-line utilities used across Linux desktops.",
      "websiteUrl": "https://poppler.freedesktop.org/",
      "summary": "Poppler is a GPL PDF rendering library based on the xpdf-3.0 code base, with C++, GLib, Qt5 and Qt6 frontends, and it is the engine behind many Linux desktop PDF viewers. The current stable release is poppler-26.10.0, released 4 October 2026. The library renders pages and exposes document structure and metadata through its frontends. The source tree ships command-line utilities including pdftotext and pdfimages for text and image extraction, pdfinfo and pdffonts for metadata and font inspection, pdfdetach for attachments, pdftoppm and pdftocairo for raster and vector rendering, pdftohtml and pdftops for HTML/PostScript output, pdfunite for merging and pdfseparate for splitting, and pdfsig for signature verification and, from 26.10, signing with CAdES-B/eIDAS support. It is a library and toolset, not a finished application. The official CI builds on Debian unstable, Ubuntu 24.04, Fedora with a mingw64 Windows cross-build and Qt 6 Android; native macOS and native Windows builds are community-supported rather than official CI targets.",
      "bestFor": "Developers and packagers who need a GPL-compatible rendering or text-extraction engine to embed in a larger application, or to script from a shell.",
      "watchOutFor": "Poppler is a GPL library and utility set, not a permissively licensed SDK and not a finished viewer: the README says Poppler is licensed under the GPL rather than the LGPL, so programs that link it must be GPL-compatible. The core's own project changes are GPL-2.0-or-later over an xpdf-3.0 base, the tarball carries COPYING (GPLv2) and COPYING3 (GPLv3) for bundled components, and distribution packaging can read the whole as a mixture, but there is no permissive option inside Poppler itself. The current stable release is 26.10.0, released 4 October 2026. The official CI covers Debian unstable, Ubuntu 24.04, Fedora with a mingw64 Windows cross-build and Qt 6 Android; native macOS and native Windows are community-supported rather than official CI targets, so the platform list is not a promise of official binaries for every desktop. The utilities mostly process one document per invocation; pdfunite accepts several source PDFs and one destination, and pdfseparate writes one file per page, but there is no batch-job interface of its own. The core does not provide arbitrary page-content editing, OCR, redaction or a generic Office/PDF conversion; content editing is limited to the library's annotation/form handling, and no shipped utility exposes general text editing. Signature support is separate from the catalog jobs: pdfsig verifies signatures using the NSS database or GnuPG/gpgsm, performs OCSP revocation checks unless disabled, and supports -nocert and -assert-signer; from 26.10 it can also add signatures with -add-signature and CAdES-B/eIDAS support. That does not supply a certificate authority, a trusted timestamp, a trust-chain guarantee or legal validity, and no sign job is claimed. Rendering and extraction exactness depends on the document and settings, and no OCR or text-recognition guarantee is made.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "The Poppler Developers",
      "platforms": [
        "linux",
        "windows",
        "mac",
        "android"
      ],
      "launchedYear": 2005,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "extract",
        "view",
        "merge"
      ],
      "jobScores": {
        "convert": 80,
        "extract": 78,
        "view": 75,
        "merge": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://poppler.freedesktop.org/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Inherent to the technology rather than a vendor claim: a library plus command-line binaries that run in your own process or shell, with no service component, so documents never leave the machine unless you deliberately send them somewhere.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A library plus command-line binaries that run in your own process or shell, with no service component of any kind."
      },
      "license": "GPL-2.0-or-later for changes made under the Poppler project to the core and utilities, over the xpdf-3.0 base whose files carry the GPL version 2 or later notice. The release tarball contains COPYING (GNU GPL version 2) and COPYING3 (GNU GPL version 3) for bundled components, and the README states that Poppler is licensed under the GPL rather than the LGPL, so programs calling Poppler must be GPL-compatible. Bundled components and distribution packaging can carry additional licences; no permissive licence is offered inside Poppler itself.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "in_process",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "rendering and converting PDF pages to image, HTML and PostScript output through the bundled utilities",
        "extract": "extracting text, images, metadata, fonts and attachments with Poppler's command-line utilities, where the man pages document pdftotext converting PDF to plain text with page ranges, layout/raw/bbox/htmlmeta modes and encoding options; pdfimages saving images as PPM, PBM, PNG, TIFF, JPEG, JPEG2000 or JBIG2; pdfinfo printing the Info dictionary, metadata stream, tagged/form/javascript and page information; pdffonts listing fonts; and pdfdetach extracting embedded files. The scope records the documented text, image, metadata, font and attachment extraction utilities and makes no OCR, redaction, arbitrary text editing or generic document-conversion claim",
        "view": "rendering and viewing PDF pages with Poppler's library and utilities, where the project documents C++, GLib, Qt5 and Qt6 frontends for rendering PDF pages and the command-line utilities pdftoppm (PPM/PGM/PBM raster output) and pdftocairo (PNG, JPEG, TIFF, PDF, PostScript, EPS, SVG and Windows printer output) render pages. The scope records the library/frontend rendering surface and the raster/vector rendering utilities, makes no claim to ship a finished GUI viewer, and makes no OCR, text-recognition or exact-rendering guarantee",
        "merge": "merging and splitting PDFs with Poppler's command-line utilities, where the man pages document pdfunite merging several PDF files in command-line order into one PDF result and pdfseparate extracting single pages from a PDF using a page pattern; pdfunite's man page states that none of the source files should be encrypted. The scope records the documented concatenation/merge and per-page split operations, and makes no arbitrary page-content editing, encryption handling, signature preservation or general document-transformation claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 795,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "poppler.freedesktop.org read 2026-09-22; upstream COPYING, poppler/PDFDoc.cc and utils/pdftotext.cc fetched from the project's GitLab on 2026-09-25 and held as poppler-COPYING.txt, poppler-PDFDoc.cc.txt and poppler-pdftotext.cc.txt; Arch Linux package metadata; Debian man page for pdftoppm; LWN announcement of the original Poppler release.",
      "profileUrl": "https://dialegein.com/products/poppler/"
    },
    {
      "slug": "power-pdf",
      "name": "Power PDF",
      "tagline": "Office-style PDF editor where genuine redaction needs the Advanced tier.",
      "websiteUrl": "https://www.tungstenautomation.com/products/power-pdf",
      "summary": "A PDF editor built around a Microsoft Office-style ribbon and sold by Tungsten Automation, formerly Kofax. It creates PDFs from any printable application and from Office add-ins, edits and converts to and from Word, Excel and PowerPoint, runs OCR, fills and designs forms, applies watermarks, Bates numbering, passwords, certificates and digital signatures, and integrates with SharePoint and iManage. A mobile app for iOS and Android is documented for reading, annotating, markup, signing and sharing PDFs. The Business edition adds a browser-based cloud editor and a Teams app.",
      "bestFor": "Windows-centric business and legal teams that want Acrobat-style editing and compliant redaction under a one-time licence rather than a subscription.",
      "watchOutFor": "Redaction is an Advanced feature - buying Standard leaves it out entirely, which is easy to miss given the £95 headline. The vendor's own manual also documents a flattening option that covers text without redacting it, which is a trap. Retail Standard, Advanced and Mac editions offer perpetual licences while Business supports subscription and negotiated options, so one-time licensing is not a family-wide rule. Native macOS is a separate edition, and the iOS and Android mobile apps are documented for reading, annotating, markup, signing and sharing rather than for desktop-equivalent editing. The documented fifteen-day retail evaluation is recorded, with the vendor stating that all features are available and the duration is the limitation, without claiming an independently inspected watermark-free export. The Advanced redaction and covering or flattening distinction is preserved.",
      "pricingModel": "paid",
      "priceFromGbp": 95,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Tungsten Automation Corporation",
      "platforms": [
        "web",
        "windows",
        "mac",
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "protect",
        "convert",
        "sign",
        "view",
        "merge",
        "ocr",
        "compress"
      ],
      "jobScores": {
        "edit": 86,
        "protect": 88,
        "convert": 88,
        "sign": 85,
        "view": 85,
        "merge": 80,
        "ocr": 80,
        "compress": 75
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://docshield.tungstenautomation.com/powerpdf/en_us/4.0.0-u2prycyg8w/help/PowerPDF_help/c_aboutredactionandremovingdocumentelements.html",
        "quote": "A key concept is that Deletion is not equal to Redaction. The information you delete from a PDF with the Delete command is not actually cleared from the document permanently and can almost always be recovered. … Redaction lets users sanitize PDF documents they want to release.",
        "caveat": "Downgraded from removes_content on 2026-09-22. The vendor’s own definition is \"the blacking out of sensitive text or pictures from a PDF file\", and the page never states that the marked content leaves the file. It does warn, correctly, that the Delete command is not redaction - which is a different distinction from promising removal. ALSO WEAKER THAN THE VERDICT IMPLIES. The page’s own definition is covering language - \"Redaction is the blacking out of sensitive text or pictures from a PDF file\" - and it never states that the marked content leaves the file. It does draw the right distinction in the negative, warning that the Delete command is not redaction. Power PDF Advanced only, on the Security tab. Should be tested or downgraded."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the edition and the feature. The installed Standard, Advanced and Mac editions work on files on the machine, while the Business cloud editor, Teams collaboration and any configured AI services are separate surfaces that send data to their services. Multiple-region residency needs a service-specific source for that cloud and AI processing. The Advanced redaction is documented as permanent removal, but that is a vendor statement rather than independently verified compliant output, and multiple-region residency is not a family-wide property.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Power PDF Standard, Advanced and Mac editions, iOS and Android mobile apps. On their servers: Business cloud editor, Teams and configured AI services. A single answer for the whole product would be wrong for one of them."
      },
      "license": "proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "Power PDF Standard, Advanced and Mac editions",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "Business cloud editor, Teams and configured AI services",
          "processing": "vendor_cloud",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mobile",
          "name": "iOS and Android mobile apps",
          "processing": "in_process",
          "platforms": [
            "ios",
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF documents with Power PDF, where the Standard edition page says the product creates, edits and compiles PDF files from almost any document or file type, changes text, moves pictures, adds annotations and applies stamps, and the pricing feature comparison lists text cut/copy/paste editing, editing support for right-to-left languages, advanced graphic image editing, page management including insert, extract, delete, rotate and crop, a full document assembly view with insert, replace, split, renumber and header and footer management, combining open PDFs in one click, comments and markup tools, a stamp library, form field creation and editing with text, checkbox, radio, list, combo, signature and image field types, automatic form detection, calculated fields and form data export; the scope is the documented desktop editing and page and form operations, and the mobile apps are documented for annotating, markup, signing and sharing rather than desktop-equivalent editing",
        "protect": "protecting PDF documents with Power PDF, where the product page says Power PDF adds encrypted passwords and permissions, redacts sensitive information and private metadata, the Standard page lists password protection as an Advanced-edition feature, and the pricing feature comparison lists password encryption permissions with AES 128 and 256, redaction that removes text and graphics, advanced redaction properties such as codes, overlay text and colours, Inspect Document to remove metadata, IRM and Active Directory Rights Management Services, the EU Trusted List and server-side protection on SharePoint; the scope keeps the documented tier boundary that redaction is an Advanced feature and is not listed in Standard, and records no algorithm beyond AES 128 and 256 as stated, and no claim about redaction being available in Standard",
        "convert": "converting PDF documents to and from other formats with Power PDF, where the product page says Power PDF creates, edits and converts PDF files to and from Word, Excel, PowerPoint, JPG, HTML and more, the Standard page says PDFs can be converted to other formats including Word, Excel, JPG and PNG, and the pricing feature comparison lists conversion of PDF to Word, Excel including PDF tables to a single Excel workbook, PowerPoint and XPS, XPS to PDF, conversion without requiring Microsoft Office, automatic detection of scanned PDFs for OCR conversion, and PDF/A and PDF/UA creation; the scope covers the documented conversion directions and the OCR-assisted scan conversion, and no fidelity guarantee or conversion of formats not listed is claimed",
        "sign": "signing PDF documents with Power PDF, where the Standard edition page documents adding stamp-based signatures to PDF documents, the Advanced edition page documents e-signature capability and embedded Tungsten SignDoc workflows, and the pricing feature comparison lists self-signed digital signatures to create and apply, signature validation management to view, verify and navigate, DocuSign integration to send for signature and embedded Tungsten SignDoc workflows for a full eSignature experience; the scope distinguishes the documented stamp-based signatures and self-signed digital signatures from the separately sold Tungsten SignDoc eSignature service, and makes no claim about certificate authorities, timestamping or long-term validation",
        "view": "opening and reading PDF documents with Power PDF, where the vendor's product page and edition pages describe Power PDF as a PDF editor that opens and reads PDFs, the Standard page says PDFs can be opened instantly from Chrome or Edge into Power PDF, and the product page and Standard page document mobile support for iOS and Android users to read, annotate, markup, sign and share PDFs; the view scope is opening and reading documents on the documented desktop, web and mobile surfaces, and no claim is made about specific navigation, zoom or layout controls beyond what the product and edition pages state",
        "merge": "merging and splitting PDF documents with Power PDF, where the pricing feature comparison lists PDF merging to create a single PDF from multiple files as included in the editions, and document splitting by page range, content, bookmarks and size, together with batch PDF creation from multiple files and formats at the higher editions, and the vendor publishes a merge-or-split how-to guide; the scope is the documented merging, splitting and batch creation operations, and no claim is made about preserving signatures, forms or annotations across a merge",
        "ocr": "running optical character recognition with Power PDF, where the pricing feature comparison lists the Tungsten OCR Engine at version 22, automatic detection of scanned PDFs, automatic OCR proofreading after capture and one-click capture with auto text detection, and the product page and edition pages describe OCR-assisted conversion of scanned documents; the scope is the documented OCR engine and its use in scan capture and conversion, and no accuracy figure, language count or hosted OCR service is claimed",
        "compress": "reducing the size of PDF documents with Power PDF, where the pricing feature comparison lists MRC compression for high-compression image PDFs as included across the editions and batch file size reduction, together with batch processing to apply commands across files; the scope is the documented MRC image compression and batch file-size reduction, and no size-reduction percentage, image-quality threshold or lossless guarantee is claimed"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 553,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "tungstenautomation.com (Power PDF product page and pricing); the Power PDF help library page on redaction and removing document elements; tungstenautomation.com legal privacy page. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/power-pdf/"
    },
    {
      "slug": "prep-continual-engine",
      "name": "PREP",
      "tagline": "Continual Engine's cloud remediation platform for accessible PDFs and documents, with AI tagging, OCR and REST APIs.",
      "websiteUrl": "https://continualengine.com/prep-pdf-remediation-software/",
      "summary": "PREP is Continual Engine US, LLC's hosted document-accessibility remediation platform. Documents are uploaded to a browser-based workspace, an AI pass proposes tags and structure, a person reviews and corrects the result, the platform checks against a chosen standard and generates a report, and the remediated file is exported. The current product page documents AI auto-tagging for headings, lists, tables, table of contents, forms, math and alt text; reading-order work; built-in OCR for scanned or poor-quality documents; collaboration and assignment; accessibility checking and reporting; PDF-to-text, Word, HTML and ePub conversion; and Canvas/D2L LMS integrations. The PREP Auto Tag API and Accessibility Checker API expose REST endpoints for bulk tagging and accessibility validation, with API keys and asynchronous processing. The product is marketed as cloud-based and browser-accessible with no installation and automatic upgrades; a bank case study documents a customer-specific on-premises deployment, so on-premises may be available as an enterprise arrangement but is not described as a standard public edition. TX-RAMP Level 2 certification covers the PREP cloud service and Invicta, granted 12 December 2025 and expiring 11 December 2028 under certificate TX1742040; that certification is not extended here beyond its stated scope. Pricing is quote-only, with no public rate. The vendor's 100% compliance and percentage claims are marketing statements, not independently verified guarantees.",
      "bestFor": "Accessibility teams facing a backlog rather than a one-off document. The collaboration and assignment features, the built-in OCR for scanned material and the per-document compliance report are all aimed at producing accessible documents at institutional scale, and the vendor's own customers describe replacing an outbound remediation service with it. A reader who needs to fix one PDF will find the whole apparatus is aimed at somebody else.",
      "watchOutFor": "Pricing is quote-only: the product FAQ directs buyers to prep@continualengine.com, the Fulfillment Policy says payments are in USD or the purchase currency, and no public plan rate is published. The vendor's own Fulfillment Policy disclaims perfection and complete compliance with accessibility standards, places legal responsibility on the customer, and says it does not provide legal, financial or compliance advice; the product page's statement that remediation output is 100% compliant with ADA/508/EAA/WCAG 2.2 AA is recorded as a vendor marketing claim with an unverifiable verdict, not as a guarantee. Preceding percentages such as 95% automation, 100% accuracy and more than 60% turnaround are likewise vendor numbers with no stated baseline or sample. The service is primarily cloud/browser: the current product page says no installation, automatic upgrades and a hosted workspace, and the privacy policy and Fulfillment Policy are dated 1 October 2025. A bank case study documents an on-premises deployment for that customer, so on-premises cannot be ruled out, but no public self-hosted edition, deployment terms or data-residency commitment is published; selfHostable is therefore not asserted and data residency is unknown. No public DPA or security page was located. The privacy policy is a general website policy and does not state document-retention periods or a data-residency commitment; treat uploaded documents and the vendor's processing locations as matters to confirm in contracting. The accessibility job is remediation/tagging and checking/reporting, not generic PDF body-text editing; the platform is not a general PDF editor, does not redact or sign, and does not provide universal ADA/WCAG/PDF/UA compliance or legal protection. The OCR job is the built-in OCR mode for scanned pages with manual correction, not an independent OCR accuracy guarantee. The convert job covers the documented PDF-to-text/Word/HTML/ePub and inter-format conversion/export paths, not generic Office/PDF conversion, rendering or fidelity guarantees. Canvas/D2L integrations and the REST APIs are documented, but API pricing, quotas and on-premises availability are not public. TX-RAMP Level 2 certification applies only to the scope and dates stated in certificate TX1742040 and is not a general security or compliance guarantee.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Continual Engine US, LLC",
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "ocr",
        "convert"
      ],
      "jobScores": {
        "accessibility": 78,
        "ocr": null,
        "convert": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://continualengine.com/prep-pdf-remediation-software/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence for a tool that certainly edits documents, which is why it needs saying plainly. PREP's documented work is structural - auto-detect tags, review and modify \"the page content structure\", and correct flagged accessibility issues - and the feature list includes conversion of PDFs to Text, Word, HTML and ePub. None of that is described as removing content, and a remediation platform is not a redaction tool. What it does not establish: that an editing interface of this kind cannot delete content, which is a capability question rather than a redaction-feature question, and one nobody should read this verdict as answering."
      },
      "processesLocally": false,
      "processesLocallyNote": "It is a hosted platform, and the documented workflows include a browser workspace and HTTP APIs for its Auto Tag and Checker services. The browser workspace is an interface rather than a browser JavaScript SDK, and the programmatic label belongs to those documented APIs rather than to the workspace. Offices and cloud-provider names do not establish a processing region or a retention period, so both stay unknown.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. The documented workflow uploads the document to their cloud platform for tagging and review, and the vendor states it is browser-based with nothing to install."
      },
      "license": "Commercial, quote-based SaaS. The provider is Continual Engine US, LLC (brand Continual Engine), 5900 Balcones Drive Suite 27899, Austin, Texas 78731, US, with an office in Bengaluru, India, as identified in the TX-RAMP certification and the site footer. The Privacy Policy and Fulfillment Policy/Terms of Service are both dated 1 October 2025. The Fulfillment Policy states that payment is in USD or the currency specified at purchase, that no refunds are issued, and that the customer remains responsible for legal compliance; it expressly does not guarantee perfection or complete compliance with accessibility standards. PREP is sold through a custom quote and demo route and no public price or plan rate is published. The PREP APIs are a separate subscription with a developer key. No public DPA or security page was located; the privacy policy covers contact information and general data rights but does not state a retention period or a data-residency commitment.",
      "openSource": false,
      "selfHostable": null,
      "interfaces": [
        "browser",
        "http"
      ],
      "dataResidency": "unknown",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "REST API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "remediating and checking document accessibility with PREP, where the product page and About PREP document AI auto-tagging for headings, lists, tables, table of contents, forms, math and alt text, reading-order work, collapsible one-to-two-click tagging, a built-in accessibility checker and report generation against WCAG 2.2, PDF/UA, Section 508 and ADA, collaboration and document assignment, department-level tracking and admin controls, and Canvas/D2L LMS integrations. The scope records the documented remediation/tagging, accessibility checking/reporting and collaboration workflow, and makes no generic PDF body-text editing, redaction, signing, universal 100% compliance, ADA/WCAG legal guarantee or independent accuracy claim; the vendor's percentage and compliance statements are recorded as unverified marketing claims",
        "ocr": "running OCR inside PREP's remediation workflow, where the product page documents a built-in OCR mode for scanned documents with poor quality or complex structures and the FAQ says PREP helps users perform OCR, fix OCR errors and then tag the file. The scope records the documented scanned-document OCR, correction and subsequent tagging workflow, makes no independent OCR accuracy, language-coverage, exact-recognition or universal scanned-document guarantee, and does not treat OCR as a general OCR product separate from remediation",
        "convert": "converting and exporting remediated documents with PREP, where the product page documents digitization of scanned documents and conversion of PDFs to text, Word, HTML and ePub formats, the site markets easy inter-format conversions, and the PREP Smart HTML product converts PDFs into accessible HTML. The scope records the documented PDF-to-text/Word/HTML/ePub conversion and export paths in the remediation workflow, and makes no generic Office/PDF conversion, arbitrary file conversion, rendering, fidelity, PDF/A or universal format-support guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1386,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "continualengine.com, read 2026-09-22 with headless Chrome: the PREP product page (visible text 12467 bytes) and the company home page (14290 bytes), including the three-step workflow, the features section, the FAQ answers embedded as FAQPage structured data, and the footer with office locations. Vendor documentation, not independently tested; nothing was uploaded, no trial was requested and no document was remediated.",
      "profileUrl": "https://dialegein.com/products/prep-continual-engine/"
    },
    {
      "slug": "prince",
      "name": "Prince",
      "tagline": "Installed HTML and CSS typesetting engine that produces print-quality PDF, books included.",
      "websiteUrl": "https://www.princexml.com/",
      "summary": "Prince is YesLogic's installed HTML/XML/CSS typesetting engine that produces print-quality PDF. The current download line is Prince 17, with package build 17-1; the site does not expose an exact patch date, and prerelease builds are a separate track. It accepts HTML, Markdown, XML, SVG, CSS/JavaScript and JPEG/PNG/WebP/AVIF/GIF/TIFF images, and outputs PDF with bookmarks, links, metadata, encryption/document security, embedded/subset fonts and attachments. It supports paged-media layout (headers/footers, page numbers, duplex, tables/lists/columns/floats, footnotes, cross-references) and Unicode/CJK/Arabic/Hebrew/Hindi typography. It runs as a local CLI and through Python/Node.js, Java/.NET, PHP/Ruby on Rails and Docker wrappers on Windows, macOS, Linux and other listed targets, including an AWS Lambda package. Prince for Books is a separate developing branch, not a separate edition of the installed product. The Non-commercial licence is free but restricted and notice/link-bearing; Desktop, Server, Academic Server, Commercial Site and OEM licensing are separate. Prince Cloud, DocRaptor and EuroPDF are separate services, not this installed product.",
      "bestFor": "Publishers and documentation teams who write in HTML/XML/CSS and want the same source typeset to print-quality PDF, especially for long structured documents, books, reports and manuals where ordinary print output is not good enough.",
      "watchOutFor": "The free Non-commercial licence is narrow: it excludes fees, monetary transaction systems such as invoices and receipts, and subscription/advertising income; generated PDFs carry notices that must not be removed, and routine generation requires a prominent princexml.com link where documents are fetched and in email bodies. Free/testing downloads are not a universal production free tier. Pricing is in USD and tier-specific: Desktop USD 495 is for one user on one computer for self-publishing/internal use, not server or commercial site generation; Per Server is USD 3,800 one-time for government/noncommercial internal or free documents; Academic Server is USD 1,900; Commercial Site starts around USD 2,000/year for startups by document type/volume; OEM is quote-based. No GBP price is published and no synthetic conversion is made. The installed product is local; Prince Cloud, DocRaptor and EuroPDF are separate services and are not included. The AWS Lambda package is a deployment target, not a hosted Prince edition. FreeBSD is listed in the download matrix but not in the schema platform enum. Prince is its own typesetting engine rather than a general-purpose renderer: CSS/layout behavior is whatever Prince implements, and no fidelity comparison against a general-purpose renderer was run. It produces PDF but does not edit PDFs, OCR, redact, sign or convert Office/Word documents; redaction absence is a documentation-boundary observation, not a security guarantee. Prince for Books is a separate developing branch and not an installed-edition feature.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "YesLogic Pty. Ltd.",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 88
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.princexml.com/",
        "readAt": "2026-09-22",
        "quote": "It's quick and simple to convert HTML to PDF with Prince. HTML is seamlessly transformed into documents you can print, download and archive.",
        "caveat": "Recorded as `none` on absence, and this one is structural rather than a judgement about a feature list: Prince is a generator. It builds a PDF from HTML and CSS and has no notion of an existing document to edit, so there is nothing for a redaction feature to operate on. Its output hardening is encryption and document security, which is a different thing from removing content. What it does not establish: that a PDF produced by Prince is free of whatever the source HTML contained - a template that prints a field will print it, and a generator writes what it is told to write."
      },
      "processesLocally": true,
      "processesLocallyNote": "Installed Prince runs as a local CLI or through wrapper libraries on the customer's machine or server. It reads HTML/CSS and local or configured URL resources, and writes PDF locally; YesLogic operates no processing service in that path. A licence file may be required; an account is not. The AWS Lambda package is a deployment target, not a Prince-hosted service. FreeBSD is listed as a download target but is not represented in the schema's platform enum. Prince Cloud, DocRaptor and EuroPDF are separate services and are not this installed edition.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A program you install and run yourself. It reads HTML and CSS from local storage or a URL you choose and writes the PDF locally; YesLogic operates no processing service in the path."
      },
      "license": "Proprietary commercial licence from YesLogic Pty. Ltd., in tiers: a restricted Non-commercial licence (no fees, no part in a monetary transaction system such as invoices or receipts, no subscription/advertising income; generated PDFs carry notices that must not be removed, and routine generation requires a prominent link to princexml.com where documents are fetched and in email bodies), Desktop USD 495 one-time for one user/one computer for self-publishing or internal use, Per Server USD 3,800 one-time for government/noncommercial internal or free documents, Academic Server USD 1,900, Commercial Site from about USD 2,000/year for startups based on type/volume, OEM quote-based, and separate DocRaptor/EuroPDF service offerings. No GBP price is published; no currency conversion is made. No source licence is offered.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "cli",
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "installed",
          "name": "Installed Prince (CLI and wrapper libraries)",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "cli",
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting HTML/XML/CSS source into PDF with installed Prince, where the current product page documents HTML, Markdown, XML and SVG inputs; CSS and JavaScript; JPEG, PNG, WebP, AVIF, GIF and TIFF images; and PDF output with bookmarks, links, metadata, encryption/document security, font embedding and subsetting, and attachments. It runs from the local CLI and through Python/Node.js, Java/.NET, PHP/Ruby on Rails and Docker wrappers, with paged-media layout for headers/footers, page numbers, duplex, tables/lists/columns/floats, footnotes and cross-references. The scope records HTML/XML/CSS-to-PDF generation with documented SVG/Markdown/JS/image inputs and PDF output features, keeps the Non-commercial licence's notices/link obligations and tier distinctions, and makes no general PDF editing, OCR, redaction, signing, Office/Word conversion or Prince-hosted-service claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 58,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://www.princexml.com/download/17/ (Prince 17/17-1 downloads; Windows x64/ARM64, macOS universal, Ubuntu, AlmaLinux, openSUSE, Debian, Alpine, generic Linux, AWS Lambda, FreeBSD; prerelease track); https://www.princexml.com/ (HTML/XML/Markdown/SVG, CSS/JS, image types, PDF output features, wrappers); https://www.princexml.com/purchase/ (Non-commercial restrictions, Desktop USD 495, Server USD 3,800, Academic Server USD 1,900, Commercial Site from ~USD 2,000/year, OEM quote, separate DocRaptor/EuroPDF); https://www.princexml.com/legal/ (YesLogic Pty. Ltd., non-commercial notices/links); https://prince.cloud/ (separate Prince Cloud service); https://www.princexml.com/doc/command-line/; read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/prince/"
    },
    {
      "slug": "prizmdoc",
      "name": "PrizmDoc",
      "tagline": "Accusoft's document viewing and processing APIs, with permanent redaction and AI-assisted PII detection, self-hosted or hosted.",
      "websiteUrl": "https://www.accusoft.com/products/prizmdoc/",
      "summary": "PrizmDoc is Accusoft's document handling platform for content management systems, sold as a set of REST APIs and an embeddable HTML5 viewer rather than as an application. It displays PDF, Office, CAD and DICOM files inside somebody else's product, and around that core sits the processing work an ECM or eDiscovery platform needs: conversion and merging, annotation, watermarking, form filling, eSignatures, document comparison, server-side search across large documents, and redaction. The redaction API is the notable one, because Accusoft documents it as permanent removal rather than a black box drawn over live text, and the AI add-ons built on IBM watsonx.ai extend that to detecting and redacting personal data. Deployment is explicitly a choice between self-hosted, private-cloud and vendor-hosted.",
      "bestFor": "Teams building or extending a document management, eDiscovery or claims system who need viewing and processing to live inside their own application rather than send users to a separate tool. It is aimed at large regulated document volumes - legal, financial, insurance and government records - and the redaction and search APIs are the parts that matter most in those settings. A reader who wants to open one PDF should look at a viewer instead.",
      "watchOutFor": "Accusoft has been acquired by Apryse, announced on the vendor's own site, so the company selling this is no longer independent - worth knowing before a long-term commitment, and worth checking what the acquisition means for the roadmap and for existing licences, which this record does not establish. There is no published price anywhere: every path is a contact form or a trial download, so budgeting starts with a conversation. Where documents are processed depends on which of the three deployment models you choose, and the choice is material - a self-hosted installation keeps files on your infrastructure while a vendor-hosted one does not, and Accusoft's own answers cover only its hosted option: its FAQ states 'Our PrizmDoc Cloud environment is hosted on Amazon Web Services (AWS) running in us-east-1 (Virginia).' and the PrizmDoc Server 'Work Files' topic states 'All work files are temporary and, by default, will be deleted 24 hours after creation.' (both read on 2026-09-25), while no comparable region or retention commitment is published for a customer's own Self-Hosted or Private Cloud deployment, and the 24-hour figure is the default lifetime of intermediate work files, exposed in the same topic as a MinSecondsAvailable request parameter, rather than a whole-service retention policy for every document. The AI features are built on IBM watsonx.ai, which means a third party is in the processing path for those add-ons specifically. Redaction layers can be saved and edited before being applied, which is a workflow stage rather than a statement that applied redactions are reversible, but the distinction is worth understanding before relying on it. And the advanced capabilities are add-ons rather than included features, so the price of the base product is not the price of the product you end up needing. The official download page offers 300 free cloud evaluation transactions, which is evaluation access rather than an ongoing free tier. Not every advanced capability is separately priced in every deployment: the vendor FAQ says available Cloud features are included in transaction and subscription purchases, while self-hosted options may need specific licences. Applied redaction is vendor-documented and separate from editable pending annotations, and prices are recorded as not established from the cited pages rather than as absent everywhere.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Apryse",
      "platforms": [
        "api",
        "self_hosted",
        "web",
        "windows",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit",
        "extract",
        "convert",
        "sign",
        "ocr"
      ],
      "jobScores": {
        "view": 82,
        "edit": 78,
        "extract": 72,
        "convert": 72,
        "sign": 68,
        "ocr": 66
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.accusoft.com/products/prizmdoc/features/redaction/",
        "readAt": "2026-09-22",
        "quote": "Via the REST API (left), perform an auto-redaction process that finds matches of a given regular expression such as a social security number, permanently removes the text, and blacks out the displayed region. The end result is a PDF document with no traces of the text.",
        "caveat": "One of the clearest removal statements in this index, and it is specific where it counts: \"permanently removes the text\" and \"no traces of the text\" describe the file rather than the display, and the sentence distinguishes removing from blacking out - \"permanently removes the text, and blacks out the displayed region\" - which is exactly the distinction the redaction guide exists to draw. Corroborated on the same page by the description of the manual workflow, which offers search-and-redact by term or regular expression, redaction by text selection, rectangle or full page, and redaction reasons. What it does not establish: that every route through the product is permanent. Redaction layers can be saved and edited before being applied, and the page does not say whether a layer applied and saved without being committed behaves differently. The claim is about the API's output, and nothing was tested."
      },
      "processesLocally": null,
      "processesLocallyNote": "It depends on the deployment. A customer-hosted PrizmDoc server processes documents on infrastructure the customer controls, which is not browser-local processing, while the vendor cloud processes them on the vendor’s side with its own region and retention terms. The United States summary applies to the cited hosted service rather than to every deployment, and the temporary work-file lifetime is separate from whole-service retention. AI and third-party processing is a feature-specific documented path that needs a direct source rather than being treated as proof that all deployments send documents to a particular provider.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: PrizmDoc Server deployed by the customer. On their servers: PrizmDoc Cloud hosted by the vendor. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Commercial, quoted rather than published. A free trial is offered through the vendor's download centre; the pages read state no licence terms, no per-developer or per-server basis, and no price.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "http",
        "browser"
      ],
      "dataResidency": "us",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "local",
          "name": "PrizmDoc Server deployed by the customer",
          "processing": "customer_server",
          "platforms": [
            "windows",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "remote",
          "name": "PrizmDoc Cloud hosted by the vendor",
          "processing": "vendor_cloud",
          "platforms": [
            "web",
            "api"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing documents with PrizmDoc, where the HTML5 Viewing page for v14.10 documents the viewer REST endpoints that get a page count, page attributes, SVG or image page renders, page tiles and thumbnails, and the page text for a range, and the overview says the HTML Viewer control lets users view, search, annotate, redact, print and download documents in many different file formats without leaving the application or installing custom software, with an option to use Microsoft Office for high-fidelity rendering of Word, Excel and PowerPoint files, support for viewing and searching large documents with thousands of pages, pre-converted viewing packages for faster loading, and a customizable stock UI and JavaScript API; the system requirements name the current and one version back of Android Chrome, Microsoft Edge, Mozilla Firefox and Safari, and the scope is the browser viewer and its documented operations, not a native application, with no rendering-fidelity guarantee beyond the options the vendor names",
        "edit": "editing and annotating documents with PrizmDoc, where the Annotation API page says annotations are supported for 50+ file types including PDF, Office and image formats, that revisions are tracked through layers and annotations can be managed, merged and toggled on and off, that the system preserves the original documents, and that annotations can be removed from or burned into final files while preserving underlying content; the template-based forms page documents creating text fields directly in the viewer, adding signatures, initials, text boxes, dates and checkboxes, marking mandatory fields, assigning roles, controlling alignment, applying input masks and setting tab order; the form-field detection page documents automatic detection of form fields from AcroForm documents and from scanned TIFF or bitmap documents including underscore and low-dash lines, form field rectangles and checkboxes, manual addition where detection falls short, field types of text input, check box, date, initial and signature, and populating fields with customer data and extracting user-filled data, with the detector an add-on for self-hosted and included with PrizmDoc Cloud-Hosted; the watermark page documents text, diagonal text and image watermarks with font, placement, opacity and font size. The scope is the documented annotation, form and watermark work, makes no claim of in-place editing of existing text or layout, and keeps redaction with the record's redaction field rather than this job",
        "extract": "extracting text with PrizmDoc, where the HTML5 Viewing page for v14.10 documents a viewing-session Text endpoint that returns currently available text and text metadata for a range of pages and notes that it is designed to support the viewer, and explicitly directs anyone who wants to programmatically extract text from a document to the Search Contexts API, namely POST /v2/searchContexts and GET /v2/searchContexts/{contextId}/records; the large documents page documents server-side search for large documents and pre-converted viewing packages, and the advanced search feature page is listed as the search capability; the scope is the documented Search Contexts text extraction and the server-side search path, makes no OCR claim because OCR is the separate ocr job, and makes no structured-data, table or field extraction claim beyond form data described under edit",
        "convert": "converting documents with PrizmDoc, where the Content Conversion Service page documents a REST conversion API that converts files from a variety of input formats to several common output formats, with POST /v2/contentConverters starting a conversion and GET /v2/contentConverters/{processId} reporting status, supporting output formats of jpeg, pdf, png, svg and tiff, plus docx only when the source is PDF and xlsx only when the source is XLS or CSV, with the docx and xlsx destinations requiring the Microsoft Office rendering mode and its feature in the licence key; multiple input files are supported only when the destination is pdf or tiff, the pages option is likewise only supported for pdf or tiff destinations, a password option and page rotation are documented, and the overview says conversion covers Office, PDF, Email, HTML, TIFF, PNG, JPEG, CAD and many other kinds of documents to PDF, TIFF, PNG, JPEG or SVG, that multiple input documents can be merged, that headers, footers and watermarks can be applied, and that a non-searchable PDF or TIFF can be converted into a visually identical PDF that supports full-text search; the scope records those directions and the Office-rendering licence dependency, and makes no fidelity guarantee",
        "sign": "electronically signing documents with PrizmDoc, where the eSignature feature page documents allowing users to electronically sign and date documents inside the application without printing and scanning, creating a freehand signature by drawing with a mouse, stylus or finger or a text signature by typing in a text box, and saving signatures for reuse across multiple documents and sessions within the same browser, with the demo showing the e-sign workflow; the scope is electronic signatures as documented on that page, with no certificate-based digital signature, timestamping, long-term validation or audit-trail claim, and no claim of a full agreement workflow",
        "ocr": "running optical character recognition with PrizmDoc, where the Advanced OCR API page documents OCR of full pages or user-defined zones, image orientation information and recognition of images in any orientation including multi-page images, location and confidence information for each character, segmentation, predefined character sets, rejection of characters whose recognition fails, minimum confidence values, expected data type and expected recognition language, alternate character results with confidence values, and regular expressions or data validation lists to refine results; the page states robust language support for over 60 languages and lists them, with Chinese Traditional, Hong Kong Traditional and Simplified, Indonesian, Korean, Japanese, Thai and Vietnamese provided by an additional Asian Language OCR add-on; the scope records the 60-plus language statement and the Asian add-on as the vendor's claims, makes no accuracy figure claim, and does not claim handwriting or structured table extraction"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 206,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "accusoft.com, read 2026-09-22 with headless Chrome: the home page (visible text 4978 bytes), the PrizmDoc product page (4119 bytes) and the PrizmDoc redaction feature page (4422 bytes), including the deployment comparison table and the included-versus-add-on feature lists. Re-read on 2026-09-25 for the residency, retention and privacy questions: https://www.accusoft.com/faqs/where-is-your-prizmdoc-cloud-environment-hosted/ ('Our PrizmDoc Cloud environment is hosted on Amazon Web Services (AWS) running in us-east-1 (Virginia).'); https://help.accusoft.com/PrizmDoc/latest/HTML/work-files.html ('All work files are temporary and, by default, will be deleted 24 hours after creation.'); and the privacy notice at https://www.accusoft.com/company/legal/privacy/, dated May 29th 2026 and carrying a '7.3 RETENTION OF PERSONAL DATA' section. Vendor documentation, not independently tested; no trial was downloaded, no API was called and no document was redacted.",
      "profileUrl": "https://dialegein.com/products/prizmdoc/"
    },
    {
      "slug": "pymupdf",
      "name": "PyMuPDF",
      "tagline": "Fast Python document library built on MuPDF, with genuine destructive redaction.",
      "websiteUrl": "https://pymupdf.readthedocs.io",
      "summary": "PyMuPDF 1.28.2 binds the MuPDF C engine into Python for extraction, rendering and editing of PDF along with XPS, EPUB, MOBI, comics and image inputs. It renders pages to pixmaps, pulls text, tables and vector graphics, runs Tesseract OCR, reads and writes annotations, form fields, outlines and metadata, merges and splits documents, and applies encryption. Redaction is a deliberate two-step API: annotate an area, then apply the redactions to permanently strip the underlying content.",
      "bestFor": "Teams that need high-speed rendering plus genuinely destructive redaction in Python, and whose licence position can accommodate AGPL or an Artifex commercial licence.",
      "watchOutFor": "AGPL-3.0 is a hard blocker for a closed-source network service unless a commercial licence is bought from Artifex, which the documentation names as the exclusive commercial licensing agent for MuPDF; the standard library itself has no hosted service, cloud API or managed endpoint, and PyMuPDF Pro, which adds Office formats, is a separate product. PyMuPDF is not a viewer application: it renders pages to Pixmaps and the surrounding code has to display them. It is not thread-safe, and the maintainers recommend multiprocessing. Redaction is a deliberate two-step annotate-then-apply API rather than a single call, and the changelog shows a long stream of redaction fixes, including incomplete removal of vector graphics and text falling outside the annotated box, so anyone relying on it should regression-test rather than assume. The command-line entry point wraps a small set of utilities rather than the full API, and redaction is reachable only from Python. OCR is not bundled: it is based on Tesseract, which must be installed separately with its language data before any OCR call works. Text extraction by default makes no effort to prettify or restore natural reading order, and compression results depend on the document and the save options chosen (garbage, deflate, object streams, image and font compression) rather than being guaranteed.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Artifex Software, Inc.",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": 2012,
      "primaryJob": "protect",
      "jobs": [
        "protect",
        "view",
        "extract",
        "convert",
        "merge",
        "edit",
        "ocr",
        "compress"
      ],
      "jobScores": {
        "protect": 90,
        "view": 92,
        "extract": 88,
        "convert": 88,
        "merge": 85,
        "edit": 85,
        "ocr": 78,
        "compress": 65
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": null,
        "readAt": "2026-09-17",
        "quote": null,
        "caveat": "Tested on our own canary document. Deletes the marked text from the page structure and paints a fill. Verified on one document and one version."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: a native Python extension linking the MuPDF C engine, so parsing, rendering and redaction all execute in the calling process. The README states there are no telemetry calls, no licence validation callbacks and no cloud dependencies, so it works air-gapped.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A native Python extension linking the MuPDF C engine, so parsing, rendering and redaction all run in the calling process. Its README states there are no telemetry calls and no cloud dependencies."
      },
      "license": "AGPL-3.0 or commercial, dual-licensed. The documentation says PyMuPDF and MuPDF are available under both the open-source AGPL and commercial licence agreements, and names Artifex as the exclusive commercial licensing agent for MuPDF. The PyPI metadata describes the licence as Dual Licensed - GNU AFFERO GPL 3.0 or Artifex Commercial License, and the documentation gives Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States as the contact. No commercial price is published on the pages read, so none is recorded. PyMuPDF Pro, which adds Office document formats, and PyMuPDF4LLM are separate products in the suite rather than part of the standard library.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "PyMuPDF review - Python PDF and document library",
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "protect": "protecting PDFs with PyMuPDF, where the Document.save() API documents the encryption parameter with the PDF encryption method codes, the permissions parameter for document permissions, and the owner_pw and user_pw password arguments, and the documentation notes that non-PDF documents are saved in PDF format while PDF files are saved in their current state; the scope records the documented encryption and permission write options and makes no claim about which readers honour the permission flags",
        "view": "rendering PDF pages for viewing with PyMuPDF, where the page-rendering and Pixmap documentation shows Page.get_pixmap() rendering a page to an image at a resolution that can be changed (96 dpi by default), with clip regions, annotation inclusion or suppression, and Pixmap scaling; the scope records page and clip rendering to Pixmaps and image files, and makes no claim to be an interactive PDF viewer, GUI application or hosted display service",
        "extract": "extracting content from documents with PyMuPDF, where the Text how-to documents Page.get_text() and its plain, blocks, words, dict and rawdict modes, extraction as Markdown, key-value extraction, table content extraction, rectangle and reading-order recipes, and the Images how-to documents embedded image extraction and non-PDF image handling; the documentation also notes that default text output is the text as coded in the document with no effort to prettify and that output may not be in usual reading order, which is why the scope records the extraction modes and marks, and makes no readability, accuracy or OCR claim (OCR is the separate job)",
        "convert": "converting supported document types such as Markdown and XPS to PDF, and rendering PDF pages to images and SVG",
        "merge": "merging documents with PyMuPDF, where the Document API documents Document.insert_pdf() for inserting pages from another PDF and Document.insert_file() for inserting pages from arbitrary documents, alongside page insertion, copying and deletion operations; the scope records joining and page-insertion from PDFs and other supported documents, and makes no claim about preserving signatures, forms, links or annotations across a merge",
        "edit": "editing PDF content with PyMuPDF, where the Annotations how-to documents adding new annotations with Page methods and modifying them with the Annot class, notes that annotations can only be inserted in PDF pages, and the Text and Images how-tos document inserting text and images, the Widget class documents form fields and the Document API documents metadata and page operations; the scope records annotations, inserted text and images, form fields and metadata, and does not claim reflow or rewriting of existing page body text, which the redaction route handles by removing content and the separate redaction capability covers",
        "ocr": "running OCR with PyMuPDF, where the OCR documentation says the integrated OCR support is based on Tesseract-OCR, which must be installed as a separate application, and documents OCR for images through Pixmap.pdfocr_save() and Pixmap.pdfocr_tobytes() and for document pages through Page.get_textpage_ocr(); the scope records the Tesseract-backed OCR path, notes that the external Tesseract installation and its language data are required, and makes no accuracy guarantee or bundled-language-count claim",
        "compress": "compressing PDFs with PyMuPDF, where the Compressing Files documentation describes Document.save() options for garbage collection levels 0 to 4 for unused and duplicate objects, deflate compression of streams including Flate and experimental Brotli, use_objstms for packing object definitions into compressed streams, and related image and font compression options, with worked examples showing different file-size outcomes on one control document; the scope records the save-time compression controls and makes no lossless or guaranteed size-reduction claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 134,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "pymupdf.readthedocs.io (home, about, annotations recipes); github.com/pymupdf/PyMuPDF README and COPYING; GitHub API metadata.",
      "profileUrl": "https://dialegein.com/products/pymupdf/"
    },
    {
      "slug": "pypdf",
      "name": "pypdf",
      "tagline": "Pure-Python library for splitting, merging, transforming and reading PDF documents.",
      "websiteUrl": "https://github.com/py-pdf/pypdf",
      "summary": "pypdf is a pure-Python PDF library under BSD-3-Clause, installed from a py3-none-any wheel with no compiled extension and no external binary. The current release is pypdf 6.21.1, published 17 October 2026; the package metadata requires Python >=3.9 and declares support for Python 3.9 through 3.15, with official Python 3.15 support added in the 6.20 line. It reads PDFs with PdfReader and writes them with PdfWriter: extracting the text layer with extract_text and layout/visitor modes, reading metadata, images and attachments, appending/merging/inserting/reordering/selecting pages, filling and flattening forms, adding annotations and stamps, rotating/cropping/transforming pages, updating metadata and outlines, and encrypting or decrypting PDFs. It is a library only: there is no first-party CLI, no HTTP service and no hosted pypdf product. The catalog has no convert job for pypdf because its output is PDF serialisation and transformation, not conversion to other document formats or rendering.",
      "bestFor": "Python projects that need to assemble, split or re-order PDFs as part of something larger, and teams who value a dependency with no native code in it. It also reads metadata and the text layer, with a documented layout-preserving mode when the order of the text matters.",
      "watchOutFor": "The current release is pypdf 6.21.1, published 17 October 2026; 6.21.0 was published the previous day and 6.21.1 is a security fix for opening /DCTDecode image data through the Pillow JPEG plugin. PyPI already serves 6.21.1, so there is no lag to reconcile. The package requires Python >=3.9, declares support for Python 3.9 through 3.15, and ships a py3-none-any wheel, so the supported-platform list is the Python runtime's, not an OS-specific binary claim. pypdf is a library only: it has no first-party CLI, no HTTP service and no hosted product. Text extraction reads the stored text layer and can be wrong for complex columns, tables and reading order; extract_text(extraction_mode=layout) and visitor functions help, but pypdf does not perform OCR, so scanned pages need an OCR tool. It cannot render pages, perform layout/table analysis, redact content, sign or validate signatures, or convert to other document formats; its writing path serialises and transforms PDFs. Filling forms and adding annotations/stamps, updating metadata/outlines and flattening forms are supported, but arbitrary body-text editing and general redaction are not. Encryption supports RC4-40, RC4-128, AES-128, AES-256-R5 and AES-256 up to PDF 2.0; AES requires an extra dependency such as pyca/cryptography, the default is RC4 for compatibility and is documented as insecure, and no permission, certificate-trust or legal-security guarantee is made. The catalog's actual jobs are extract, merge, edit and protect; there is no convert job, and no generic Office/PDF conversion, rendering, OCR, arbitrary text editing, redaction, signing or certificate trust is claimed.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "pypdf contributors",
      "platforms": [
        "self_hosted",
        "linux",
        "windows",
        "mac"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "merge",
        "edit",
        "protect"
      ],
      "jobScores": {
        "extract": 70,
        "merge": 80,
        "edit": 60,
        "protect": 55
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://pypdf.readthedocs.io/en/stable/",
        "readAt": "2026-09-22",
        "quote": "pypdf is a free and open-source pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files. It can also add custom data, viewing options, and passwords to PDF files. pypdf can retrieve text and metadata from PDFs as well.",
        "caveat": "Recorded as `none` on the absence of any redaction feature from the library's own documentation and feature index, not on a test. The quoted description is the whole of the documented surface - page assembly, metadata, passwords, text retrieval - and nothing in it removes content from a page. What it does not establish: that pypdf cannot be used to damage a document. It exposes the object model, so someone determined enough can delete a content stream, but that is rewriting a file rather than redacting one, and it is exactly the distinction this index exists to draw."
      },
      "processesLocally": true,
      "processesLocallyNote": "A library that runs in your own Python process. There is no service, no account and no network call in the package itself, so a document handled with pypdf never leaves the machine unless the calling code sends it somewhere.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A pure-Python library with no service component. It reads and writes files in the caller's own process, so there is no server in the path and nothing for a probe to observe."
      },
      "license": "BSD-3-Clause. The LICENSE file carries copyright 2006-2008 Mathieu Fenniak and contributions copyright Ashish Kulkarni, Steve Witham and other pypdf contributors, with the three BSD-3-Clause conditions including the no-endorsement clause. The package metadata declares BSD-3-Clause and Python >=3.9. The pyproject lists Mathieu Fenniak as author and stefan6419846 and Martin Thoma as maintainers; the project describes itself as a collaborative effort under the py-pdf organisation, not a company or a hosted service.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting content from PDFs with pypdf, where the documentation documents PdfReader and page.extract_text() for the text layer, extraction_mode=layout for a fixed-width layout-preserving mode, visitor_text/visitor_operand functions for controlling extraction, metadata access, image extraction, and attachment handling. The scope records text-layer, metadata, image and attachment extraction, notes that text extraction is not OCR or layout/table analysis and that scanned pages need an OCR tool, and makes no redaction or arbitrary text-editing claim",
        "merge": "merging and assembling PDFs with pypdf, where the documentation documents PdfWriter.append() and merge() for whole or partial documents, add_page/insert_page for explicit page insertion, list-based page selection and repeated insertion, form-field grouping when merging forms, and writing the assembled result to a new PDF. The scope records page append, merge, insertion, reordering and selection/assembly, and makes no claim to edit page content, render pages, preserve signatures or merge encrypted documents without decryption",
        "edit": "writing and transforming PDFs with pypdf, where the documentation documents rotating and cropping pages, transforming page contents, adding and reading annotations, adding stamps and watermarks, filling and flattening form fields, updating metadata and outlines, adding JavaScript and viewer preferences, and serialising the result with PdfWriter.write(). The scope records page transformation, form filling/flattening, annotation/stamp addition, metadata/outline updates and PDF serialisation, notes that cropping hides content rather than removing it, and makes no arbitrary body-text editing, general redaction, rendering, OCR, signing or certificate-trust claim",
        "protect": "encrypting and decrypting PDFs with pypdf, where the documentation documents PdfWriter.encrypt() with RC4-40, RC4-128, AES-128, AES-256-R5 and AES-256 algorithms up to PDF 2.0, PdfReader.decrypt() for encrypted files, is_encrypted checks, the extra pyca/cryptography or pycryptodome dependency for AES, and the vendor warning that RC4 is the default for compatibility and is insecure while AES-256-R5 is recommended. The scope records password-based PDF encryption and decryption and the documented algorithm choices, and makes no reader-enforcement, permission, certificate-trust, unbreakable-encryption or legal-security guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 477,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "The project repository and pypdf.readthedocs.io, read 2026-09-22 with headless Chrome; the licence text from the repository's own LICENSE file. Project documentation, not independently tested; the library was not installed for this record.",
      "profileUrl": "https://dialegein.com/products/pypdf/"
    },
    {
      "slug": "qoppa-java-pdf-sdk",
      "name": "Qoppa Java PDF SDK",
      "tagline": "Java PDF library suite that is no longer sold: its functionality moved to Apryse Java PDF.",
      "websiteUrl": "https://www.qoppa.com/pdfsolutions/java-pdf-sdk/",
      "summary": "A suite of Java libraries that between them covered most of what a Java application might need to do with a PDF: assemble and split, read and write form fields, convert to and from images, optimise, preflight against PDF/A and PDF/X, print, sign and encrypt, extract text, convert to SVG and HTML5, and generate PDFs. There were also three Swing components for embedding a viewer, an annotator and an editor. It is recorded here because it is still widely referenced and still installable, and because the vendor has stopped selling it: new licences are no longer issued and the functionality has moved to Apryse's Java PDF product.",
      "bestFor": "Nothing, for a new project - the vendor has withdrawn it and points buyers at Apryse instead. The record exists so that a reader who finds Qoppa's Java libraries in a search result, in a vendor comparison or in an old dependency learns three things in one page: that it existed, what it did, and that it is no longer sold.",
      "watchOutFor": "No new licences are sold, so it cannot be bought for a new project, and the vendor’s own advice is to use Apryse’s Java PDF library instead. That is a sales fact rather than a support fact, and the two are separate questions. Whether patches, security fixes and compatibility updates continue for existing licensees is not established by the notice we read: existing licence rights, the support window and technical compatibility are three different things, and an existing deployment is not automatically unaffected by the change either. What can be said is narrower than either: the suite is unsold, and code already built on it may run for years. The free jPDFWriter library is a separate exception within the family and is still offered, so a family-wide free-tier badge would be wrong: the commercial libraries are closed and that one is not.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Apryse",
      "platforms": [
        "self_hosted",
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "merge",
        "convert",
        "protect",
        "extract",
        "sign",
        "compress"
      ],
      "jobScores": {
        "edit": 70,
        "merge": 75,
        "convert": 70,
        "protect": 70,
        "extract": 65,
        "sign": null,
        "compress": null
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.qoppa.com/pdfsolutions/java-pdf-sdk/",
        "readAt": "2026-09-22",
        "quote": "jPDFEditor - Additionally redact and edit content in PDF documents",
        "caveat": "Recorded as `unverified` for the same reason as two other records in this batch: redaction appears as a word in a component list, naming one of the three Swing viewers, and no page read says whether content is removed from the page or covered. The site also lists \"Redact PDF Documents\" among its solutions, which confirms the feature exists somewhere in the line without establishing the mechanism. THE VERDICT MATTERS LESS THAN USUAL HERE because the product cannot be bought: anybody reading this record is either maintaining an existing licence or looking for a replacement, and the replacement is Apryse's Java library, whose own redaction basis is a separate question. What would settle it: the jPDFEditor documentation, or a canary test on an existing installation."
      },
      "processesLocally": true,
      "processesLocallyNote": "Java libraries embedded in your own application, running on your own JVM. Qoppa operates no processing service in that path. The suite is unsold rather than withdrawn from service, so an existing deployment is unaffected by the change.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Java libraries embedded in your own application and running on your own JVM. Qoppa operates no processing service. The suite is unsold rather than switched off, so an existing deployment is unaffected."
      },
      "license": "Commercial per-library licences, no longer sold to new customers; jPDFWriter is a free library",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF content with the Qoppa Java PDF libraries, where the jPDFEditor library page states that its content editing tool lets users copy, delete, edit and move text, copy, delete, move and resize images, and copy, delete, edit, move and resize shapes and paths, working with single or multiple text, image or path objects, and that its redaction feature permanently removes sensitive information; the jPDFEditor feature list also covers display, print, filling and saving interactive forms, annotations and text markup, digital signing, text search and selection, and optional OCR and comparison modules, while the Redact solution page says jPDFProcess can permanently redact content through its API based on the caller's rules; the libraries are 100 percent Java components that run on Windows, Mac, Linux and Unix without third-party programs; the scope is the documented content editing and redaction inside these libraries, with the OCR and comparison modules named as separate optional modules rather than included, and no hosted processing claimed",
        "merge": "assembling, merging and splitting PDF documents with the Qoppa Java PDF libraries, where the Assemble, Merge, Split solution page attributes assembling and disassembling PDF documents, including splitting, merging and combining, to the jPDFAssemble Java library, and says the flexible API allows merging and splitting documents based on the caller's own rules and information found in the documents; the same page lists manipulating PDF bookmarks and outlines as part of the library's remit; no page-size, file-count, encryption or signature-preservation figure is stated on the pages read, and no hosted processing is claimed",
        "convert": "converting PDF documents to and from other formats with the Qoppa Java PDF libraries, where the jPDFImages library page says it exports PDF pages as JPEG, TIFF or PNG images, imports images into new or existing PDFs as new pages, supports PDF 2.0 and saves to the file system or Java output streams; the jPDFWeb library page says it converts PDF documents to HTML5 and SVG, converting Word and Excel documents to HTML5 when combined with jOfficeConvert, preserving fonts and image resolution, converting colour images to JPEG and black-and-white or transparent images to PNG, and preserving vector graphics, annotations, links and form field data, digital signature validation status and page thumbnails; the Convert PDF to Images solution page attributes PDF-to-image and image-to-PDF conversion to jPDFImages, and the Convert PDF to HTML solution page points at the same libraries; the pages read give no conversion-fidelity guarantee, and no hosted processing is claimed",
        "protect": "protecting PDF documents with the Qoppa Java PDF libraries, where the jPDFSecure library page says the library can encrypt PDF documents, set permissions and passwords and create and apply digital signatures, and the Redact solution page says jPDFEditor adds and applies redaction annotations while jPDFProcess permanently redacts content by rules, with search-and-redact shown for the separate PDF Automation Server product; the jPDFEditor feature list names redaction as a feature that permanently removes sensitive information; the documented protection is therefore encryption with permissions and passwords plus permanent redaction, signing is the separate sign job, and no encryption algorithm, key length or certification level is claimed on the pages read, with no hosted processing claimed",
        "extract": "extracting data and text from PDF documents with the Qoppa Java PDF libraries, where the Fill PDF Forms and Extract Data solution page attributes setting and getting PDF form fields, importing and exporting field data in FDF, XFDF, XDP and XML formats, and flattening fields to the jPDFFields Java library, and the jPDFText library page says the library extracts text from PDF documents for archiving, storage, searching or indexing; the pages read document form field data and text extraction, and no OCR is claimed here because OCR is described on its own page as a separate capability, with no hosted processing claimed",
        "sign": "digitally signing PDF documents with the Qoppa Java PDF libraries, where the Sign PDF Documents solution page attributes digital signing and encryption to the jPDFSecure Java library and displaying and signing PDF documents to the jPDFNotes Java component, and the jPDFSecure library page says the library can create and apply digital signatures as well as encrypt documents, set permissions and passwords; the page lists distinct desktop and server products for creating signature fields and self-signed certificates, so those are not claimed for the libraries, and no signature algorithm, certificate-authority service or timestamping claim is made, with no hosted processing claimed",
        "compress": "reducing the size of PDF documents with the Qoppa Java PDF libraries, where the Optimize PDF Documents solution page attributes optimization to the jPDFOptimizer Java library and says its flexible settings support changing image compression quality, removing unused objects, merging duplicate objects and linearizing; the same page describes the library's use with a batch of PDFs and saving PDFs for fast web viewing, and the Preflight solution page is a separate capability not claimed in this job; no size-reduction percentage, image-quality threshold or lossless guarantee is stated on the pages read, and no hosted processing claimed"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 786,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "qoppa.com: the Java PDF SDK page, read 2026-09-22 with headless Chrome, including the vendor's discontinuation notice at the top of the page. Vendor documentation, not independently tested; no library was obtained.",
      "profileUrl": "https://dialegein.com/products/qoppa-java-pdf-sdk/"
    },
    {
      "slug": "qpdf",
      "name": "qpdf",
      "tagline": "Apache-2.0 C++ library and command-line tool for structural PDF transformations.",
      "websiteUrl": "https://qpdf.readthedocs.io/en/stable/",
      "summary": "qpdf is an Apache-2.0 C++ library and command-line program for structural, content-preserving PDF transformations. The current stable release is qpdf 12.4.2, published 27 September 2026. It selects, merges, splits, collates and arranges pages; adds, removes, copies or changes password encryption; linearises files for progressive viewing; recompresses streams and images; generates or disables object streams; and repairs damaged files by rebuilding cross-reference data. It also exposes the PDF object structure through its own unambiguous JSON representation, with command-line and C/C++ API paths to inspect a PDF as JSON, modify the structure at object level and convert the result back to PDF. It has C++ and C library interfaces and a QPDFJob job-based interface. It is not a content editor, renderer, text extractor, OCR engine, redaction tool or signer, and it does not convert PDFs to other document formats. The official release assets include macOS Intel and Apple Silicon, Linux x86_64 and aarch64, Windows x86-32/64 and ARM64 builds, plus source and documentation.",
      "bestFor": "Developers and system administrators who want scriptable, dependency-light PDF surgery from a terminal or from their own code.",
      "watchOutFor": "The current stable release is qpdf 12.4.2, published 27 September 2026; the official assets include macOS Intel and Apple Silicon, Linux x86_64 and aarch64, Windows 32-bit/64-bit and ARM64 binaries, plus source and documentation. qpdf 12.3 and later require C++20 to build, but that is a build requirement rather than a runtime platform claim. qpdf is a structural tool, not a content editor: it knows the object structure rather than page-content semantics, so it cannot edit text or page content, render pages, extract text, perform OCR or redaction, sign documents, or convert PDFs to other formats. Its JSON representation is a separate structural interface for inspecting and modifying objects, not a document-content or text-extraction format. Encryption supports the PDF standard security handler with user and owner passwords, 40-bit and 128-bit RC4, AES-128 and AES-256 options depending on the encryption revision, and permission flags. The vendor documentation is explicit that PDF permission restrictions are enforced only by the software that opens the file and can be ignored by a modified reader; 40-bit and default 128-bit RC4 encryption are documented as insecure, and AES is recommended. Password protection is distinct from encryption, and qpdf does not distinguish which password opens a file. The --remove-restrictions option invalidates and disables digital signatures while leaving visual appearances intact; it is not a signing or signature-validation feature. Compression and linearisation do not carry a lossless, size-reduction or percentage guarantee, and image optimisation with JPEG recompression can introduce additional loss. There is no hosted service, no vendor endpoint and no pricing model: qpdf is a local CLI/library under Apache-2.0.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Jay Berkenbilt and Manfred Holger",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "merge",
      "jobs": [
        "merge",
        "compress",
        "protect"
      ],
      "jobScores": {
        "merge": 85,
        "compress": 85,
        "protect": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://qpdf.readthedocs.io/en/stable/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Inherent to what it is: a locally installed command-line tool and library that operates on local files. There is no account system and no vendor service anywhere in the documentation.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Command-line tool and library. It reads and writes local files; there is no service involved."
      },
      "license": "Apache-2.0. qpdf is copyright 2005-2021 Jay Berkenbilt and 2022-2026 Jay Berkenbilt and Manfred Holger, licensed under the Apache License, Version 2.0. The current stable release is qpdf 12.4.2, published 27 September 2026. qpdf is an upstream C++ library and command-line tool; pikepdf is a separate Python binding to qpdf and is not part of this record. No price, SaaS subscription or commercial licence is published; the Apache-2.0 licence is the terms.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "merge": "merging, splitting and selecting pages with qpdf, where the command-line documentation documents --pages for selecting page ranges from one or more input files, --collate for collating rather than concatenating selected pages, --split-pages for writing each page or group of pages to separate output files, and page-selection support for operations such as splitting, merging and collating; the scope records the documented page selection, concatenation, collation and split operations and makes no claim about editing page content or preserving signatures, forms, links or annotations beyond qpdf's structural handling",
        "compress": "compressing and structurally transforming PDFs with qpdf, where the command-line documentation documents --compress-streams for flate compression, --decode-level and --recompress-flate for stream decoding and recompression, --object-streams=generate/disable for object streams, --optimize-images and --jpeg-quality for image recompression, --linearize for progressive viewing, and the JSON documentation documents --json/--json-output and --json-input/--update-from-json for inspecting and modifying the PDF object structure and converting it back to PDF. The scope records the documented compression, linearisation, object-stream, image-optimisation and JSON structural operations, notes that JPEG recompression can introduce additional image loss, and makes no lossless, size-reduction or percentage guarantee and no claim to edit page content or convert to other document formats",
        "protect": "protecting PDFs with qpdf, where the command-line and encryption documentation document --encrypt with user and owner passwords, permission flags for printing, modification, extraction, annotations and form filling, 40-bit and 128-bit RC4 and AES-128/AES-256 encryption options depending on the encryption revision, --decrypt, --copy-encryption and --remove-restrictions; the documentation is explicit that permission restrictions are enforced only by the software that opens the file and can be ignored by a modified reader, that 40-bit and default 128-bit RC4 encryption are insecure, and that qpdf does not distinguish which password opens a file. The scope records the documented password, encryption, permission and decryption controls and makes no universal reader-enforcement, unbreakable-encryption, signing, certificate-trust or legal-security guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 94,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "qpdf.readthedocs.io (overview, license, download, installation, CLI pages). Licence confirmed on the official licence page.",
      "profileUrl": "https://dialegein.com/products/qpdf/"
    },
    {
      "slug": "reducto",
      "name": "Reducto",
      "tagline": "Hosted document parsing and extraction API, priced per page, for AI pipelines.",
      "websiteUrl": "https://reducto.ai/",
      "summary": "Reducto is a hosted document-processing API for AI pipelines: parsing PDFs, images and other document types into structured output with layout/table/formatting information and bounding-box citations, schema-level field extraction, splitting/classification and form/DOCX editing. Its r-1 model is currently in preview and combines OCR with vision-language models in a multi-pass system; the current API docs list 30+ file types including PDFs, images, spreadsheets, presentations and scanned documents, and SDKs for Python, Node.js, Go and REST. Standard is pay-as-you-go with $150 of free usage credit (not a permanent free tier); current endpoint rates include $10 per 1,000 pages for r-1 Parse and $20 for Extract, with custom Growth/Enterprise pricing. The vendor documents SOC 2 Type II, HIPAA BAA availability, 24-hour zero-data-retention and EU/AU endpoints/on-prem options as plan-specific offerings. Reducto parses and extracts data; it is not a general PDF editor, searchable-PDF creator, redaction/signing service or accessibility validator, and no output is a replacement for human review of regulated content.",
      "bestFor": "Engineering teams building document-heavy pipelines in finance, healthcare or legal who need parsing, splitting and extraction through one API rather than assembling several models, and who care about bounding-box citations for verifying what was extracted and from where.",
      "watchOutFor": "It is per-page pricing, and that is a different shape of cost from a subscription: the current published r-1 Parse rate is $10 per 1,000 pages, with Extract at $20, Deep Extract/Split at higher rates and Edit at $60 or $15 for pre-filled pages. Standard includes $150 of free usage but no permanent free tier; Growth and Enterprise are custom-priced. The r-1 model is explicitly in preview, so behaviour may change under an evaluation. SOC 2 Type II, HIPAA BAA, zero-data-retention and EU/AU residency are vendor/plan-specific statements rather than guarantees for every account; the Standard path is vendor-hosted, while VPC/on-premises is an Enterprise option. Documents are uploaded unless deployed in your environment. The API returns structured data/citations, not a searchable PDF, general PDF edit, redaction, signature or accessibility validation; extraction quality, handwriting/multilingual coverage and compliance suitability require testing on your documents. Reducto is the hosted API, not a similarly named local tool.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 10,
        "currency": "USD",
        "per": "1000_pages",
        "asShown": "\"Standard rates start at $10 per 1,000 pages for r-1 Parse and $20 per 1,000 pages for Extract\" - endpoint table: r-1 Parse $10",
        "source": "https://reducto.ai/pricing",
        "readAt": "2026-09-22"
      },
      "hasFreeTier": false,
      "owner": "Reducto, Inc.",
      "platforms": [
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr"
      ],
      "jobScores": {
        "extract": 85,
        "ocr": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://reducto.ai/",
        "readAt": "2026-09-22",
        "quote": "Reducto parse r-1 reads documents like a human would-capturing complex layouts, tables, and formatting with high accuracy and bounding-box citations.",
        "caveat": "Recorded as `none` on absence: Reducto reads, parses, splits and extracts from documents, and nothing on the page describes removing content from a file. The vendored \"Edit\" product fills fields in rather than deleting them. What it does not establish: that the extracted output is safe. This is the sharpest version of a point that applies to every extraction tool in this index - a service whose purpose is to capture everything faithfully produces exactly the artefact that must never be published from a document that was supposed to have been redacted."
      },
      "processesLocally": false,
      "processesLocallyNote": "Hosted by default: documents are uploaded to Reducto's APIs. Enterprise also offers VPC and on-premises deployment, which changes processing location; the documented default path is vendor-hosted. Plan-specific terms include EU/AU endpoints, zero-data-retention and BAA on Growth/Enterprise; do not generalize those to every account. Data residency remains unknown at product level.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Enterprise VPC/on-premises deployment. On their servers: Hosted API. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Commercial hosted API from Reducto, Inc. Standard is pay-as-you-go with $150 of free usage credit, not a permanent free tier; published Standard endpoint rates include $10 per 1,000 pages for r-1 Parse, $20 for Extract, $20 for Split, $7.50 for Classify and $60/$15 for Edit. Growth and Enterprise are custom-priced; Growth adds EU/AU endpoints, zero-data-retention and BAA terms; Enterprise adds VPC/on-premises deployment. No price is asserted for the whole product, and no open-source licence is offered.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "http"
      ],
      "dataResidency": "unknown",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "api",
          "name": "Hosted API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Enterprise VPC/on-premises deployment",
          "processing": "customer_server",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "http"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting structured data from documents through Reducto's hosted API: parsing PDFs/images and other supported file types into layout-aware structured output with bounding-box citations, then using schema-level Extract to return requested fields (for example invoice or form fields) and Split/Classify to divide or label document units. The scope records the documented parse/extract/split/classify outputs and citations, and explicitly excludes general PDF editing, searchable-PDF creation, redaction, signing, accessibility validation, OCR-only text dumps and any guarantee that extracted values are complete or correct without human review",
        "ocr": "OCR as used inside Reducto's document parsing pipeline: the r-1/multi-pass system combines OCR with vision-language models to read scanned/image-based documents, with the current API documentation listing multilingual OCR, automatic page rotation, tables/forms/layout and bounding-box citations among its capabilities. The scope records OCR as a component of parse/extract output, not a standalone OCR API or searchable-PDF converter; it does not claim handwriting accuracy, a complete language list, raw text extraction as the primary product, PDF editing, redaction, signing or accessibility validation, and r-1 remains in preview"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 89,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://reducto.ai/ (r-1 preview, OCR+VLM, parse/extract/split/classify/edit, bbox citations, SOC2/HIPAA, deploy in environment; read 2026-10-16); https://reducto.ai/pricing (Standard $150 free usage; $10/1k r-1 Parse, $20 Extract/Split, $7.50 Classify, $60/$15 Edit; Growth EU/AU/ZDR/BAA; Enterprise VPC/on-prem; read 2026-10-16); https://docs.reducto.ai/ (API/SDKs, 30+ file types including PDFs/images/scanned documents, parse/extract outputs and deployment options; read 2026-10-16); Reducto documentation security/on-prem sections (SOC 2 Type II, HIPAA BAA, ZDR, EU residency, on-prem/hybrid; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/reducto/"
    },
    {
      "slug": "reportlab",
      "name": "ReportLab",
      "tagline": "Python library for generating PDFs from code, from a low-level drawing canvas up to a page-layout engine, under a BSD licence.",
      "websiteUrl": "https://www.reportlab.com/",
      "summary": "ReportLab is a long-established Python toolkit for building PDFs programmatically. The current open-source release is 5.0.1 (20 August 2026), requires Python >=3.9 and <4, is BSD-licensed and ships a py3-none-any wheel; optional extras cover accel, pycairo, bidi and shaping, while the base install brings Pillow and charset-normalizer. It offers a low-level drawing canvas for exact text/vector/image placement and a higher-level flowable framework for paragraphs, tables and charts across pages, with font/image/barcode/chart/form-field support, outlines and internal links. The open-source toolkit can apply StandardEncryption with user/owner passwords and print/modify/copy/annotate permissions to PDFs it generates, and can merge documents it builds; it is a generator, not an editor of arbitrary existing PDFs. ReportLab PLUS is a separate commercial package (`rlextra`) that adds RML templating, PageCatcher page reuse, Diagra and, in PLUS 4+, PDF auto-tagging/tagged output. The open-source package alone does not provide the PLUS auto-tagging workflow, an accessibility validator or semantic remediation.",
      "bestFor": "Python teams that need to generate reports, invoices, statements or labels at volume and want a permissively licensed, in-process toolkit they can vendor into closed-source software; teams needing RML templating, PageCatcher or PLUS auto-tagging should evaluate the separate commercial package.",
      "watchOutFor": "The free BSD toolkit and the commercial ReportLab PLUS are different products with different licences: the `reportlab` package is free/BSD, while `rlextra` PLUS is proprietary and priced by pages of PDF output per month. PLUS pricing, including the current GBP 1,728/year entry for up to 30,000 pages/month (double for financial services, with support/card terms), is not a price for the open-source package and is not put in priceFromGbp. The toolkit can encrypt PDFs it generates via StandardEncryption, with user/owner passwords and print/modify/copy/annotate permission flags, but this protects newly generated files and does not redact content, remove existing sensitive data, or add protection to an arbitrary pre-existing PDF. Accessibility auto-tagging/tagged output is documented for commercial PLUS 4+ (`tagged=1`/RML), not for the BSD package alone; PLUS auto-tagging and a passing accessibility check are not equivalent to semantic/legal accessibility remediation, and no validator is claimed. The open-source toolkit can generate ordinary PDFs but does not validate accessibility. A nag line and restricted functionality apply to unpaid evaluation/licence-file states, not as a universal free-tier watermark; the terms say ReportLab may change this restriction. The packages run in-process with a library interface only: there is no hosted API or CLI edition, and ReportLab's separately sold hosted solutions are not this record. The corporate/legal owner is left null because current ReportLab pages conflict between ReportLab Inc. and ReportLab Europe Ltd.; no entity is invented.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2000,
      "primaryJob": "convert",
      "jobs": [
        "convert",
        "merge",
        "protect",
        "accessibility"
      ],
      "jobScores": {
        "convert": 90,
        "merge": 85,
        "protect": 65,
        "accessibility": 30
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.reportlab.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Both the BSD `reportlab` package and commercial `rlextra` PLUS run in-process in the caller's Python process and write PDFs locally; ReportLab does not receive the documents in that path. An evaluation build/licence file can add a nag line or restricted functionality, which is a licensing artefact, not a data transfer. ReportLab separately sells hosted solutions, which are not this in-process library and are not represented as an edition here.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Python library that writes PDFs inside the calling process. The open-source toolkit makes no network calls at all; the separate proprietary PLUS product is a different thing and is not what this record describes."
      },
      "license": "Split by product. The open-source ReportLab PDF Toolkit (the `reportlab` package on PyPI) is BSD-licensed; version 5.0.1 requires Python >=3.9 and <4 and publishes a py3-none-any wheel. It is free to use and redistribute subject to the BSD notice/disclaimer/no-endorsement terms. ReportLab PLUS (the separate commercial `rlextra` package) is proprietary, sold under ReportLab's standard terms as an annual or perpetual licence priced by pages of PDF output per month; the current GBP 1,728/year entry for up to 30,000 pages/month is PLUS pricing, not a price for the open-source package, and remains in internal notes only. PLUS is also where RML templating, PageCatcher and auto-tagging live.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": "ReportLab review - Python PDF generation library",
      "originalPricing": null,
      "editions": [
        {
          "id": "toolkit",
          "name": "The open-source ReportLab PDF Toolkit",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": [
            {
              "name": "ReportLab PDF Toolkit",
              "licence": "BSD",
              "version": "5.0.1",
              "note": "Open-source `reportlab` package on PyPI; no price."
            }
          ]
        },
        {
          "id": "plus",
          "name": "ReportLab PLUS and PageCatcher",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": [
            {
              "name": "ReportLab PLUS",
              "licence": "Proprietary, ReportLab standard licence terms",
              "version": null,
              "note": "Annual or perpetual; priced by pages of PDF output per month; GBP 1,728/year for up to 30,000 pages/month at current published pricing, not a library price."
            }
          ]
        }
      ],
      "jobScopes": {
        "convert": "PDF generation from code; not a Word, Excel or image converter",
        "merge": "assembles the documents the toolkit builds; importing pages from an existing PDF is PageCatcher, in PLUS",
        "protect": "protecting PDFs generated with the open-source ReportLab toolkit, where the PDF features documentation documents canvas encryption and reportlab.lib.pdfencrypt.StandardEncryption with user and owner passwords and the canPrint/canModify/canCopy/canAnnotate permission flags for the generated document. The scope records generated-PDF encryption, password and permission controls, makes clear that it does not redact or remove content, does not protect an arbitrary pre-existing PDF, and is not a general security or DRM guarantee; no claim is made for ReportLab PLUS-only features",
        "accessibility": "improving the accessibility of PDFs generated with ReportLab, where the open-source toolkit can generate ordinary PDFs and the current accessibility documentation places PDF auto-tagging/tagged output (tagged=1 and RML tagging controls) in commercial ReportLab PLUS 4+, together with guidance on titles, language, bookmarks, form labels and page numbering. The scope records the BSD-toolkit/PLUS-4 split, notes that PLUS auto-tagging and a passing accessibility check are not equivalent to semantic or legal accessibility remediation, and makes no validator, remediation-tool or universal-compliance claim for the open-source package"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 874,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://pypi.org/project/reportlab/ (5.0.1, 20 Aug 2026, Python >=3.9,<4, BSD, py3-none-any, extras accel/pycairo/bidi/shaping); https://docs.reportlab.com/reportlab/userguide/ch1_intro/ (toolkit/PLUS split); https://docs.reportlab.com/reportlab/userguide/ch4_pdffeatures/ (StandardEncryption/passwords/permissions for generated PDFs); https://docs.reportlab.com/pdf-accessibility/ (PLUS 4 auto-tagging/tagged=1; no validator); https://www.reportlab.com/pricing/ (PLUS GBP 1,728/year up to 30,000 pages/month, financial double; valid/reviewed 1 October); https://www.reportlab.com/about/licence-terms/ (evaluation nag line/licence file, 25 Sep 2026); https://www.reportlab.com/software/downloads/; read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/reportlab/"
    },
    {
      "slug": "robobraille",
      "name": "RoboBraille",
      "tagline": "Free email and web service that converts documents into accessible formats: Braille, audio, e-books and tagged PDF.",
      "websiteUrl": "https://www.robobraille.org/",
      "summary": "RoboBraille is a hosted email/web-form conversion service for accessible formats. It offers Braille transcription (contracted and uncontracted) in 18 languages, MP3/DAISY talking books with voices in many languages, EPUB/Mobi Pocket/Kindle e-books including EPUB3 with media overlays, and accessibility conversion of images/PDFs/Office documents into tagged PDF, DOC/DOCX, Word XML, XLS/XLSX, CSV, TXT, RTF and HTML. It is free for individual, non-commercial users not affiliated with an institution obligated to provide support, needs no registration, and is hosted in Sensus's own data centre in Denmark. Institutional use requires a subscription/service agreement. Conversion is automated; source documents are deleted after processing and target documents are kept for up to seven days. It is a conversion service, not an editor, validator or legal-accessibility certification.",
      "bestFor": "Individual users who need their own material in Braille, audio or a reflowable format and have nobody to ask, and universities and libraries that want a self-service conversion service for their users without building one.",
      "watchOutFor": "It is a hosted service: source documents are uploaded to the RoboBraille reception server, processed automatically and returned, then the source is deleted; target documents remain on delivery servers for up to seven days. It is free only for individual, non-commercial users not affiliated with an institution obligated to provide support; institutional and organised-instruction use requires a paid service agreement with Sensus, and no public price is published. The output is produced by conversion and OCR, so it is aimed at getting usable text/alternate formats out of an inaccessible document, not at repairing tag structure in an already-tagged PDF. Braille/audio quality is bounded by the source and OCR. No API is documented; submission is by email/web form. It is not a general PDF editor, redaction, signing or accessibility-certification service, and no legal/compliance guarantee is made. It is RoboBraille, not SensusAccess (a related institutional service) or a generic file converter.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Sensus ApS",
      "platforms": [
        "web"
      ],
      "launchedYear": 2004,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "convert"
      ],
      "jobScores": {
        "accessibility": 80,
        "convert": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.robobraille.org/introduction-robobraille/",
        "readAt": "2026-09-22",
        "quote": "RoboBraille is an e-mail and web-based service capable of automatically transforming documents into a variety of alternate formats for the visually and reading impaired.",
        "caveat": "Recorded as `none` on absence: the service converts documents into other formats - Braille, audio, e-books, tagged PDF, Office formats, text - and nothing in its documentation describes removing content from a document. It transforms rather than edits. What it does not establish: what the converted output contains. A tagged PDF built from an untagged source is a new document, and neither the service nor this index makes any claim about hidden data carried across in the conversion; a reader treating it as a redaction step would be using it for something it does not describe."
      },
      "processesLocally": false,
      "processesLocallyNote": "A hosted email/web-form service: source documents are received on the RoboBraille reception server, processed automatically by agents, and returned by email; the source is subsequently deleted. Target documents stay on delivery servers for up to seven days and are then deleted. The service is hosted in Sensus's own data centre in Denmark. Files leave the device; this is not local processing.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A hosted service reached by email and web forms, and the notice for it is worded like SensusAccess's because the same company operates both: documents arrive on the RoboBraille reception server, are handled automatically, and the servers are in Sensus's own data centre in Denmark. Same conclusion - permission before a probe."
      },
      "license": "Free of charge for individual, non-commercial users not affiliated with an institution obligated to provide support; no registration required. Institutional use (academic institutions, organisations, associations and similar) requires a service agreement/subscription with Sensus. No public price is published. The service is operated by Sensus ApS with RoboBraille Outreach, a non-profit association; no source licence or self-hosted edition is offered.",
      "openSource": false,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "eu",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "makes another format, does not repair tags",
        "convert": "converting documents into accessible/alternate formats with RoboBraille: Braille transcription (contracted/uncontracted) in its documented 18 language codes and emboss-ready digital Braille formats; MP3 and DAISY talking books, including spoken math; EPUB, Mobi Pocket/Kindle and EPUB3 with media overlays; and accessibility conversion of image files, image-only or other PDFs and Microsoft Office documents into tagged PDF, DOC/DOCX, Word XML, XLS/XLSX, CSV, TXT, RTF, HTML or PowerPoint-to-RTF/web-project outputs. The scope records conversion/OCR-based alternate-format production through the hosted email/web service, and explicitly excludes general PDF editing, extraction APIs, redaction, signing, accessibility certification, guaranteed OCR/Braille/audio accuracy and arbitrary format conversion"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1440,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://www.robobraille.org/introduction-robobraille/ (free individual/non-commercial use, no registration, institutional subscription, four service categories, 18 Braille languages, MP3/DAISY, EPUB/Mobi/Kindle/EPUB3, accessible formats; read 2026-10-16); https://www.robobraille.org/privacy-terms/ (reception server, source deletion, target retention up to seven days, Denmark data centre, personal/non-commercial terms, institutional agreement; read 2026-10-16); https://www.robobraille.org/ (email/web service; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/robobraille/"
    },
    {
      "slug": "scanbot-sdk",
      "name": "Scanbot SDK",
      "tagline": "Commercial on-device SDK for mobile scanning, barcodes and data capture.",
      "websiteUrl": "https://scanbot.io/",
      "summary": "A developer kit that app makers embed to add document scanning, barcode scanning and structured data extraction to their own iOS, Android or web apps. The document scanner handles automatic capture, cropping, perspective correction, filters, quality scoring and JPG, PDF or TIFF export, while the data capture modules add OCR, machine-readable travel documents, VIN, credit card, cheque and German medical-certificate extraction. Processing runs in the integrator's own app, browser, Windows Server or Linux deployment, with the vendor documenting that the SDK works completely offline and contains no networking code, and it is licensed per app or web domain for a fixed annual fee.",
      "bestFor": "Product teams building scanning or data capture into their own mobile or web app who need a licensed, offline, on-device component rather than an end-user app.",
      "watchOutFor": "No published price list - the site routes to sales, and cost depends on the number of apps or domains and which feature set you license. It is a component, not an application: no viewer, editor or redaction module of its own, and PDF editing and signing are pointed at the wider Apryse SDK family. Deployment is not one thing here: mobile, web, Linux and Windows Server editions have their own capabilities and their own licensing, and the per-app or per-domain fees describe the licences they were quoted for rather than extending to a server edition. Not every scanning module is OCR, so the module in use determines whether OCR applies at all.",
      "pricingModel": "paid",
      "priceFromGbp": 1854.25,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Apryse",
      "platforms": [
        "android",
        "ios",
        "web",
        "windows",
        "linux"
      ],
      "launchedYear": 2011,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "convert",
        "extract"
      ],
      "jobScores": {
        "ocr": 88,
        "convert": null,
        "extract": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://scanbot.io/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an SDK, so the scanning and recognition run inside the application that embeds it, on the device or on a server depending on the edition. The vendor announced Linux Barcode and Document Scanner SDKs in January 2026 alongside the mobile and web editions, so a customer-controlled server deployment is a documented option rather than a hypothetical. That is not the same as a ready-made hosted app, and it is not a statement that every result stays on an end user’s device: the current vendor material describes configurable routing to server workflows, so the destinations follow from the configuration.",
      "locality": {
        "verdict": "self_hosted",
        "label": "your own instance",
        "detail": "This runs on a server you operate rather than on your own device: Windows Server, Linux. Documents do not reach a server the vendor runs, and they do not stay in your browser either."
      },
      "license": "commercial, annual per-app or per-domain licence",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows Server",
          "processing": "customer_server",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "customer_server",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "running optical character recognition with the Scanbot SDK, where the vendor's documentation for the OCR module of the Data Capture Modules, version 10.0.0 on Android, iOS, web, Linux and Windows Server, says the OCR engine turns written text into machine-readable data from still images and a live camera stream and is the backbone of the Data Capture Modules; the results are recognised text as plain text, bounding boxes of recognised paragraphs, lines and words, and text and confidence values for each box; Android exposes OcrEngineManager with the Scanbot OCR engine and an optional Tesseract engine enabled through EngineMode.TESSERACT and the optional io.scanbot:sdk-ocr-tesseract dependency, with Tesseract language data supplied as .traineddata files plus osd.traineddata and no language files bundled in the SDK; iOS offers a legacy Tesseract-based engine for non-Latin languages such as Arabic, Japanese, Chinese, Russian, Greek and Korean and a machine-learning engine that is faster and more accurate but supports only Latin-script languages and needs no language training data, with an optional OCR data bundle containing English and German examples; the web module returns the same text, bounding-box and confidence results for images and live camera frames; the built-in PDF generator can be combined with the OCR module to create searchable PDF files from a Document object or from image files using PdfConfiguration defaults; the pages give no accuracy figures or supported-language counts beyond naming the engines and their language families, and no hosted OCR is claimed, with the vendor's own documentation stating that the SDK works completely offline and contains no networking code",
        "convert": "scanning to PDF",
        "extract": "structured data"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 703,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "scanbot.io (home, document scanner SDK, data capture, contact sales, imprint); docs.scanbot.io (FAQ, pricing and licensing model, trial, Android document scanner and data capture introductions); Apryse acquisition announcement and Apryse privacy page.",
      "profileUrl": "https://dialegein.com/products/scanbot-sdk/"
    },
    {
      "slug": "scanner-pro",
      "name": "Scanner Pro",
      "tagline": "iPhone and iPad scanner with on-device OCR, PDF merging, signing and faxing.",
      "websiteUrl": "https://readdle.com/scannerpro",
      "summary": "Scanner Pro turns an iPhone or iPad into a document scanner: it detects edges, corrects perspective, cleans up the image and saves multi-page PDFs or images. Its on-device OCR adds a searchable, copyable text layer and supports Latin, Chinese+, Japanese+, Korean+, Cyrillic and Other language bundles. It combines scans into multi-page documents, reorders pages, inserts a drawn signature, exports scans as PDF, JPEG or TXT, and can password-protect exported PDFs and fax documents. Cloud sync, workflows, OCR, merging, the PDF converter and password protection are part of the Scanner Pro Plus subscription. The current App Store version is 9.0.2.",
      "bestFor": "iPhone and iPad users who scan contracts, receipts and IDs and want searchable PDFs with OCR, plus lightweight editing and signing without a desktop.",
      "watchOutFor": "The app is free to download but the Plus subscription is what unlocks watermark-free scans, OCR, full-text search, merge, the PDF converter, password protection and workflows, so the free tier is a limited trial rather than the full product; Scanner Pro Plus is sold as a 1-week or 1-year subscription and Fax Packs are separate purchases, and the App Store's several price points carry no period, so no single price or from-price is published. It is an iPhone and iPad app: the marketing line about iPhone, iPad and Mac refers to sync and access, not a native macOS application, and the App Store listing has no Mac device family. OCR runs on-device with Latin, Chinese+, Japanese+, Korean+, Cyrillic and Other language bundles, but the vendor publishes no accuracy figure and the feature is a Plus entitlement for new users. Password protection applies to exported PDFs and to the app itself: the PDF password is set on export and the recipient must enter it to open the file, which is a password-based protection rather than a claim about encryption strength or reader enforcement. Signing is a drawn signature image inserted into a scan, not a certificate-based digital signature, and no signature validation or certificate-authority claim is made. Scanning and OCR are local, and the privacy notice says files are not stored on Readdle's servers; cloud sync is optional, AI features may send inputs to providers that retain them for up to 30 days for abuse monitoring, and faxing sends the document to a fax service. Data is stored on US and EEA servers for account and analytics data, and the app is not a redaction tool: the eraser removes marks from scans rather than permanently removing content.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Readdle Limited",
      "platforms": [
        "ios"
      ],
      "launchedYear": 2009,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "view",
        "merge",
        "protect",
        "convert",
        "sign"
      ],
      "jobScores": {
        "ocr": 84,
        "view": 72,
        "merge": 66,
        "protect": 66,
        "convert": 62,
        "sign": 62
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://readdle.com/scannerpro",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Stated by the vendor in their own OCR article: Scanner Pro uses an on-device OCR model and does not upload recognised text to cloud storage. Their privacy FAQ adds that no files are transmitted to or stored on their servers. Caveat: the privacy notice says some AI features may use third-party providers, so not every newer feature is guaranteed to be local.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "An iOS app, so a browser probe cannot drive it. Its vendor states the OCR model runs on the device and recognised text is not uploaded."
      },
      "license": "Proprietary. Readdle Limited, company number 630281, Glandore Business Centres, 26-27 Fitzwilliam Place, Fitzwilliam Hall, Dublin 2, D02T292, Ireland, is the controller named in the Scanner Pro Privacy Notice last updated 13 August 2026. The Apple App Store lists the seller as Readdle Technologies Limited, a different entity name used for App Store distribution, while Readdle Limited is the contracting and privacy controller. The app is free to download with in-app purchases: Scanner Pro Plus is sold as a 1-week or 1-year subscription for new users, and Fax Packs are separate purchases; no single price is published and the App Store shows several price points without periods, so no price is asserted. The software is proprietary, with no open-source licence or source distribution.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "ios",
          "name": "iOS",
          "processing": "in_process",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "running OCR with Scanner Pro, where the Text Recognition support article documents an on-device OCR model that recognises text in scans and makes it searchable, readable, selectable and copyable, and documents the language bundles Latin, Chinese+, Japanese+, Korean+, Cyrillic and Other, with Latin-based languages preselected by default and automatic text recognition configurable in settings; the article says the improved OCR is available in Scanner Pro 8.0 or later, free for previous purchasers and included with a Plus subscription for new customers, and the privacy section says recognised text is not uploaded to Readdle's servers or cloud storage. The scope records the on-device OCR, language bundles and Plus entitlement and makes no accuracy guarantee, no OCR support for languages outside the documented bundles and no searchable-PDF claim beyond the searchable text layer the article documents",
        "view": "viewing scans and documents with Scanner Pro, where the product page and support knowledge base document an iPhone and iPad scanner and document viewer for opening scans, reading and searching recognised text, switching between views and sorting scans, organising scans in folders and using full-text search once OCR has run; the scope records the interactive scanner/document viewer and its viewing, search and organisation functions on iPhone and iPad, and does not claim a desktop PDF viewer or a macOS application, because the App Store listing has no Mac device family and the Mac marketing line refers to sync and access",
        "merge": "merging scans with Scanner Pro, where the product page documents combining multiple scans into a single document in a few steps and creating single or multi-page PDFs with page reordering, and the support knowledge base documents multi-page scans; the scope records the documented combining of scans into one multi-page document and page reordering, and does not claim arbitrary merging of imported external PDF files or any preservation guarantee for signatures, forms, links or annotations",
        "protect": "protecting documents with Scanner Pro, where the password-protection support article documents setting a password on a PDF scan before export, changing or disabling that password, and sending the protected scan, with the recipient able to view it only after entering the password, and the Plus feature list also documents password protection for the app and any shared PDF; the article says the scan is protected only when exported to PDF. The scope records the documented PDF export password and app passcode, notes that protection applies to exported PDFs, and makes no encryption-algorithm, reader-enforcement or key-management guarantee",
        "convert": "converting scans with Scanner Pro, where the Plus feature list documents a built-in PDF converter that converts scans into several other formats and the support knowledge base documents choosing between saving as PDF, JPEG or TXT, alongside OCR text output; the scope records the documented PDF, JPEG and TXT export and conversion directions, makes no Microsoft Office or Word conversion claim because none is documented, and makes no fidelity guarantee",
        "sign": "signing documents with Scanner Pro, where the product page documents drawing a signature once and then signing scanned documents in seconds, and the support knowledge base has a create-and-insert-signatures article; the scope records the documented drawn-signature insertion into scans and documents, and because the vendor describes a visual signature image rather than a certificate-based signature, it makes no certificate-authority, digital-signature, validation or timestamping claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 351,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "readdle.com/scannerpro and its privacy page; Readle support centre articles on subscriptions, text recognition and privacy; Apple App Store lookup. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/scanner-pro/"
    },
    {
      "slug": "sejda",
      "name": "Sejda",
      "tagline": "Browser and desktop PDF editor with 30+ tools and a limited free tier.",
      "websiteUrl": "https://www.sejda.com/",
      "summary": "Sejda is a PDF editor and tool collection available in the browser and as a desktop application for Windows, macOS and Linux. It edits existing PDF text, fills and signs forms, merges, splits, compresses, runs OCR, converts to Word, Excel and PowerPoint, and applies password protection across roughly thirty tools. The free tier needs no account but caps pages, hourly use, file size and OCR page counts.",
      "bestFor": "People who want to edit existing PDF text in a browser without signing up, and who may later want an offline desktop app under the same licence.",
      "watchOutFor": "The free tier is genuinely restricted and the limits differ by surface and task: the web free tier allows three tasks per hour, documents up to 50 MB and 200 pages, one file per task, OCR up to 10 pages, conversions up to 20 pages, images up to 5 MB and combining up to 30 files and 50 pages, while the desktop free tier allows three tasks per day, documents up to 50 MB and 200 pages, compression up to 100 MB, OCR up to 10 pages, images up to 5 MB and combining up to 30 files and 50 pages. The desktop download page currently says 'Sorry, we no longer support Free Download' next to an Alternative Download option while still describing free use with daily limits, and the vendor FAQ says no perpetual licences are offered, so the desktop free route is not treated here as a current supported download. Pro removes those caps. Editing the text already in a scanned page is not what the editor does, and converting a scan to Word or Excel needs the OCR tool rather than the converter; adding text, images and annotations to a scanned page is a different operation and the notice allows it. Separately, the Week Pass is a one-time payment for seven days rather than a weekly subscription, and the annual plan is the one that renews.",
      "pricingModel": "freemium",
      "priceFromGbp": 5,
      "priceBasis": "one_off",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Sejda BV",
      "platforms": [
        "web",
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "merge",
        "compress",
        "convert",
        "sign",
        "ocr",
        "protect"
      ],
      "jobScores": {
        "edit": 80,
        "merge": 75,
        "compress": 70,
        "convert": 70,
        "sign": 70,
        "ocr": 65,
        "protect": 70
      },
      "redaction": "covers_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.sejda.com/pdf-editor",
        "quote": "Cover part of the PDF page with a white rectangle so the contents is no longer visible. … Whiteout hides but will not completely remove underlying text or images. Not suitable for redacting sensitive data",
        "caveat": "The vendor’s own editor page, not a test we ran. Two strings on it, both read from the live page on 2026-09-22. The feature list describes the tool as covering - \"Cover part of the PDF page with a white rectangle so the contents is no longer visible\" - and the Whiteout tool carries the vendor’s own warning: \"Whiteout hides but will not completely remove underlying text or images. Not suitable for redacting sensitive data\". That warning is an attribute on the tool rather than body copy, so it is what a user is shown at the point of use, and it is the stronger of the two: Sejda states the limit itself. The fragments are separated by an ellipsis because they are a paragraph and a tooltip, not one sentence. The verdict moves from `none` to `covers_content` because covering is what the feature does and removal is what it does not claim; DocHub is recorded as covering on the same basis. Sejda does not present this as redaction and none of its pages read here use that word, so a reader looking to redact safely should treat it as a covering tool rather than assume it cannot hide anything at all. An earlier version of this quote joined the page’s heading and its paragraph with an em dash that does not appear on the page; the heading is now named in `internalNotes` rather than quoted."
      },
      "processesLocally": false,
      "processesLocallyNote": "The web service uploads: Sejda's privacy policy says uploaded and processed files are stored on Sejda's servers. The desktop application is the other half, and the vendor describes it as working offline with files processed on your computer, in a blog post dated 2016 that the current desktop page read on 4 October 2026 does not repeat. That is a dated vendor statement rather than something we tested, and the web and desktop answers are kept apart because they are not the same product.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Sejda Desktop for Windows, Sejda Desktop for macOS, Sejda Desktop for Linux. On their servers: The web service. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. The web service is governed by Sejda's terms of service between the user and Sejda BV, a Dutch company registered with the Chamber of Commerce Amsterdam under number 68286945, effective 28 March 2026, and Sejda Desktop is governed by its EULA. Current paid plans are the Web Week Pass at GBP 5 per user for 7 days as a one-time payment, Web Monthly at GBP 7.50, Desktop+Web Annual at GBP 63, and the Desktop Week Pass at GBP 7.95; the vendor FAQ says no perpetual licences are offered.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": {
        "amount": 7.95,
        "currency": "GBP",
        "period": "one_off",
        "planName": "Desktop Week Pass",
        "asShown": "£7.95 per user for 7 days access, one-time payment",
        "source": "https://www.sejda.com/desktop",
        "readAt": "2026-10-04"
      },
      "editions": [
        {
          "id": "web",
          "name": "The web service",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Sejda Desktop for Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "Sejda Desktop for macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Sejda Desktop for Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF documents with Sejda, where the online PDF editor page says it can fill out PDF forms online, change PDF text, add text, edit existing PDF text, add images, create and edit hyperlinks, and annotate PDF pages, and the tool list also describes creating free PDF forms, making existing PDF documents fillable, adding text, links, images and shapes, and a Whiteout tool that hides content; the scope is the documented text, image, link, annotation and form editing, and two boundaries are kept: the Whiteout tool is recorded elsewhere as covering content rather than removing it, and editing text already in a scanned page is not claimed because the editor works on the PDF text layer while OCR is the separate job",
        "merge": "merging and splitting PDF documents with Sejda, where the Merge tool combines multiple PDFs and images into one document, the Alternate and Mix tool mixes pages from two or more documents alternating between them, the Organize tool arranges and reorders PDF pages, and the split tools extract pages by page range, by bookmarks, by splitting two-page layouts, by target file size and by text occurrences; the free tier limits combining to 30 files and 50 pages, and the scope is the documented merge, mix, organise and split operations, with no claim about preserving signatures, forms or annotations across a merge",
        "compress": "compressing PDF documents with Sejda, where the Compress PDF page says the compression algorithm optimizes images, removes unused fonts and images, and saves optimized images at JPEG quality 65 percent by default, with a Good or Best image-quality option, a default 72 PPI image resolution with 144, 288 or 720 PPI options as the maximum image resolution, and a grayscale image conversion option for smaller files; the scope is the documented image, font and image-cleanup compression with the named quality and PPI controls, and no size-reduction percentage or lossless guarantee is claimed",
        "convert": "converting PDF documents with Sejda, where the tool list documents PDF to Excel and CSV for table extraction, PDF to JPG, PNG or TIFF images, PDF to PowerPoint, PDF to Text, and PDF to Word DOC with Keep layout and Optimize for legibility options, plus HTML to PDF, JPG to PDF and Word DOCX to PDF; the free tier limits a conversion to 20 pages, and the scope is the documented conversion directions and the two PDF-to-Word layout options, with no fidelity guarantee and no conversion of formats not listed",
        "sign": "signing PDF documents with Sejda, where the Fill and Sign PDF page says users can create a signature by typing their name and selecting from over 10 handwriting styles, by drawing with a mouse, trackpad or pointer device, or by uploading an image of their signature, and then place and resize the signature on a PDF page and fill out PDF forms; the scope is those documented electronic-signature methods and form filling, and no certificate-based digital signature, timestamping, long-term validation or audit-trail claim is made",
        "ocr": "running optical character recognition with Sejda, where the OCR PDF page says the tool converts PDF scans to searchable text and PDFs, that users select the language of the document so ambiguous words are resolved using the language dictionary, that the output can be a searchable PDF, a plain text file or both, and that the searchable PDF contains invisible text overlaid on the original images at the correct locations; the page suggests inspecting recognised text rather than promising accuracy, the free tier is limited to 10 pages per OCR task while paid plans allow up to 100 pages, and the scope makes no language-count or accuracy guarantee",
        "protect": "protecting PDF documents with Sejda, where the Encrypt PDF page, at /encrypt-pdf, offers password protection plus an admin password to change permissions, encryption levels of Medium RC4 128 bits, Medium AES 128 bits and Strong AES 256 bits, and PDF reader permissions for modifying, copying text and graphics, printing, high resolution printing, filling forms, commenting, and inserting, rotating or deleting pages; the page itself warns that some PDF readers ignore these permissions and that they may not be honoured or enforced at all times, and the scope keeps that warning as the boundary rather than claiming enforcement"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 544,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 0,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "sejda.com; sejda.com upgrade, desktop, privacy and help pages. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/sejda/"
    },
    {
      "slug": "sensusaccess",
      "name": "SensusAccess",
      "tagline": "Self-service conversion of documents into accessible formats, and remediation of inaccessible PDFs.",
      "websiteUrl": "https://www.sensusaccess.com/",
      "summary": "SensusAccess is a hosted service that turns a document into a format somebody can actually use: audio in MP3 or DAISY, e-books in EPUB/EPUB3 or Mobi, digital Braille, digital large print, or a BeeLine reading view. It also remediates inaccessible material - image-only PDFs, JPG pictures, PowerPoint presentations and LaTeX projects - by OCR and rebuilding text, and can machine-translate documents. Institutions license it so students, faculty, staff and alumni can convert documents themselves; a separate Remediator handles high-volume PDF remediation, and SensusComply is manual remediation. This record covers the self-service converter, not those other services. The service is hosted in Sensus's own Danish data centre and is free of registration for ordinary users, while institutional use requires a service agreement. It is a conversion/remediation service, not a validator, editor, redaction/signing tool or accessibility certification.",
      "bestFor": "Universities, colleges and libraries with a duty to provide accessible course material, where a student can convert a document on their own rather than wait for a specialist. It is aimed at institutions, and its formats - audio, e-books, digital Braille, large print and a reflowable reading view - are what it is for.",
      "watchOutFor": "It is a hosted service, so documents are uploaded: source documents are received on SensusAccess's reception server and processed there, and for personal data that is a decision rather than a detail. It is institution-facing - pricing is by service agreement, with no published figure and no self-service institutional sign-up - although ordinary users do not have to register. The formats are the point and the limit: it converts and remediates, but it does not check a document against PDF/UA or WCAG and will not tell you whether one passes, so it does not replace a validator. Its remediation is largely an OCR-and-rebuild operation; a document with a structure problem rather than a text problem is not what it is for. The brand covers three services: the self-service converter, the high-volume Remediator, and SensusComply manual remediation; their limits are not the same and are not inherited here. The notice records that the source is deleted after processing, delivery files are kept for up to seven days, and copies may sit in email spam filters, so deletion is not one immediate event. No permanent free tier is documented; demo/trial access is separate.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Sensus ApS",
      "platforms": [
        "web"
      ],
      "launchedYear": 2010,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "convert"
      ],
      "jobScores": {
        "accessibility": 80,
        "convert": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.sensusaccess.com/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence: the service description is a list of what it produces - audio, e-books, Braille, large print, BeeLine reading views, translations and remediated documents - and redaction is not among them, nor is any claim to remove content from a PDF it returns. What it does not establish: what the remediated output contains. A document put through OCR and rebuilt is a new file, and the service makes no claim about what happens to the original's hidden data; a reader treating this as a redaction step would be using it for something it does not describe."
      },
      "processesLocally": false,
      "processesLocallyNote": "A hosted service: source documents arrive on the SensusAccess reception server, are processed automatically by agents, and the result is returned by email; the source is deleted. Target documents are available through coded links for up to seven days, then deleted, with possible email spam-filter copies. Hosted in Sensus's own data centre in Denmark. Ordinary users need not sign up, but API/LMS integrations are a separate subscription with credentials.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A hosted service, and its own fair processing notice says so: source documents are received on the SensusAccess reception server and handled by processing agents there. The notice adds that the processing is entirely automated with no human interaction and that the servers are in Sensus's own data centre in Denmark, which is unusually specific - but the file still leaves the device, so this needs permission rather than a probe."
      },
      "license": "Institutional service agreement from Sensus ApS. The free/self-service interface does not require ordinary users to sign up, but institutional use (including organised instruction) requires a service agreement and is monitored; commercial resale is prohibited. No public price is published. A demo/trial route is offered, but it is not a permanent free tier. The API/integration access needs its own subscription/credentials.",
      "openSource": false,
      "selfHostable": null,
      "interfaces": [
        "http"
      ],
      "dataResidency": "eu",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "makes another format, and remediates from the source",
        "convert": "converting documents into alternate/accessible formats with SensusAccess's self-service service: audio books (MP3 and DAISY), e-books (EPUB, EPUB3 and Mobi), digital Braille, digital large-print and BeeLine Reader outputs; OCR/remediation of inaccessible sources such as image-only PDFs, JPG pictures, PowerPoint presentations and LaTeX projects into more accessible formats; and machine translation of documents. The scope records the documented conversion, OCR/remediation and translation paths through the hosted web/email service, and explicitly excludes general PDF editing, extraction APIs, redaction, signing, PDF/UA/WCAG validation, accessibility certification and any output-quality guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 1015,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://www.sensusaccess.com/ (MP3/DAISY, EPUB/EPUB3/Mobi, digital Braille, large print, BeeLine, OCR remediation of image-only PDF/JPG/PowerPoint/LaTeX, machine translation, institutional self-service; read 2026-10-16); https://www.sensusaccess.com/license/ (institutional service agreement, monitored use, commercial resale prohibited, organised instruction counts; read 2026-10-16); https://www.sensusaccess.com/privacy-fair-processing-notice/ (reception server, automatic processing, source deletion, target retention up to seven days, Denmark data centre, spam-filter copies; read 2026-10-16); https://www.sensusaccess.com/remediator/ (separate high-volume remediation service; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/sensusaccess/"
    },
    {
      "slug": "setapdf-core",
      "name": "SetaPDF-Core",
      "tagline": "Commercial PHP library giving low-level access to PDF objects, metadata and encryption.",
      "websiteUrl": "https://www.setasign.com/products/setapdf-core/",
      "summary": "SetaPDF-Core is the commercial low-level PHP PDF component from Setasign GmbH & Co. KG and the basis of the SetaPDF product line. It provides PHP classes for reading, editing and writing PDF documents at object level: parsing and transparent encryption handling, document objects, pages, canvas drawing, metadata, outlines, annotations, embedded files, colours and fonts, viewer preferences, reader-enabled documents and corrupt-file handling, with writers for files, strings, streams and HTTP. It supports the standard security handler with RC4-40, RC4-128, AES-128 and AES-256, user and owner passwords and permission flags, plus public-key security with certificates and private keys. The current documented PHP requirement is 7.2 minimum as of the 2.53.0 line, tested through PHP 8.6, with DOM, iconv or Multibyte String, OpenSSL, SPL, Zlib and intl extensions. It is sold per component through Setasign's authenticated Composer repository or a downloaded package; the server licence is EUR 180, cluster/cloud licences range from EUR 270 to EUR 810, each includes one year of updates and renews at 20% annually. It is a PHP library, not a hosted service, and it is not SetaPDF-Signer, SetaPDF-Stamper, SetaPDF-FormFiller, SetaPDF-Merger, FPDI or SetaFPDF.",
      "bestFor": "PHP applications that need to inspect or secure PDFs rather than author them: reading metadata and page geometry, validating colour usage and font embedding, applying password or certificate encryption, or repairing files that other tools refuse to open. It is also the entry point for anyone using any other SetaPDF component, since they all require it.",
      "watchOutFor": "SetaPDF-Core is a commercial component, not an open-source library or a hosted service. Public pricing is in EUR: the server licence is EUR 180 excluding German VAT and covers one server or virtual machine; cluster/cloud licences are EUR 270 for 1-3 nodes rising to EUR 810 for 1-15; each includes updates for one year, after which update access renews at 20% of the current licence price. Licensed users get PHP source access and do not need the Ioncube Loader; trial files are Ioncube-encoded and need the loader. Composer installation uses the authenticated Setasign repository at https://www.setasign.com/downloads/ and the package setasign/setapdf-core (2.*), not public Packagist; downloaded packages or a personal pickup depot are the alternative. The current manual states PHP 7.2 minimum as of the 2.53.0 line and testing through PHP 8.6, with DOM, iconv or Multibyte String, OpenSSL, SPL, Zlib and intl enabled; the public pages do not expose a more precise current build number, so this record keeps the 2.53 line rather than inventing a revision. Core is a low-level library: it exposes PDF objects, pages, canvas content, metadata, annotations, outlines, embedded files, fonts, colours and security handlers, but it is not an Acrobat-style editor and does not provide OCR, generic Office conversion, signing, certificate trust validation or hosted processing. Encryption support is standard/public-key security and permission flags, not signing; SetaPDF-Signer is a separate component, as are the specialist components. The library can write to HTTP/S3-style stream wrappers as well as local files, so pure PHP does not by itself guarantee that documents never leave the host. FPDI is a separate page-import library and is not a substitute for Core's compressed xref/object stream and encryption handling.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "Setasign GmbH & Co. KG",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "protect",
      "jobs": [
        "protect",
        "extract"
      ],
      "jobScores": {
        "protect": 75,
        "extract": 65
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.setasign.com/products/setapdf-core/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence: the feature list is about accessing a document - objects, metadata, page boxes, annotations, bookmarks, JavaScript actions, encryption - and nothing in it removes content from a page. It reads and writes PDFs, so unlike the generators in this batch a `none` here is a statement about a real absence rather than a structural impossibility. What it does not establish: that the other SetaPDF components lack redaction. This record covers Core only, and the vendor sells five other components that were not read."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded PHP library, so documents are handled by the application that includes it. Pure PHP describes the language, and it does not guarantee that nothing is sent anywhere: the documented input and output includes HTTP writers and Amazon S3 stream wrappers, so where a document is read from or written to is a configuration decision rather than a property of the library.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A pure-PHP library running in your own process. No service and no account; documents are read and written on your own infrastructure."
      },
      "license": "Commercial, per-component licence under the SetaPDF Product Range Software License Agreement dated 08/2023. The licensor is Setasign GmbH & Co. KG, Helmstedt, Germany. The agreement is for enterprises, grants a perpetual server or cluster/cloud licence tied to identified servers, includes one year of updates, and requires renewal for continued update access at 20% of the current licence price. Source code access is included as of version 2.x and the Ioncube Loader is not required for licensed use; trial files are Ioncube-encoded. The agreement is governed by German law, with Braunschweig jurisdiction, and states that the German original prevails over the English translation. No open-source licence or free tier is offered for Core.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "protect": "protecting and unprotecting PDFs with SetaPDF-Core, where the manual documents the Standard Security Handler with user and owner passwords, permission flags for printing, copying, modifying, annotation and form filling, authentication against existing security handlers, creation and removal of Standard security handlers, and the Public-Key Security Handler using certificates and private keys. It supports RC4-40, RC4-128, AES-128 and AES-256; the scope records encryption, decryption, password and certificate-based security handling and permission flags, and makes no signing, certificate-trust validation, universal reader-enforcement or legal-security guarantee; SetaPDF-Signer is a separate component",
        "extract": "reading and inspecting PDF internals with SetaPDF-Core, where the manual documents reading PDF files of all versions, object-level parsing, transparent encryption handling, document metadata and XMP streams, pages and page geometry, annotations, outlines and destinations, embedded files, colours/fonts, page labels, viewer preferences, reader-enabled documents and corrupt-document handling. The scope records low-level document/object/metadata/page/annotation/outline/attachment inspection and reading, plus the documented writers for output; it is not a high-level text extractor, OCR engine, generic Office converter or Acrobat-style UI, and makes no arbitrary text-extraction, redaction or rendering guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 725,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "setasign.com: the SetaPDF-Core product page, read 2026-09-22 with headless Chrome, including the feature list, the low-level features and the usage examples. Vendor documentation, not independently tested; no library was obtained and no PDF was opened.",
      "profileUrl": "https://dialegein.com/products/setapdf-core/"
    },
    {
      "slug": "signnow",
      "name": "SignNow",
      "tagline": "Cloud e-signature platform for sending, signing and tracking documents.",
      "websiteUrl": "https://www.signnow.com/",
      "summary": "SignNow is a hosted airSlate electronic-signature and document-workflow service. Users upload documents, add fields, templates and roles, send requests by email, SMS, link or kiosk, collect typed, drawn or uploaded signatures and track opens, signatures and audit history in a server-side account. The service is accessed through the web app, iOS and Android apps, a REST API with SDKs and embedded signing, and documents and signatures are stored by the service in the United States. The privacy notice last updated 13 October 2026 explicitly lists uploaded Documents and Electronic Signatures among the information collected, along with billing and service-usage information, and says SignNow services will not function without transfers to the United States. Current plans, from the airSlate SignNow information page last updated May 2026, are Business USD 8 per user per month billed annually (USD 20 monthly), Business Premium USD 15 annual (USD 30 monthly), Enterprise USD 30 annual (USD 50 monthly), a Site License at USD 1.50 per signature invite with full API access, and airSlate Business Cloud at USD 50 per user per month, with a 7-day no-card trial. No permanent free tier was found. The service also generates documents from .docx templates populated with data and tags into signature-ready PDFs, which is the catalog's convert capability; it is not a generic file converter.",
      "bestFor": "Organisations that need legally binding e-signatures with audit trails, shared workspaces and API integration, and that accept US-hosted cloud processing.",
      "watchOutFor": "SignNow is a hosted server-side service, not a local or self-hosted tool: the privacy notice says documents, signatures, billing and usage information are collected, and that SignNow services will not function without transfers to the United States. Data residency is therefore recorded as United States, with no claim of EU-only hosting. The Contracting Entity Table last updated 1 October 2026 does not name one universal owner: the provider is determined by the services used, the customer location and the payment method, and is listed in the Subscription Terms. It lists airSlate, Inc. (Delaware, notice address 17 Station Street, Ste. 203, Brookline, MA), airSlate Legal Forms, Instapage, DocHub, airSlate Ireland Limited, airSlate Poland and airSlate Australia, each with its own governing law and venue; this record keeps that rule rather than collapsing the entities. The Terms of Service were last updated 2 March 2023 and the privacy notice 13 October 2026; an earlier summary date of 12 August 2026 is superseded. The privacy retention section gives purposes and factors rather than a fixed retention period, so no retention duration is asserted. Pricing is published in USD on the airSlate information page, but the live payment page redirect is a JavaScript shell and no amounts were rendered there, so no GBP figure is asserted, priceFromGbp is null and priceBasis is unknown; the earlier GBP 14.83 was a synthetic conversion of USD 8 and is removed. The plans are Business USD 8 per user per month billed annually (USD 20 monthly), Business Premium USD 15 annual (USD 30 monthly), Enterprise USD 30 annual (USD 50 monthly), Site License USD 1.50 per signature invite with full API access, and airSlate Business Cloud USD 50 per user per month; a 7-day no-card trial is advertised and no permanent free tier was found. API access and the full API are on the Site License, with a free developer sandbox and 250 free signature invites; whether the paid API plan is self-serve was not established. Editing means preparing fields, text, checkboxes, templates, roles and routing, not general PDF body-text editing, OCR or redaction. Signing is an electronic-signature workflow with typed, drawn or uploaded signatures, signer authentication and audit trails; the vendor advertises SES on all plans and AES/QES as Site License add-ons, and claims eIDAS/ESIGN and other electronic-signature law coverage, but no certificate-backed PDF signature, CA issuance, timestamp trust or universal legal-validity guarantee is made here. Document generation is the convert capability: it turns .docx templates populated from data into signature-ready PDFs; it is not generic Office/PDF conversion, PDF/A conversion or a fidelity guarantee.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": false,
      "owner": "airSlate, Inc.",
      "platforms": [
        "web",
        "ios",
        "android",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "sign",
      "jobs": [
        "sign",
        "edit",
        "convert"
      ],
      "jobScores": {
        "sign": 95,
        "edit": 70,
        "convert": 65
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.signnow.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "The mobile app can sign and edit offline and sync when back online, but documents are uploaded to and stored on SignNow's servers for sending, tracking and web access.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Their data processing addendum states documents are processed in the United States."
      },
      "license": "Proprietary hosted SaaS. No software licence or source licence is published. Use is governed by the SignNow Terms of Service last updated 2 March 2023 and the Subscription Terms or order form, which set the service plan, users, volume limits, pricing and duration. The Contracting Entity Table last updated 1 October 2026 says the applicable provider company is listed in the Subscription Terms and is determined by the services used, the customer location and the payment method. The table lists airSlate, Inc. (Delaware, USA; registered 1209 N Orange St, Wilmington, DE 19801; notice address airSlate, Inc., Attn: Legal Dept., 17 Station Street, Ste. 203, Brookline, MA 02445; Massachusetts law), airSlate Legal Forms, Inc. (Delaware), Instapage, Inc. (Delaware), DocHub, LLC (Massachusetts), airSlate Ireland Limited (Dublin, Ireland), airSlate Poland Sp. z o.o. (Wrocław, Poland) and airSlate Australia Pty LTD (New South Wales, Australia), each with its own governing law and venue. This record does not collapse those location-specific entities: airSlate, Inc. is the parent and the default US entity, while the Subscription Terms determine the actual contracting provider.",
      "openSource": null,
      "selfHostable": null,
      "interfaces": [
        "http",
        "browser"
      ],
      "dataResidency": "us",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "vendor_cloud",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "vendor_cloud",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "signing documents with SignNow, where the service documents sending documents for signature, typed, drawn or uploaded electronic signatures, signer authentication, multi-step and role-based signing, audit trails, kiosk and embedded signing, and the airSlate information page says SES is available on all plans with AES/QES available on the Site License, and claims eIDAS/ESIGN and equivalent electronic-signature law coverage. The scope records the hosted electronic-signature workflow, signer authentication, audit trail and the vendor SES/AES/QES plan claims, and makes no certificate-backed PDF signature, certificate-authority issuance, timestamp-trust, universal legal-validity or jurisdiction-specific guarantee beyond the vendor statements",
        "edit": "editing and preparing documents with SignNow, where the documentation and airSlate information page document document preparation through fields, text, checkboxes, reusable templates, roles, routing, conditional and formula fields, embedded editor, document generation, real-time audit trails and document versioning, and where the REST API documents pre-filling documents, assigning recipients and fields, embedded sending and embedded editor workflows. The scope records the documented field, text, checkbox, template, role, routing, audit and versioning preparation actions in the hosted service, makes no general PDF body-text editing, OCR, redaction or local-editor claim, and keeps document generation in the convert scope",
        "convert": "document generation with SignNow, where the developer documentation documents generating documents from a .docx file with tags, populating the tags from data and producing a signature-ready PDF as part of the workflow, and the airSlate information page lists document generation with pre-filled data as a core capability. The catalog's convert job is therefore scoped to this template-and-data document-generation workflow, and explicitly makes no generic Office or PDF file conversion, PDF/A conversion, image conversion, OCR or fidelity guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 247,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "signnow.com; signnow.com/developers; legal.signnow.com and the DPA; helpcentre articles on plans, invite seats, free seats and post-expiry retention; UK App Store listing.",
      "profileUrl": "https://dialegein.com/products/signnow/"
    },
    {
      "slug": "signwell",
      "name": "SignWell",
      "tagline": "Straightforward e-signature service with a free tier, REST API and CLI.",
      "websiteUrl": "https://www.signwell.com/",
      "summary": "SignWell is a hosted e-signature service for sending documents out for signature and tracking completion. You upload or template a document, place signature/text fields, set signing order, reminders and conditional rules, and recipients sign in the browser without needing an account. It also offers a REST API, CLI, MCP connector and white-label embeds so signing can sit inside another product. Current plans: Free with 1 sender/1 template/3 documents a month and API included; Light $10/month annual or $12 monthly; Business $30/month annual or $36 monthly; Enterprise custom for larger teams/high volume. Documents are hosted on AWS in the United States, with no self-hosting/EU-residency option documented. SignWell is a signing workflow service, not a PDF editor/converter, OCR/extraction tool, redaction or accessibility validator, and its legal/compliance statements are vendor claims rather than a legal guarantee.",
      "bestFor": "Small and mid-sized teams that want simple, low-cost e-signature plus a developer API, without enterprise contracts.",
      "watchOutFor": "The free tier is one sender and three documents a month (API included), and documents live on US AWS infrastructure with no self-hosting or EU residency option. It is purely a signing tool: editing, redaction, conversion, OCR and extraction are out of scope, and form-field placement is preparation rather than editing existing PDF text. The free plan's one sender/three documents is a web allowance; API usage and paid plans have their own sender/document conditions, so unlimited paid web requests do not mean unlimited free API requests. Recipients need no account, but senders do. Audit trails, ESIGN/UETA/eIDAS alignment, SOC 2 Type II and HIPAA are vendor/plan claims, not a legal certification or guarantee; legal validity depends on jurisdiction and process. No public GBP price is verified, so no GBP conversion is recorded.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Docsketch, LLC",
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": 2019,
      "primaryJob": "sign",
      "jobs": [
        "sign",
        "edit"
      ],
      "jobScores": {
        "sign": 85,
        "edit": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://www.signwell.com/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": false,
      "processesLocallyNote": "Hosted service: uploaded content is collected/stored by SignWell on AWS in the United States; signers complete documents in the browser. Sending/tracking requires a sender account; recipients do not need an account. No self-hosted or EU-residency option is documented.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Hosted service. Their privacy policy states content is stored by SignWell on AWS, with signers completing documents in the browser."
      },
      "license": "Proprietary hosted service operated by Docsketch, LLC (DBA SignWell), an Oregon company. Free plan: 1 sender, 1 template, 3 documents/month, API included. Paid Light $10/month annual or $12 monthly; Business $30/month annual or $36 monthly; Enterprise custom for 50+ teams/high volume. No GBP price is verified; no self-hosting or open-source licence.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [
        "http",
        "cli"
      ],
      "dataResidency": "us",
      "requiresAccount": true,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web application",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "REST API / CLI / MCP",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [
            "http",
            "cli"
          ],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "sign": "running a hosted electronic signature workflow with SignWell: uploading or templating a PDF, placing signature/text/date/initials fields, adding recipients and signing order, configuring reminders/conditional rules, sending for signature, recipient browser signing without an account, and tracking completion with audit-trail/signer records. API, CLI, MCP and white-label embed routes support the same workflow. The scope records signing/document-preparation workflow only; it does not claim general PDF editing, OCR, extraction, conversion, redaction, accessibility validation or legal certification, and audit/compliance statements remain vendor claims",
        "edit": "adding signer and text fields as form preparation, not editing existing PDF text"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 111,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://www.signwell.com/ (80,000+ businesses; document signing, REST API, CLI, MCP, embeds, no recipient account, audit reports; read 2026-10-16); https://www.signwell.com/pricing/ (Free 1 sender/1 template/3 docs/month/API included; Light $10 annual/$12 monthly; Business $30/$36; Enterprise custom; read 2026-10-16); https://www.signwell.com/api/ (REST API, text tags/templates, embedded/white-label, webhooks; read 2026-10-16); https://www.signwell.com/security/ (SOC 2 Type II, HIPAA, encryption, AWS, eIDAS/ESIGN/UETA claims; read 2026-10-16); https://www.signwell.com/privacy/ (Docsketch LLC, US/AWS hosting, transfers; read 2026-10-16); https://www.signwell.com/terms/ (Docsketch LLC terms; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/signwell/"
    },
    {
      "slug": "simplepdf",
      "name": "SimplePDF",
      "tagline": "Browser PDF editor and form filler that processes files in your browser.",
      "websiteUrl": "https://simplepdf.com/",
      "summary": "SimplePDF is a browser PDF editor and document-workflow service operated by SimplePDF B.V., Pieter Baststraat 24H, 1071 TX Amsterdam, Netherlands. The company replaced Tree Social OÜ as operator in October 2026, and the terms now use Netherlands law. The free editor fills, edits, signs and merges PDFs in the browser: it adds text, checkboxes and images, detects existing form fields, supports drawn or uploaded signatures, merges PDFs and reorders, rotates, deletes and adds pages. Editing is client-side, no account or payment is required for the free editor, and the finished document is generated and downloaded on the user's device. Paid plans add hosted submission collection, a dashboard, email and webhook notifications, embeds, custom branding, bring-your-own-storage and, on Premium, API access; those workflows involve server-side accounts, storage and notifications. Current prices are published in USD only: Free, Basic USD 99 per month, Pro USD 349 per month and Premium USD 899 per month, with the annual toggle amounts not present in the served page. The embed SDK is a separate MIT-licensed repository.",
      "bestFor": "Individuals who need to fill, sign, merge or lightly edit a PDF privately and for free, and businesses that want an embeddable form-filling workflow pointed at their own storage.",
      "watchOutFor": "The live operator is SimplePDF B.V. in Amsterdam, Netherlands, and the current terms use Netherlands law. The privacy and terms version history say SimplePDF B.V. replaced Tree Social OÜ (Estonia) in October 2026, so Tree Social OÜ is historical rather than current. The free editor is genuinely client-side and requires no account: its documents are processed in the browser and the finished file is generated locally. Paid workflows are different: accounts, the dashboard, hosted submissions without bring-your-own-storage, email and webhook notifications, and API access on Premium involve server-side paths, and completed files on paid plans without bring-your-own-storage are stored by SimplePDF. Do not read the free-editor locality claim as covering every paid workflow. Pricing is USD only: Free, Basic USD 99 per month, Pro USD 349 per month and Premium USD 899 per month. There is no GBP figure, so priceFromGbp is null and priceBasis is unknown; the previously recorded GBP 73.43 was a conversion of USD 99 and is removed. The annual toggle amounts were not present in the served page, so no annual price or monthly equivalent is asserted. API access is listed on Premium, but whether the API plan is self-serve was not established; the pricing page offers a free trial but the API reference page itself rendered as a JavaScript shell. The free editor is a filler and light editor, not a document-processing suite: it has no OCR, no compression and no password protection. Its white-out tool places a white background over text rather than removing it, so it is not redaction. Signatures are visual drawn or typed signatures, not certificate-backed digital signatures. The PDF-to-web-form conversion turns an uploaded PDF into an online form with a dashboard, links and submissions; it is not Office, image or generic file conversion, and no conversion fidelity is claimed. The embed SDK is MIT-licensed as a separate repository; that licence is not applied to the hosted service. The supported surfaces are the browser editor, the JavaScript/React/iframe embed, the API and the listed Chrome, Bubble and WordPress integrations; there is no desktop, mobile-native or other hosted conversion product.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "SimplePDF B.V.",
      "platforms": [
        "web",
        "api"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "merge",
        "sign",
        "convert"
      ],
      "jobScores": {
        "edit": 72,
        "merge": 70,
        "sign": 65,
        "convert": 60
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://simplepdf.com/help/faq/how-to-add-background",
        "readAt": "2026-10-04",
        "quote": null,
        "caveat": "The vendor documents a white-out tool, and a white-out covers text rather than removing it. Secure removal of the underlying content has not been established by this audit, so this is recorded as no redaction rather than as an absence of any related feature: the guide exists and says what the tool does."
      },
      "processesLocally": true,
      "processesLocallyNote": "The free editor processes the PDF in the browser and does not send the document to SimplePDF servers. Paid workflows have server-side paths: accounts, dashboard, hosted submissions without bring-your-own-storage, email and webhook notifications, and the API on the Premium plan. With bring-your-own-storage, completed files go from the browser to the customer's S3, Azure Blob Storage or SharePoint storage using presigned URLs. The current operator is SimplePDF B.V., Pieter Baststraat 24H, 1071 TX Amsterdam, Netherlands; Tree Social OÜ (Estonia) is historical and was replaced in October 2026.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Free browser editor. On their servers: Paid dashboard and submission workflows, API (Premium). A single answer for the whole product would be wrong for one of them."
      },
      "license": "No software licence is published for the hosted SimplePDF service; use of the service is governed by its Terms and Conditions. The separate SimplePDF embed SDK repository, SimplePDF/simplepdf-embed, is MIT-licensed, but that SDK licence does not apply to the hosted service. The service is proprietary and no source licence is offered for the hosted platform.",
      "openSource": false,
      "selfHostable": null,
      "interfaces": [
        "http",
        "browser"
      ],
      "dataResidency": "eu",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": "SimplePDF review - Browser PDF editor",
      "originalPricing": {
        "amount": 99,
        "currency": "USD",
        "period": "month",
        "planName": "Business Basic",
        "asShown": "US$99 a month for the business plan; the personal editor is free",
        "source": "https://simplepdf.com/pricing",
        "readAt": "2026-10-04"
      },
      "editions": [
        {
          "id": "web",
          "name": "Free browser editor",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "hosted",
          "name": "Paid dashboard and submission workflows",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API (Premium)",
          "processing": "vendor_cloud",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with the SimplePDF free editor, where the features page documents adding text anywhere in the document with an optional white background, adding checkboxes, uploading images, drawing or uploading a signature, and automatic detection of existing form fields for quick editing; the editor does not claim to rewrite the document's existing body text and the white background is not a redaction. The scope records the documented add-text, checkbox, image, signature and form-field operations in the browser editor, makes no general text-editing, OCR or redaction claim, and keeps page merge/reorder operations in the merge scope",
        "merge": "merging and organising pages with the SimplePDF free editor, where the features page documents merging multiple PDFs into one document, rearranging pages by drag and drop, rotating page orientation, deleting pages and inserting blank pages or additional PDFs; the home FAQ also addresses merging PDF files by loading them and downloading the result. The scope records the documented merge, reorder, rotate, delete and add-page operations in the browser editor and makes no preservation or fidelity guarantee for signatures, forms, links or annotations",
        "sign": "signing PDFs with the SimplePDF free editor, where the features and signature help pages document drawing or uploading a signature, or typing a signature, and placing it on the document in the browser; the vendor describes simple electronic signatures and does not document certificate-backed or cryptographic digital signing. The scope records the visual electronic signature insertion in the browser editor and makes no certificate-authority, validation, timestamp or independent legal-validity guarantee",
        "convert": "converting PDFs with SimplePDF, where the PDF to Web Form page documents uploading any PDF, turning it into an online web form, sharing a link and collecting submissions through a dashboard, with no coding required. The scope records the documented PDF-to-web-form conversion workflow and the paid dashboard/submission path, and makes no Office, image or generic file conversion claim, no OCR claim and no conversion fidelity guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 634,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "simplepdf.com (home, pricing, features, about, privacy policy, and two help/FAQ pages). Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/simplepdf/"
    },
    {
      "slug": "smallpdf",
      "name": "Smallpdf",
      "tagline": "Browser PDF toolkit with 30+ tools and a Pro subscription, built in Switzerland.",
      "websiteUrl": "https://smallpdf.com/",
      "summary": "Smallpdf is a hosted web service bundling over thirty PDF utilities - compress, convert, merge, split, edit text, OCR, redact, sign and password protection - behind one browser interface, plus a Windows app and iOS and Android apps. Your file is uploaded to Smallpdf's servers, processed there, and the result downloaded again. The free plan uses the same tools but caps downloads per day; Pro removes those limits and adds strong compression, OCR and the AI-powered tools; the pricing page displays Pro at GBP 6.75 a month billed as GBP 81.00 a year on its default yearly plan, with a monthly toggle for the other billing period.",
      "bestFor": "People who want a broad, well-supported PDF toolkit that works on any device with nothing installed, and who are comfortable with cloud processing.",
      "watchOutFor": "Using a web tool uploads the file to Smallpdf's servers to be processed, so the answer for a confidential document depends on the policy of the organisation holding it rather than on a blanket rule. By default, a document you process is reachable by anyone holding its unique sharing link, which the notice says the user can turn off - check that before processing anything confidential. The free tier is capped by daily download limits on most tools rather than by watermarks. The AI tools add their own 50 MB file cap on every plan. The free plan's limits are not only downloads: the pricing comparison lists limited mobile app access, limited file size and a Sign.com free account capped at 2 documents a month, while the AI tools cap files at 50 MB and word counts differ by plan. Files uploaded to the web tools are deleted after one hour unless saved. Direct text editing in the editor and the OCR option for scanned PDFs in the converter are Pro features, so the free editor adds text, shapes, images, highlights and sticky notes but does not edit existing text. The macOS desktop application is not supported as of 1 October 2021, so desktop coverage is Windows only; the iOS and Android download links redirect to the Smallpdf PDF Scanner mobile app rather than a full editor. Signing inside Smallpdf is an electronic signature; certificate-based digital signing is not documented for it, and the separate Sign.com e-signing platform is the service named for team e-signature workflows.",
      "pricingModel": "freemium",
      "priceFromGbp": 6.75,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Smallpdf AG",
      "platforms": [
        "web",
        "windows",
        "ios",
        "android"
      ],
      "launchedYear": 2013,
      "primaryJob": "compress",
      "jobs": [
        "compress",
        "merge",
        "edit",
        "convert",
        "sign",
        "ocr",
        "protect"
      ],
      "jobScores": {
        "compress": 80,
        "merge": 75,
        "edit": 70,
        "convert": 80,
        "sign": 75,
        "ocr": 70,
        "protect": 75
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": null,
        "readAt": "2026-09-17",
        "quote": null,
        "caveat": "Tested on the web tool with our own canary document. It deletes the marked text from the page structure. The vendor does not document a separate desktop or tier behaviour we can speak to."
      },
      "processesLocally": false,
      "processesLocallyNote": "Smallpdf's privacy notice describes files being uploaded to its servers rather than processed in the page, so this is a cloud service and the note is the vendor's own. RETENTION IS NOW SCOPED RATHER THAN BLANKET, and the scope depends on the case: with an account, uploaded files are deleted within one hour unless you save them to your own file storage, and a saved file is deleted within 14 days of you asking for it to go; without an account, or whenever you are not signed in, there is no fixed period at all, only a deletion within a reasonable time after the file was last opened, and that clock restarts every time the file is reopened. Somebody asked to sign a document through the eSign tool is in the second group. WHERE THE FILES ARE: uploaded files are processed on Hetzner servers in the European Union, and the notice states this is not permanent storage. Smallpdf is a Swiss company and Switzerland holds an EU adequacy decision, but the notice permits transfers of personal data outside Switzerland and the EEA, naming Serbia and, for some support cases, the Philippines, with standard contractual clauses as the safeguard.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Windows. On their servers: Web. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. The Terms and Conditions are dated Zürich, January 2026, and form an agreement with Smallpdf AG, Steinstrasse 21, 8003 Zürich, Switzerland, governed by Swiss law; the Services include Smallpdf, Smallpdf PRO, Smallpdf Reader, Smallpdf Desktop and Smallpdf Mobile. Plans are subscriptions: Free, Pro, Team for 2 to 19 seats and Business custom-quoted, with a 7-day free trial, and a paid subscription includes a Sign.com Premium subscription. Sign.com is a separate e-signing platform within the same subscription.",
      "openSource": null,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "ios",
          "name": "iOS",
          "processing": "unknown",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "unknown",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "compress": "compressing documents with Smallpdf, where the Compress PDF page offers a free browser-based compressor that accepts PDF, image, Word, Excel and PowerPoint files and says it compresses a PDF to the smallest possible size without losing quality, with the pricing comparison listing Basic compression on Free and Strong Compression as a Pro feature, and the tool pages stating files are deleted after one hour; the scope is the documented free compression and the Pro strong-compression tier, and the vendor's without-losing-quality wording is recorded as marketing rather than as a lossless guarantee, with no size-reduction percentage claimed",
        "merge": "merging PDF documents with Smallpdf, where the Merge PDF tool combines files into one document, allows the merged pages to be previewed and reordered or deleted before saving, and accepts PDF and image inputs alongside Office formats on the wider tool set, with files deleted after one hour; the scope is the documented combine, preview, reorder and delete operations, with no claim about preserving signatures, forms or annotations across a merge",
        "edit": "editing PDF documents with Smallpdf, where the Edit PDF page says users can add text, shapes, images, highlights, sticky notes and drawings, and use Organize mode to rearrange, merge, extract or split pages and export the result, while the page FAQ states that direct editing of existing text is a feature available with a Pro subscription and includes a 7-day trial; the scope is the documented free editing of additions and annotations and the Pro direct-text-editing feature, with no OCR claim because editing text on a scanned page is a different tool, and no claim of layout reflow",
        "convert": "converting PDF documents with Smallpdf, where the PDF to Word converter turns a PDF into a DOCX file for free, offers an OCR option for scanned PDFs as a Pro feature, handles other Microsoft Office formats and the wider conversion tool set, and keeps the PDF formatting according to the page; the scope is the documented conversion directions and the Pro OCR-assisted scanned-PDF route, with no fidelity guarantee and no conversion of formats not listed",
        "sign": "signing PDF documents with Smallpdf, where the Sign PDF tool lets users create a signature by typing, drawing or uploading an image, add initials, dates, text and checkboxes, and place the signature on a PDF, DOC, XLS, PPT, PNG or JPG file, with files deleted after one hour unless saved to an account; the page FAQ distinguishes an electronic signature from a digital signature that uses encryption and certificates, and describes eSign for teams as a separate dedicated e-signing platform, Sign.com, included in the subscription; the scope is the documented electronic signature and form-marking workflow, and no certificate-based digital signature, timestamping or long-term validation claim is made for it",
        "ocr": "running optical character recognition with Smallpdf, where the PDF OCR page says the browser tool makes scanned PDFs searchable and selectable, recognises text in scanned files, can produce a searchable PDF or feed the text into the PDF to Word converter, and says files are deleted after one hour; the page describes no language selection or language list, and the converter FAQ describes the OCR option for scanned PDFs as a Pro feature while the OCR page presents the tool as free within plan limits; the scope is the documented searchable-PDF and searchable-Word workflow, with no language count, no accuracy guarantee and no claim of handwriting-specific recognition",
        "protect": "protecting PDF documents with Smallpdf, where the Protect PDF page offers browser password protection with AES 128-bit encryption, TLS-secured transfers, no account required, and deletion of files after one hour, and states that the document password is never saved; the page documents a single AES 128-bit level only and describes no permission flags or alternate algorithm, so the scope is AES 128-bit password encryption with that one-hour retention, with no claim about permissions, AES 256 or enforcement by other readers"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 656,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "smallpdf.com pricing page (figures supplied by the site owner from the live page, September 2026); smallpdf.com compress-pdf and privacy pages. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/smallpdf/"
    },
    {
      "slug": "snackpdf",
      "name": "SnackPDF",
      "tagline": "Your PDFs stay on your device.",
      "websiteUrl": "https://www.snackpdf.com",
      "summary": "SnackPDF processes files on your device rather than sending them to a remote server. Sixteen browser-local tools cover the everyday document jobs - compress, merge, split, extract pages, remove pages, reorder, rebuild, grayscale, PDF to JPG or PNG, extract text, OCR a scan, fill a form, redact, protect with a password, and unlock with a known password - and it works offline once loaded. The project is free, distributed under AGPL-3.0 in AGPL-compatible mode, and publishes no operating legal entity. Its redaction genuinely removes the content rather than covering it, by rasterising the pages you mark, which costs those pages their text layer.",
      "bestFor": "Anyone handling documents they would rather not upload to somebody else's server, and anyone who needs a redaction they can trust: the marked pages are rebuilt as images, so the text underneath is gone from the file rather than hidden in it.",
      "watchOutFor": "There is no signing tool. The current site lists sixteen tools and has no signature editor, no request-signature flow and no sign route; the sign job tag was removed after the current tool list and a 404 on the signing routes showed no such capability. Editing is form filling only: the fill-form tool inspects existing AcroForm fields locally, fills text fields, checkboxes, radio buttons, dropdowns and simple choices, and for flat PDFs places positioned static marks, but there is no general text, image or annotation editor, saved AcroForm values stay live rather than flattened, and the PDF font can limit which characters are saved. Conversion means PDF to JPG or PNG at 96, 150 or 300 DPI, not Office or PDF/A conversion. Extraction has two routes: stored selectable text, which produces nothing on a scan, and a separate OCR tool that renders each page locally and recognises printed English only, returning a page-by-page text file rather than a searchable PDF. Redaction genuinely removes content by rebuilding every affected page as a raster image, so those pages lose their text layer, links and vector structure and the file can grow, while unaffected pages keep their text. Password protection writes PDF 2.0 AES-256 locally with an open password and an optional owner password, but the reader permissions are advisory and a determined tool can ignore them, and encryption is not redaction. Unlock removes a known password and does not guess, crack or recover an unknown one. Its redaction works by rasterising whole pages, not just the marked area: one box on page three rebuilds all of page three at 150 to 300 DPI. Processing is browser-local and the tested claim is that document contents, names, passwords, extracted text, metadata and hashes are not sent away for processing, while the application itself is delivered over the network and managed hosting may see ordinary request information. The project publishes no operating legal entity, and its AGPL-compatible mode does not claim a commercial Ghostscript licence.",
      "pricingModel": "free",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web"
      ],
      "launchedYear": null,
      "primaryJob": "compress",
      "jobs": [
        "compress",
        "merge",
        "edit",
        "convert",
        "extract",
        "protect",
        "ocr"
      ],
      "jobScores": {
        "compress": 80,
        "merge": 75,
        "edit": 70,
        "convert": 70,
        "extract": 70,
        "protect": 75,
        "ocr": 60
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": null,
        "readAt": "2026-09-16",
        "quote": null,
        "caveat": "Tested on our own canary document. It removes the content by rebuilding each affected page as an image, so one redacted box costs that whole page its selectable text, links and vector structure. The test establishes the mechanism and what it costs; it does not establish behaviour on every document."
      },
      "processesLocally": true,
      "processesLocallyNote": null,
      "locality": {
        "verdict": "no_upload_observed",
        "label": "no upload observed",
        "testedAt": "2026-10-20T11:36:10.758Z",
        "method": "Playwright with a uniquely marked test file: a PDF for most tools, and a marked PNG for tools that only accept pictures. Chromium does not expose file bytes to the debugger, so we observe that a multipart request carried a redacted file part and record the host it went to. We cannot confirm the contents."
      },
      "license": "AGPL-3.0. SnackPDF is distributed in AGPL-compatible mode, with the application source, build scripts and licence materials available with the release. The application is AGPL version 3; the bundled Ghostscript 10.06.0, delivered through the pinned @okathira/ghostpdl-wasm 1.1.0 package, is AGPL-3.0-or-later; and the vendored @pdfsmaller/pdf-encrypt 1.2.0 encryption module and browser runtime notices are MIT. The build does not claim a commercial Ghostscript licence, so a commercial distribution would need the appropriate rights from Artifex and a review of the source and notice obligations. SnackPDF is a free, independent, browser-local project with no accounts, paid credits, document storage, server-side processing, API, AI features or email collection. No operating legal entity is published, and the terms state that operator details have not been added.",
      "openSource": true,
      "selfHostable": null,
      "interfaces": [],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "compress": "compressing PDFs with SnackPDF, where the Compress PDF tool rebuilds one PDF from one input with a fixed choice of three image-quality profiles: Light at up to 220 DPI with higher JPEG quality, Balanced at up to 150 DPI for ordinary screens and sharing, and Smallest at up to 96 DPI for the strongest reduction; the original file is unchanged, and the scope records the three documented profiles and makes no lossless or size-reduction percentage guarantee",
        "merge": "merging PDFs with SnackPDF, where the Merge PDF tool combines between two and fifty PDFs in the order of the file list, with every page of the first file before every page of the second and so on, and the page says merging rewrites the PDFs and may change comments, forms, bookmarks, links, metadata and other structures; the scope records the documented combine and ordering operation with that rewrite caveat and no preservation claim",
        "edit": "filling PDF forms with SnackPDF, where the Fill PDF form tool inspects a PDF locally for interactive AcroForm fields and exposes text fields, checkboxes, radio buttons, dropdowns and simple choice fields as editable controls, and the page says existing AcroForm fields can be filled directly and flat PDFs use positioned static marks, that the PDF font may limit which characters can be saved, and that the saved completed PDF keeps the original unchanged; the scope is form filling only, with no general text, image or annotation editing claim, and it records that saved AcroForm values stay live rather than flattened",
        "convert": "converting PDFs to images with SnackPDF, where the PDF to JPG and PDF to PNG tools render every PDF page to a separate image at 96 DPI for screen, 150 DPI for standard or 300 DPI for print, name the outputs in page order and leave the original unchanged, and the pages note that JPEG is a lossy rendered image while PNG preserves rendered pixels rather than PDF structure; the scope is image output only, with no Office, PDF/A, EPUB or other document-conversion claim",
        "extract": "extracting content from PDFs with SnackPDF, where the Extract text tool reads text objects already stored in the PDF and writes a UTF-8 text file without OCR, producing an empty result for an image-only scan, and the Extract pages tool takes page numbers or ranges in the order entered and writes one selected-pages PDF while noting that interactive and document-level structures may change; the scope records the stored-text and page-extraction routes, leaves scanned text to the OCR job and makes no structure-preservation claim",
        "protect": "protecting PDFs with SnackPDF, where the Protect PDF tool encrypts a PDF locally with PDF 2.0 AES-256, a real open password and an optional owner password, and the page and terms state that reader permissions are advisory, that conforming readers may honour them but a determined tool can ignore them, and that encryption is not redaction because anyone with the open password can see everything in the file; the scope is the documented password-protection workflow with the advisory-permission boundary, and the separate Redact tool is covered by the redaction field",
        "ocr": "running OCR with SnackPDF, where the Extract text from scanned PDF tool renders each page locally, recognises printed English text, shows the result page by page for checking and downloads a plain text file rather than a searchable PDF, and the page distinguishes it from the stored-text Extract tool; the scope records printed-English OCR with a plain-text output, makes no accuracy guarantee and claims no language beyond English"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 361,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "snackpdf.com - homepage and the tool pages for redact, fill form, OCR, extract text unlock and protect, read 2026-09-16 and 2026-09-17; plus a direct test of the redaction and form-filling tools on the same date, recorded in docs/snackpdf-verification.md.",
      "profileUrl": "https://dialegein.com/products/snackpdf/"
    },
    {
      "slug": "soda-pdf",
      "name": "Soda PDF",
      "tagline": "Subscription PDF suite with a Windows app, a browser edition and online AI tools.",
      "websiteUrl": "https://www.sodapdf.com/",
      "summary": "Soda PDF is a commercial PDF suite from Avanquest Software SAS, with a Windows desktop application for offline work and a browser edition that runs across platforms and adds cloud storage, AI document chat, translation and e-signature workflows. The current desktop release is Soda PDF 15, and the plans page sells Pro, Team and Business subscriptions with prices behind a See prices link rather than published amounts. Coverage is broad: edit, create and convert to and from Office formats, merge, split, compress, OCR, forms, batch operations, comments, redaction and two separate signing routes, a local certificate-based digital signature and the E-Sign service. The vendor confirms all plans are subscriptions and that no perpetual licence is offered.",
      "bestFor": "Offices and teams that want one vendor for both a desktop PDF editor and a browser workflow, and are willing to pay an annual subscription.",
      "watchOutFor": "Prices are not published: the plans page shows See prices for Pro, Team and Business, and the checkout redirect did not render a readable figure, so no monthly or annual price is asserted here. The site sells Soda PDF 15 while a help article updated on 10 October 2026 still describes Soda PDF 14 with Standard, Pro and Business licence names, so the plan names and allowances need checking against the checkout rather than the help centre. The free online tools are limited to 2 files a day or a 3 MB maximum, except editing, OCR, forms, reader and the AI tools, which can be tried but only downloaded, printed, emailed or saved on a paid plan. The AI assistant, translation, chat with PDF and cloud storage are online-only and depend on Soda's servers. The desktop app is Windows only; the browser app is what runs on macOS, Linux, iOS and Android, and no native builds for those platforms were found. The vendor describes 256-bit AES as the strongest PDF encryption and says 128-bit AES is no longer supported by PDF 2.0. Whiteout and redaction are separate tools: the current whiteout article says anything under the box is removed, while the record previously described whiteout as covering content, so the vendor wording is recorded rather than a behavioural claim, and the dedicated Redaction tool remains the permanent-deletion path. E-Sign and digital signatures are separate: E-Sign authenticates outside the local system and the local digital signature uses a certificate stored in Windows that can only be verified on the system it came from. The desktop app needs internet for activation and updates and Microsoft Office 2007 or later for plug-in conversion to Word, Excel and PowerPoint.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Avanquest Software SAS",
      "platforms": [
        "web",
        "windows"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "merge",
        "protect",
        "compress",
        "sign",
        "ocr"
      ],
      "jobScores": {
        "edit": 80,
        "convert": 82,
        "merge": 80,
        "protect": 78,
        "compress": 75,
        "sign": 75,
        "ocr": 70
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://support.sodapdf.com/hc/en-us/articles/360022497011-How-to-redact-my-file",
        "readAt": "2026-10-16",
        "quote": "Soda PDF Desktop has a Redaction tool. This will permanently delete information from your document. It’s the digital equivalent of redacting physical documents.",
        "caveat": "Vendor support documentation read again on 2026-10-16, not a test we ran. The sentence is identical, word for word, to PDFsam Enhanced’s and PDF Architect’s articles, which makes it stock support copy about a component the vendors may licence from the same place rather than three independent descriptions of three tested behaviours. The article describes the DESKTOP product and the Secure module, and the redaction is applied after marking; the separate whiteout tool now says anything under its box is removed, so the two tools remain distinct and whiteout is not treated as redaction."
      },
      "processesLocally": false,
      "processesLocallyNote": "It is a desktop application for Windows, and the vendor reports that desktop work is offline, with online AI and cloud features as separate surfaces. Browser access on macOS, Linux and mobile is not a native edition, so the two are recorded apart rather than represented as the same product on every platform. Whiteout is kept separate from applied redaction.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Windows desktop. On their servers: Web. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary. Soda is a trademark of Avanquest Software. The privacy policy names Avanquest Software SAS, Immeuble Adamas, 2 rue Berthelot, 92400 Courbevoie, France (RCS Nanterre), as the data controller, supported in Canada by 7270356 Canada Inc. (Avanquest Canada), and the Terms of Use are a binding agreement with 7270356 Canada Inc. (Avanquest Software), a Canadian company, last updated 5 August 2024. Plans are subscriptions called Pro, Team and Business, with no perpetual licence; the plans page shows See prices rather than amounts and the checkout did not render a readable price, so no current price is asserted. The free online tools are limited to 2 files a day or a 3 MB maximum except for editing, OCR, forms, reader and the AI tools, which require a paid plan to download, print, email or save. The desktop app is Windows only and needs internet for activation and updates and Microsoft Office 2007 or later for plug-in conversion. E-sign data is processed and stored in Canada (Ontario), signed documents and audit trails are kept up to 10 years, and unsigned or expired requests are deleted after 90 days of inactivity; web files are described as deleted within 24 hours.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows desktop",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF content with Soda PDF, where the desktop help article documents Edit mode with text font, bold and italic, font size, font colour and further adjustments including superscript and subscript, and the online PDF editor page describes editing a PDF in the browser and notes that text in a scanned PDF needs the separate OCR capability; the scope records direct text editing and formatting, leaves scanned-page text recognition to the OCR job, and makes no layout-stability guarantee",
        "convert": "converting PDFs with Soda PDF, where the PDF converter page documents converting a PDF to Word, Excel, PowerPoint, image or HTML and converting the other way, with automatic format detection and the claim that the content layout is preserved, and the desktop 15 overview lists a Create Convert ribbon tab; the desktop system requirements state that Microsoft Office 2007 or later is required for plug-in conversion to Word, Excel and PowerPoint, and the scope records the documented conversion directions with no fidelity guarantee",
        "merge": "merging PDFs with Soda PDF, where the PDF Merge page documents combining multiple PDF files, arranging the file order, optionally editing the merged document and downloading, emailing or saving the result to Soda PDF online storage, OneDrive or Dropbox, and the desktop 15 overview lists a Page tab; the scope records the documented combine, order and output operations with no claim about preserving signatures, forms or annotations across a merge",
        "protect": "protecting PDFs with Soda PDF, where the password protection page documents requiring a password to open a document, restricting permissions including editing, printing and copying while still allowing the file to be opened, and a separate unlock tool; the page describes 256-bit AES as the strongest PDF encryption and says 128-bit AES is no longer supported by PDF 2.0; the help centre documents a separate Redaction tool in the Secure module that permanently deletes information after the marked areas are applied, and a separate whiteout tool; the scope records the password and permission workflow with the vendor's encryption statement, keeps permanent deletion as the vendor's redaction claim, and does not merge whiteout into redaction",
        "compress": "compressing PDFs with Soda PDF, where the Compress PDF page documents Regular compression as an estimated 40 percent reduction that preserves good quality and High compression as up to 85 percent for maximum space or email, with the compressed result downloaded as a zipped file, and the desktop 15 overview lists a Compress tool; the scope records the two vendor-described levels and estimated reductions, and makes no lossless or guaranteed size-reduction claim",
        "sign": "signing PDFs with Soda PDF, where the desktop help centre documents two separate routes: the E-Sign module, with Sign your Document for dragging signature and initials fields and adding date, name and email, and Request Signature for sending a document package to one or more signers by email with tracking in the inbox, and a local Digital Signature that uses a certificate stored in the Windows environment and an appearance image; the E-Sign versus digital signature article says each is legally binding and explains that the local certificate can only be verified on the system it came from while E-Sign authentication is managed outside the local system, and the digital signature article says that feature is desktop only; the page also advertises signing and requesting signatures online; the scope separates E-Sign from the certificate-based digital signature and makes no independent legal-validity, certificate-authority or timestamping guarantee",
        "ocr": "running OCR with Soda PDF, where the help centre documents an OCR module with Recognize Document for scanned pages and OCR settings, with Auto and Manual recognition of individual images, and an OCR language article listing 25 detected languages: English, French, German, Italian, Portuguese, Japanese, Russian, Spanish, Arabic, Bulgarian, Catalan, Chinese Simplified, Chinese Traditional, Croatian, Czech, Danish, Dutch, Finnish, Greek, Norwegian, Polish, Slovak, Swedish, Turkish and Ukrainian, with the engine set to detect all languages by default; the article documents the language setting in both the desktop app and Soda PDF Online, and the support material also covers OCR Search and OCR Edit; the scope records the documented OCR workflow and the 25-language help list, makes no accuracy guarantee and does not claim a different language count"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 145,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "sodapdf.com (home, plans, features, privacy); Soda PDF support centre article on redaction, read via the help-centre JSON API because the HTML page returned HTTP 403.",
      "profileUrl": "https://dialegein.com/products/soda-pdf/"
    },
    {
      "slug": "solid-framework",
      "name": "Solid Framework",
      "tagline": "PDF-to-Office conversion SDK that is no longer sold separately: its technology moved into the Apryse SDK.",
      "websiteUrl": "https://www.soliddocuments.com/",
      "summary": "Solid Framework was the developer SDK behind Solid Documents' PDF conversion range, whose defining capability was reconstructing PDFs as editable Microsoft Office documents - Word, Excel and PowerPoint - while retaining the layout of the original. Around it sat end-user desktop applications: Solid Converter, Solid PDF Tools, Solid PDF to Word and Solid Automator for batch work, plus PDF/A archiving. Solid Documents joined Apryse in August 2021 and the technology was folded into the Apryse SDK; the vendor states plainly that the Solid Documents website has gone away. This record is a signpost, not a current product listing: there is no standalone Solid Framework version, price or licence to evaluate today, only legacy support/documentation/download links. A new integration should evaluate the current Apryse SDK instead.",
      "bestFor": "Existing customers looking for the SDK portal or the legacy documentation, and anyone who has found Solid Framework named in an older comparison and wants to know where the capability went. A new integration should evaluate the successor, the Apryse SDK, rather than this.",
      "watchOutFor": "This is not a current standalone product to buy. The legacy page says the website has gone away, that Apryse incorporated the technology into its core platform, and that Solid Framework is now available in the Apryse SDK. What remains is support for existing customers and links to legacy documentation/downloads; the page does not state a formal discontinuation date, current price, current version, supported platforms or when support ends. PDF-to-Office reconstruction historically covered Word/Excel/PowerPoint and PDF/A archiving via desktop, batch or .NET, but that is historical capability rather than a current documented scope; new integrations should evaluate the Apryse SDK. The record does not claim current OCR, redaction, signing, accessibility, hosted processing or data-residency guarantees.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Apryse",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 68
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.soliddocuments.com/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Left undetermined rather than recorded as `none`, which is the difference between this record and most in the index. The page read is a brand tombstone: it describes the product range as \"PDF document conversion and PDF/A archiving solutions\" and lists four legacy desktop applications, and it says nothing about content removal - but it also describes almost no functionality at all, because it is not a product page any more. `none` would assert that no redaction feature exists, and a page this thin cannot support that. The legacy documentation and the SDK downloads are still linked from the page and were not read; that is where the answer is. The successor's verdict, if any, belongs on the Apryse record, which has its own evidence."
      },
      "processesLocally": true,
      "processesLocallyNote": "Historical product shape: an SDK/desktop application consumed in the customer's own environment, with no hosted service described on the legacy page. This is an architectural description of the legacy product, not a current deployment statement or a claim about where the successor Apryse SDK processes documents.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A discontinued embedded SDK and a set of installed desktop applications. The conversion ran in the customer's own environment, and the page that remains describes a legacy download portal rather than a hosted service. Where the successor capability inside the Apryse SDK processes documents is a question for that record, not this one."
      },
      "license": "No current standalone licence is offered. Solid Framework was a commercial SDK/desktop product; Solid Documents joined Apryse in August 2021 and the technology was incorporated into the Apryse SDK. The legacy page supports existing customers with portal/download/documentation links but states no current price, version, formal discontinuation date or wind-down terms. Any new integration should evaluate the current Apryse SDK, not this legacy product.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "unknown",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "historical/legacy PDF conversion that Solid Framework and the Solid Documents desktop range provided - PDF-to-Word/Excel/PowerPoint reconstruction and PDF/A archiving via desktop, batch or .NET - as described on the current Apryse legacy page. This is not a current standalone product or current purchasable capability: Solid Framework is discontinued and its technology moved into the Apryse SDK, so the scope is retained only to describe the historical conversion role; it does not claim current OCR, redaction, signing, accessibility, hosted processing, pricing, version or support, and new integrations should evaluate the Apryse SDK"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 321,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "soliddocuments.com, read 2026-09-22 with headless Chrome (visible text 3493 bytes), cross-checked against apryse.com/brands/soliddocuments rendered the same day (also 3493 bytes of visible text). Vendor documentation, not independently tested; no SDK was downloaded, no legacy product was installed and no document was converted.",
      "profileUrl": "https://dialegein.com/products/solid-framework/"
    },
    {
      "slug": "spire-pdf",
      "name": "Spire.PDF",
      "tagline": "Commercial .NET and Java PDF library whose free edition stops at ten pages.",
      "websiteUrl": "https://www.e-iceblue.com/Introduce/pdf-for-net-introduce.html",
      "summary": "Spire.PDF is a commercial .NET PDF library from e-iceblue, distributed as the Spire.PDF NuGet package at version 12.10.0 with assemblies for .NET Framework 4.0 and 4.8 and .NET 6, 9 and 10. It runs in-process inside the caller's .NET application on Windows, Linux and macOS and needs no Adobe installation or vendor-hosted endpoint. The documented APIs create and manipulate PDFs, replace text, add annotations, form fields, pages, bookmarks, attachments and overlays, convert PDFs to Word/DOC, images, SVG, Markdown, OFD and PDF/A, linearize and grayscale PDFs, sign with X.509/PFX certificates, encrypt with user and owner passwords and permissions, and extract text, images, tables, form data and attachments. The Word converter documentation itself says it is incomplete and currently supports only paragraphs and tables. E-iceblue also sells separate Spire products, including a Java edition that this record does not audit. The previously recorded GBP 747.57 price was a synthetic conversion of USD 999 and is no longer asserted because the current vendor pricing page was Cloudflare-blocked and no current GBP price was verified.",
      "bestFor": ".NET or Java teams that want one vendor for PDF and Office formats together, and who need conversion in directions the open-source libraries handle badly - into Excel, PowerPoint or XPS, or out of HTML and SVG. It is also a reasonable fit where PDF/A output is required from a .NET application.",
      "watchOutFor": "The recorded GBP 747.57 one-off price was a synthetic conversion of a previously read USD 999 Developer Small Business price, not a vendor-published GBP figure, so it has been removed; the current vendor pricing page returned Cloudflare 403 to our fetchers, no current GBP price is verified and priceFromGbp is null with priceBasis unknown. No currency conversion is used. The vendor's previously read licensing terms describe per-developer, team and site licences, an evaluation period and an OEM subscription required for public-facing, Docker and cloud-based deployments; those terms were not re-read on the current blocked site. The free edition is limited as previously documented by the vendor: ten pages when loading or creating and three pages when converting PDF to image; the current vendor page could not be re-read, and the limit is an invocation limit rather than a quality measurement. The Word conversion API's own documentation says the feature is incomplete and currently supports only paragraphs and tables, so no full-fidelity Word-conversion claim is made. No OCR API or OCR claim is made. Digital signatures use PdfSignature with PdfCertificate and X.509 or PFX certificates; the vendor publishes no certificate-authority issuance, trust-validation or trusted-timestamp guarantee, and none is claimed. The security API exposes 40-bit, 128-bit and 256-bit encryption keys and permission flags, but no reader-enforcement guarantee is made. The EULA names e-iceblue Corporation while the package signing certificate names Chengdu E-iceblue Technology Co., Ltd; the relationship and a street address were not established because the vendor website was blocked, so the owner uses the EULA licensor and the signing identity is recorded separately. The library executes in the caller's process with no vendor-hosted service; public-facing and cloud deployment licensing is a licence-term restriction, not a processing endpoint.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "e-iceblue Corporation",
      "platforms": [
        "windows",
        "linux",
        "mac",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "protect",
        "sign",
        "extract"
      ],
      "jobScores": {
        "edit": 75,
        "convert": 80,
        "protect": 75,
        "sign": 75,
        "extract": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.e-iceblue.com/Introduce/pdf-for-net-introduce.html",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and the absence is meaningful because the feature list on this page is long and specific - signing, stamping, watermarking, portfolios, extraction, merging, splitting, metadata, tables, cropping, forms, encryption, and a dozen conversion directions - and redaction does not appear in it. That is a stronger basis than the word-in-a-list cases elsewhere in this index. What it does not establish: that no Spire product redacts. This record covers Spire.PDF, and the vendor sells several sibling libraries that were not read."
      },
      "processesLocally": true,
      "processesLocallyNote": "Libraries that run inside your own .NET or Java application. E-iceblue operates no document processing service in that path, though the same brand also sells a cloud product (Spire.Cloud) which is a separate offering and would need its own record.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Libraries that run inside your own .NET or Java application. E-iceblue operates no processing service in that path, though the same brand sells Spire.Cloud, which is a separate product."
      },
      "license": "Proprietary. The EULA bundled with the current Spire.PDF 12.10.0 NuGet package defines the licensor as e-iceblue Corporation and is governed by the laws of the State of New York. It provides evaluation, developer, developer OEM, site enterprise and site OEM licence grants, with developer and site tiers and an evaluation trial period, and the vendor's previously read licensing page says an OEM subscription is required for public-facing deployments, Docker applications and cloud-based applications. The NuGet package's code-signing certificate identifies Chengdu E-iceblue Technology Co., Ltd (Sichuan) as the signing identity; no current first-party page read in this audit states whether that entity is a subsidiary, affiliate or the same company, and the vendor website returned Cloudflare 403 to our fetchers, so the owner field records e-iceblue Corporation as the EULA licensor and the Chengdu signing identity is recorded separately rather than merged into it. The software is proprietary with no open-source licence or source distribution. The free edition is limited as previously documented by the vendor; the current vendor pages could not be re-read.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDFs with Spire.PDF, where the package metadata and XML API documentation expose PdfDocument, PdfPageBase, PdfAnnotation, PdfForm/PdfFormWidget, PdfTextReplacer, PdfTextWidget, PdfBookmark, PdfAttachment and related types for creating and manipulating PDF content, replacing text, adding annotations, form fields, pages, bookmarks, attachments and overlays, and editing document objects; the scope records the documented text-replacement, object, annotation, form and page operations in the in-process .NET library, makes no layout-fidelity guarantee and makes no OCR claim",
        "convert": "converting PDFs with Spire.PDF, where the XML API documentation documents PdfToWordConverter, PdfToDocConverter, PdfToImageConverter, PdfToSvgConverter, PdfToMarkdownConverter, PdfStandardsConverter, OfdConverter, PdfToLinearizedPdfConverter, PdfGrayConverter and PdfCompressor, and the Word converter's own summary says the feature is incomplete and currently supports only paragraphs and tables; the scope records the documented Word/DOC, image, SVG, Markdown, OFD, PDF/A, linearized-PDF, grayscale and compression conversion APIs, makes no Excel or PowerPoint converter claim because no such converter class was confirmed, and makes no fidelity or accuracy guarantee",
        "protect": "protecting PDFs with Spire.PDF, where the XML API documentation documents PdfSecurity, PdfSecurityPolicy, PdfPasswordSecurityPolicy, PdfEncryptionKeySize with 40-bit, 128-bit and 256-bit key sizes, and PdfPermissionsFlags, with Encrypt and user/owner password properties; the scope records the documented password, encryption-key-size and permission controls in the in-process library and makes no reader-enforcement, universal-compatibility or unbreakable-encryption guarantee",
        "sign": "signing PDFs with Spire.PDF, where the XML API documentation documents PdfSignature in the digital-signatures namespace and PdfCertificate with constructors from an X509Certificate and from a PFX file and password; the scope records the documented certificate-based digital-signature APIs for X.509 and PFX certificates, and makes no certificate-authority issuance, trust-validation, trusted-timestamp or independent legal-validity guarantee",
        "extract": "extracting content with Spire.PDF, where the XML API documentation documents PdfTextExtractor.ExtractText and Extract, PdfImageHelper.GetImagesInfo, PdfTableExtractor.ExtractTable, PdfForm/PdfFormWidget and PdfAttachment types; the scope records the documented text, image, table, form and attachment extraction APIs in the in-process library, and makes no OCR claim and no accuracy guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "blocked",
        "label": "blocked",
        "httpStatus": 403,
        "latencyMs": 88,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 0
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "e-iceblue.com: the vendor home page and the Spire.PDF for .NET introduction page, read 2026-09-22 with headless Chrome, including the feature list, conversion matrix and the free-version limitation. Vendor documentation, not independently tested; no package was installed and no document was processed.",
      "profileUrl": "https://dialegein.com/products/spire-pdf/"
    },
    {
      "slug": "stirling-pdf",
      "name": "Stirling PDF",
      "tagline": "Open-source PDF suite you can self-host, run as a desktop app, or use via API.",
      "websiteUrl": "https://www.stirling.com/",
      "summary": "Stirling PDF is an open-core PDF toolkit that runs as a desktop app, a browser interface, or a server you host yourself. It bundles 50+ tools - merging, splitting, converting, OCR, compression, redaction and signing - and exposes them through a web UI, a REST API and no-code pipelines. The Free plan covers web, desktop and self-hosted use for individuals with 1,000 monthly credits, Team is USD 99 per month for up to 100 users, Enterprise is agreed with Stirling PDF, and the separate PDF Processor is billed at 1 US cent per credit.",
      "bestFor": "Teams that want a PDF toolkit inside their own infrastructure, with an API and automation rather than a consumer web service.",
      "watchOutFor": "The desktop app runs supported tools locally, but a documented list of tools and options needs Stirling Cloud or a server: OCR, converting Office documents, eBooks, HTML, web pages or email to PDF, converting PDF to Word, PowerPoint, RTF, HTML, Markdown, XML, PDF/A, EPUB or CBR, Repair, Detect and Split Scanned Photos, Replace and Invert Color, and the Convert images to line art option in Compress. In Local Only mode unsupported tools carry a cloud badge and running one asks the user to sign in to Stirling Cloud or connect to a server, and an administrator can enable local document processing that hides or blocks them. OCR language availability depends on the Tesseract packs installed on the server: the standard Docker images include English, German, French, Portuguese and Simplified Chinese and the ultra-lite image carries no OCR. Certificate signing and trusted timestamping depend on the server administrator's certificate, trusted CA and timestamp-server configuration. On self-hosting, the 2.x server release needs a Java 25 runtime and will not start on Java 21, which was verified by running the 2.14.3 release jar locally.",
      "pricingModel": "freemium",
      "priceFromGbp": 73.43,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Stirling PDF, Inc.",
      "platforms": [
        "web",
        "windows",
        "mac",
        "linux",
        "api",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "merge",
        "compress",
        "convert",
        "sign",
        "ocr",
        "protect"
      ],
      "jobScores": {
        "edit": 85,
        "merge": 80,
        "compress": 75,
        "convert": 75,
        "sign": 65,
        "ocr": 70,
        "protect": 75
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "tested",
        "source": null,
        "readAt": "2026-09-16",
        "quote": null,
        "caveat": "Tested against our own instance of the official release. It deletes the marked text from the page structure and paints a fill where it was, so the page is not flattened and lines outside the box keep their text. One document, one instance."
      },
      "processesLocally": true,
      "processesLocallyNote": "The published locality verdict comes from our own self-hosted test on 22 September 2026: a compress run sent the file to localhost:8080 and nowhere else. The editions differ in mode rather than all behaving alike. The Windows, macOS and Linux desktop apps run the tools their built-in engine supports on the device, with unsupported tools cloud-badged or server-bound. The self-hosted server runs the tools on the customer's own infrastructure. Stirling Cloud is a separate hosted service used for tools the local engine cannot run and for AI, processing folders and pipelines, and it consumes credits. Because the product spans local, self-hosted and hosted modes, the edition processing states are left unknown and the mode detail is recorded here rather than collapsed into one verdict; the tested verdict describes the self-hosted edition we ran.",
      "locality": {
        "verdict": "sent_to_local_instance",
        "label": "went to our own instance, and nowhere else",
        "testedAt": "2026-09-22T14:17:07.698Z",
        "method": "Playwright with a uniquely marked test PDF. Chromium does not expose file bytes to the debugger, so we observe that a multipart request carried a redacted file part and record the host it went to. We cannot confirm the contents."
      },
      "license": "Open-core. The core is MIT-licensed, copyright Stirling PDF Inc., with separate licences for content under the app/proprietary/, app/saas/, engine/ and frontend/editor/src/proprietary/ directories as set out in the repository LICENSE, and the Terms of Service state that some components may be offered under separate open-source licences. The hosted services are governed by the Stirling PDF, Inc. Terms of Service v1.1.0 dated 8 August 2026 under Delaware law, and the terms say that on self-hosted deployments file content and file names remain in the customer environment while licence-validation and usage-metering data are transmitted. Current plans are Free at USD 0 with 1,000 monthly credits, Team at USD 99 per month with 100 users included, Enterprise priced by agreement, and PDF Processor at 1 US cent per credit prepaid or pay-as-you-go.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "http"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "unknown",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "unknown",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "unknown",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "api",
          "name": "API",
          "processing": "unknown",
          "platforms": [
            "api"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF content with Stirling PDF, where the Content and editing documentation describes a PDF Text Editor that lets the user edit the existing text and images of a PDF, with a warning that the feature is in alpha and that fonts and layout can shift, plus adding images in PNG, JPEG, GIF, BMP, TIFF and SVG, extracting images, adding text, adding text or image stamps with position, size, rotation, opacity and dynamic variables, annotating with highlights, drawings, notes and shapes, removing images and annotations, and editing metadata and bookmarks; the scope records the existing-text editing with the alpha layout warning, and leaves OCR of scans to the OCR job, with no layout-stability guarantee",
        "merge": "merging and splitting PDFs with Stirling PDF, where the Page operations documentation describes Merge joining two or more PDFs in the order shown with drag reordering or sort by file name or date, an optional table of contents with clickable bookmarks and an option to remove digital signatures that merging breaks anyway, and Split with page numbers, chapters, sections grid, file size, page count, document count, QR divider sheets and printable chunks methods, plus Reorganize Pages with custom order, reverse, duplex sort and odd-even modes, rotate and auto rotate; the scope records the documented merge, split and page operations and notes that merging breaks digital signatures",
        "compress": "compressing PDFs with Stirling PDF, where the Compress documentation describes a Quality method with a Quality Adjustment slider from 1 to 9 defaulting to 5 where higher levels give smaller files but can blur images, a File Size method that takes a desired size in KB or MB, options for grayscale, linearization for fast web viewing and conversion of images to line art with a detail level from 1 to 5 and gentle, balanced or strong edge emphasis, and notes that the line-art option is unavailable where the tool cannot run it and that scans should be OCRed before compression; the scope makes no lossless or size-reduction guarantee",
        "convert": "converting documents with Stirling PDF, where the Convert documentation lists conversion to PDF from Office formats DOCX, DOC, ODT, XLSX, XLS, ODS, PPTX, PPT, ODP, TXT and RTF, images JPG, JPEG, PNG, GIF, BMP, TIFF, WEBP and SVG, HTML and Markdown, email EML and MSG, eBooks EPUB, MOBI, AZW3 and FB2, and comics CBZ and CBR, with colour, fit, auto-rotate and combine options, and conversion from PDF to Office DOCX, ODT, PPTX, ODP, XLSX and CSV, text TXT, RTF and Markdown, images PNG, JPG, GIF, TIFF, BMP and WEBP at 72 to 600 DPI (default 300), HTML and XML, PDF/A, PDF/X and PDF/UA, and EPUB, AZW3, CBZ and CBR; Office and the listed route conversions normally need LibreOffice on a server or the cloud, and the scope makes no fidelity guarantee",
        "sign": "signing PDFs with Stirling PDF, where the Sign documentation describes drawing, typing or uploading a visible signature (PNG, JPG or WebP with white backgrounds removed), scanning a QR code to sign on a phone, saving up to 20 signatures when signed in or 10 in the browser without signing in, and placing the signature repeatedly on any page and resizing it, while warning that the visible signature can be copied by anyone; the separate Certificate signing documentation describes signing with a PKCS12/PFX, PEM or JKS certificate from an upload, a server-held certificate or a device or USB token in the desktop app, with visible or invisible appearance, trust and revocation checks and RFC 3161 trusted timestamps set by the server administrator, and a validation tool that checks who signed and whether the file changed; the scope separates the visible electronic signature from the certificate signature and makes no certificate-authority or independent timestamping guarantee",
        "ocr": "running OCR with Stirling PDF, where the OCR documentation describes choosing every language that appears in the document (at least one is required), Auto, Force and Strict modes, and options for compatibility mode, a separate text file, deskewing, cleaning the input and cleaning the final output, with OCR my PDF used when installed and Tesseract otherwise; the OCR languages documentation says the tool can only offer languages whose Tesseract language pack is installed, that the standard Docker images include English, German, French, Portuguese and Simplified Chinese, that the ultra-lite image has no OCR, and that additional tessdata languages can be downloaded or mounted, while the desktop documentation says OCR usually needs Stirling Cloud or a server; the scope makes no accuracy or universal language-count claim",
        "protect": "protecting PDFs with Stirling PDF, where the Signing and security tools documentation describes Add Password with a user password needed to open the file and an owner password controlling what can be done once open, Change Permissions to allow or block printing, copying, editing, form filling and other actions, Sanitize to remove JavaScript, embedded files, links, metadata and fonts, Flatten to merge form fields and interactive elements into the page, and Unlock PDF Forms, with separate tools to remove a password and to remove certificate signatures; the scope records the documented password, permission and sanitisation tools, leaves the black-box redaction tool to the redaction field, and makes no claim about which readers enforce the permission flags or about an encryption algorithm"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 197,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "stirling.com; docs.stirlingpdf.com (Modes and Licensing, Paid Offerings, Security); github.com/Stirling-Tools/Stirling-PDF README and LICENSE. Vendor claims, not independently verified. Redaction tested directly against our own local instance on 2026-09-16 - see docs/redaction-verification.md.",
      "profileUrl": "https://dialegein.com/products/stirling-pdf/"
    },
    {
      "slug": "sumatrapdf",
      "name": "SumatraPDF",
      "tagline": "Free, open-source, lightweight PDF and ebook reader for Windows.",
      "websiteUrl": "https://www.sumatrapdfreader.org/free-pdf-reader",
      "summary": "SumatraPDF is a small, fast, open-source Windows reader for PDF, EPUB, MOBI, comic archives, DjVu, XPS, CHM and images, with a portable build that runs from a USB stick without installation. The current stable release is 3.6.1; annotations, highlights, notes, stamps, images and ink have been supported since 3.3 and can be saved back to the PDF. A 3.7 pre-release adds a documented set of command-line and GUI tools for merging, splitting, compressing, converting, extracting, redacting, password encryption and certificate-based digital signing. There is no OCR and no cloud service, although the AI chat sidebar sends document context to a network service.",
      "bestFor": "Windows users who want a very fast, ad-free reader for large or unusual documents, and who are comfortable with a command line for occasional PDF surgery.",
      "watchOutFor": "Windows only, with native Windows 7, 8, 10 and 11 builds for 32-bit, 64-bit and ARM64 and a portable option; macOS, Linux and Android are explicitly ruled out, and there is no OCR. The more advanced modification tools are documented for the 3.7 pre-release rather than the current stable 3.6.1 build: the command-line tools for merge, split, compress, convert, extract, encrypt/decrypt, sign and redact are pre-release features, so a stable-reader user should not expect them automatically. Redaction there is vendor-documented applied removal in the pre-release and has not been independently tested, so it is recorded as unverified rather than as a product-wide removal claim. Certificate signing is a 3.7 pre-release CLI feature using certificates from the Windows certificate store or PFX/P12 files, with no certificate-authority, trust-validation or timestamping guarantee. Annotations are long-standing stable features and are not the same as editing body text. Reading and processing are local, but the optional AI chat sidebar deliberately sends document context to a third-party network service, so the local-processing claim is conditional for that one feature. The project is maintained by an individual, Krzysztof Kowalczyk, with no corporate legal entity beyond the maintainer and the SumatraPDF Project Authors; the licence is GPLv3 with BSD-licensed components and bundled third-party notices.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Krzysztof Kowalczyk",
      "platforms": [
        "windows"
      ],
      "launchedYear": 2006,
      "primaryJob": "view",
      "jobs": [
        "view",
        "convert",
        "compress",
        "merge",
        "edit",
        "protect",
        "sign"
      ],
      "jobScores": {
        "view": 85,
        "convert": 65,
        "compress": 60,
        "merge": 60,
        "edit": 55,
        "protect": 55,
        "sign": 55
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.sumatrapdfreader.org/docs/Redact-a-PDF",
        "readAt": "2026-10-16",
        "quote": null,
        "caveat": "The vendor documents an applied redaction tool in the 3.7 pre-release rather than the current stable 3.6.1 build, and this audit did not test the output. The verdict is therefore not a product-wide removal claim: stable users do not have it, and what the pre-release does to the underlying content has not been checked here. The merge and compression tools carry the same version restriction."
      },
      "processesLocally": true,
      "processesLocallyNote": "A local Windows application with no cloud service. One exception comes from the pre-release AI chat sidebar: the developers state SumatraPDF does not send your files to its own servers, but the feature does hand document context to whichever third-party agent tool the user has installed, such as Claude Code or OpenAI Codex.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A local Windows application with no cloud service. One caveat worth keeping: the pre-release AI chat sidebar hands document context to a third-party agent tool, though not to SumatraPDF servers."
      },
      "license": "GPL-3.0, with some code under BSD. The repository COPYING file is the full GNU GPL version 3 text, COPYING.BSD covers BSD-licensed components, and the README describes SumatraPDF as a multi-format reader for Windows under the (A)GPLv3 license with some code under the BSD license (see AUTHORS) and names the SumatraPDF Project Authors rather than a company. GitHub metadata reports GPL-3.0. Bundled third-party components carry their own licences and notices. There is no corporate legal entity behind the project beyond the individual maintainer and project authors, and the software is free and open source with no ads, bundled software or subscription.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing documents with SumatraPDF, where the current stable 3.6.1 release documents support for PDF, EPUB, MOBI, comic-book archives CBZ and CBR, DjVu, XPS, CHM and images, with tabs and windows, viewing modes, scrolling and zooming, thumbnails, text search, hyperlinks, favourites, printing and read-aloud, in a native Windows 7, 8, 10 and 11 application with 32-bit, 64-bit and ARM64 builds and a portable option; the scope is the documented multi-format reader and does not claim editing, OCR or conversion",
        "convert": "converting documents with SumatraPDF, where the 3.7 pre-release Convert tool documentation documents converting between document formats, images, comics and text: PDF to images and PDF to grayscale, images to PDF, comics to PDF, EPUB to PDF, and text files to PDF, with command-line options and output formats selected by extension; the scope records the documented conversion directions as a pre-release command-line tool, notes that conversion is not present in the current stable 3.6.1 build, and makes no fidelity guarantee",
        "compress": "compressing PDFs with SumatraPDF, where the 3.7 pre-release compression documentation documents reducing PDF file size by cleaning, recompressing images and removing or rewriting document data through the compress command and options, and a corresponding GUI path; the scope records the documented pre-release compression capability rather than a stable 3.6.1 one and makes no lossless or specific size-reduction guarantee",
        "merge": "merging PDFs with SumatraPDF, where the 3.7 pre-release merge tool and Merge PDF window documentation documents merging pages from multiple files, choosing the input files and page ranges and writing a combined PDF, including the command-line merge tool; the scope records the documented merge operation as a 3.7 pre-release capability rather than a current stable 3.6.1 one, and makes no claim about preserving signatures, forms, links or annotations across a merge",
        "edit": "editing annotations with SumatraPDF, where the Editing annotations documentation says annotations, highlights, notes, stamps, images and ink can be added, changed and saved back to PDF files from the context menu, keyboard or Edit PDF toolbar, and that this is available in version 3.3 or later in the current stable line, while the 3.7 pre-release adds signature-image stamping and predefined text snippets; the scope covers annotation and markup editing of PDFs, not rewriting existing body text, and keeps the 3.3-plus boundary",
        "protect": "protecting PDFs with SumatraPDF, where the 3.7 pre-release encryption documentation documents encrypting a PDF with a password and decrypting a protected PDF, with the command-line encrypt and decrypt tools and a GUI path; the scope records the documented pre-release AES password protection and decryption capability rather than a stable 3.6.1 one, and makes no reader-enforcement, permission or key-management guarantee beyond the documented password operation",
        "sign": "signing PDFs with SumatraPDF, where the 3.7 pre-release signing documentation documents digitally signing a PDF with a certificate from the Windows certificate store or from a PFX/P12 file, including the command-line sign tool, with a visual signature appearance and PKCS#7 signature; the scope records the documented pre-release certificate-based signing capability rather than a stable 3.6.1 one and makes no certificate-authority, trust-validation, timestamping or independent legal-validity guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 506,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "sumatrapdfreader.org (free-pdf-reader, documentation, version history, why-only-Windows, editing-annotations, AI chat, encrypt tool page); repository COPYING file. Licence from the repository.",
      "profileUrl": "https://dialegein.com/products/sumatrapdf/"
    },
    {
      "slug": "surya",
      "name": "Surya",
      "tagline": "Open document OCR and layout model that returns text, reading order and tables as structured output.",
      "websiteUrl": "https://github.com/datalab-to/surya",
      "summary": "Surya is a document OCR and analysis toolkit built on a 650-million-parameter vision-language model. It reads a page and returns structured JSON/HTML: text, layout labels and reading order for each block, table rows/columns, and mathematics as LaTeX/HTML. It runs from the command line or Python, and needs an inference server - vLLM on a GPU or llama.cpp on CPU/Apple Silicon - which it starts locally by default; SURYA_INFERENCE_URL can point at another server. Inputs can be images, PDFs or folders of them; output is JSON (with optional page/block images), not a searchable PDF. Current PyPI release is 0.22.1 (20 July 2026; Python >=3.10), code Apache-2.0 with OpenRAIL-M weights. The model reports OCR/layout/reading-order/table recognition for 91 languages; those are vendor benchmarks. It is an OCR/layout toolkit, not a PDF editor, searchable-PDF writer, redaction/signing tool or hosted OCR service; Datalab's managed platform is separate.",
      "bestFor": "Teams building a document pipeline who need reading order and table structure rather than raw text, and who are willing to run a model to get it. It is built for hard pages: multi-column layouts, scanned tables and old mathematics, on documents in any of the 91 languages the vendor benchmarks.",
      "watchOutFor": "The licence is split: code Apache-2.0, but the weights use a modified AI Pubs Open RAIL-M licence that is free for research/personal use and organisations under the stated revenue/funding threshold, restricts competing products/services, and requires a commercial licence from Datalab above that line. It expects an inference backend - vLLM/GPU or llama.cpp/CPU - and the package's performance figures assume a running server, not a laptop. Output schemas have changed between versions (text_lines became blocks, table cells lost header/span attributes), so JSON consumers must budget for migrations. It recognises text/layout/tables but does not write a searchable PDF or edit/redact/sign PDFs; multilingual and accuracy figures are the vendor's own benchmarks, and handwriting coverage is not separately established. Datalab's managed platform is a different hosted service, not the local package. SURYA_INFERENCE_URL can move inference off the machine, so local processing is configuration-dependent.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Endless Labs, Inc. dba Datalab",
      "platforms": [
        "linux",
        "windows",
        "mac",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "ocr"
      ],
      "jobScores": {
        "extract": 85,
        "ocr": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://github.com/datalab-to/surya",
        "readAt": "2026-09-22",
        "quote": "Surya is a 650M param OCR model with these features: Accuracy - scores 83.3% on olmOCR-bench (top under 3B params); Layout analysis (table, image, header, etc.) with reading order; Table recognition (rows + columns)",
        "caveat": "Recorded as `none` on absence: Surya reads page images and emits text, layout, reading order and tables as JSON or HTML, and nothing in its documentation describes editing a PDF or removing content from one. It is a reader, and it does not write PDFs. What it does not establish: anything about the safety of its output. The reading text it extracts is the document's content, so this is an extraction tool in the same sense as Tika and pdfminer.six, and the same warning applies - reading a document is not redacting it."
      },
      "processesLocally": true,
      "processesLocallyNote": "The package runs the model on the caller's own hardware. It auto-spawns a local inference server (vLLM on NVIDIA GPU or llama.cpp on CPU/Apple Silicon) by default, but SURYA_INFERENCE_URL can point it at a server elsewhere, so an operator can send documents off the machine by configuration. Datalab's managed platform is a separate hosted product. Local processing is the documented default, not an absolute no-network guarantee.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An OCR and layout model that runs on your own hardware. It does need an inference backend - vLLM or llama.cpp - which it starts as a local process, and the documentation allows pointing it at a server elsewhere through an environment variable, but no vendor service receives the document by default."
      },
      "license": "Apache-2.0 for the Surya code; model weights under a modified AI Pubs Open RAIL-M licence (free for research, personal use and organisations under the stated funding/revenue threshold, with a competing-products restriction). Broader commercial use requires a licence from Datalab. The package itself needs no account; Datalab's managed platform is a separate paid hosted product, not this package.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting layout-aware structured document content with Surya: taking image/PDF page inputs and returning JSON/HTML blocks with text, layout labels, reading order, bounding boxes/polygons, table rows/columns and mathematics as LaTeX/HTML. The scope records layout analysis, reading-order and table/math extraction output plus the local package/CLI; it does not claim searchable-PDF creation, PDF editing, redaction, signing, conversion to Office formats, hosted API use or benchmark accuracy, and it treats the schema/output as model-generated rather than a guaranteed document reconstruction",
        "ocr": "running text recognition on document page images/PDFs with Surya: loading a page, recognising text and returning JSON text with bounding boxes/polygons for each block/line, alongside language support reported for 91 languages. The scope records OCR/text recognition as a distinct output from layout/table extraction; it does not claim searchable-PDF creation, handwriting-specific accuracy, PDF editing, redaction, signing, accessibility validation or hosted OCR service, and accuracy figures are vendor benchmarks"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 399,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://pypi.org/project/surya-ocr/ (0.22.1, 20 July 2026, Python >=3.10, Apache-2.0, OCR/layout/reading-order/table recognition 90+ languages; read 2026-10-16); https://github.com/datalab-to/surya (Apache-2.0, created 2024-01-10, last push 2026-09-11, latest release v0.22.1; read 2026-10-16); README (650M model, 91-language benchmark, image/PDF inputs, JSON/HTML blocks/reading order/tables, vLLM/llama.cpp, SURYA_INFERENCE_URL, licence split; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/surya/"
    },
    {
      "slug": "swiftscan",
      "name": "SwiftScan",
      "tagline": "Phone scanner for documents and QR codes, with OCR, signing and fax.",
      "websiteUrl": "https://swiftscan.app/en",
      "summary": "SwiftScan is a phone-first scanner for iOS (iPhone and iPad) and Android for documents, receipts, business cards, whiteboards and QR or barcodes, with automatic capture, perspective correction, colour filters and PDF or JPEG output. It extracts text with an on-device OCR engine supporting 60+ languages for searching and copying, and lets you draw, highlight, add text and notes, insert an electronic signature, redact, password-protect, reorder pages, merge documents and send faxes. Documents can auto-upload to iCloud, Google Drive and other cloud services, and the premium AI summarise and translate tools require Apple Intelligence. The current iOS App Store version is 9.6.82. SwiftScan Plus on iOS or SwiftScan VIP on Android is the paid tier, with a free download, a free trial and a limited free tier.",
      "bestFor": "People who want a fast everyday phone scanner that also handles OCR, light editing, signing and fax without leaving the app.",
      "watchOutFor": "The recorded price is the cheapest current paid plan found, SwiftScan VIP Monthly at GBP 5.99 in the UK App Store and USD 5.99 in the US store, but there are several separate Plus, Pro and VIP monthly or annual plans plus one-off purchases and fax credits, so GBP 5.99 is not a general from-price for every tier and other plans cost more. The app is free to download with a limited free tier, subscriptions include a 7-day free trial in the vendor's support description, and the Plus/VIP plan removes watermarks and unlocks features such as OCR, merge and unlimited scans; the vendor's own plan descriptions do not map every feature to every tier. OCR runs on-device with 60+ supported languages, but the vendor publishes no accuracy figure, Android chooses the OCR language from the phone language rather than a picker, and the feature is gated behind Plus on iOS or VIP on Android for new users. Redaction is a restyleable fill box that the vendor describes only as hiding content, so it is recorded as covers-content rather than permanent removal and cannot be relied on as secure redaction. The new AI summarise and translate tools require Apple Intelligence, a supported device on iPadOS or iOS 26 or later, and a Plus subscription; the vendor does not state whether those AI features process on-device or use a server, so no local-processing claim is made for them, and the site's blanket statement that document data is never sent to a third party is not extended to the AI tools in this record. Faxing sends the document to a fax service and costs credits. Cloud auto-upload is optional and the user chooses the service. The iOS and Android apps are the only native surfaces: documents reach a desktop through iCloud or cloud sync, not through a native desktop app. Passcode/TouchID locks the app and the vendor also advertises protecting PDF scans, but no encryption algorithm or reader-enforcement detail is published. Signing is an electronic signature image, not a certificate-based digital signature, and no signature validation or certificate-authority claim is made.",
      "pricingModel": "freemium",
      "priceFromGbp": 5.99,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Maple Media LLC",
      "platforms": [
        "ios",
        "android"
      ],
      "launchedYear": 2014,
      "primaryJob": "ocr",
      "jobs": [
        "ocr",
        "view",
        "edit",
        "merge",
        "protect",
        "sign"
      ],
      "jobScores": {
        "ocr": 80,
        "view": 70,
        "edit": 66,
        "merge": 64,
        "protect": 64,
        "sign": 62
      },
      "redaction": "unverified",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": null,
        "source": null,
        "quote": null,
        "caveat": "Downgraded from covers_content on 2026-09-22. The vendor’s help says \"Redaction: Hide sensitive information by dragging over the area you want to redact\", and offers to \"change the redaction style\". Neither distinguishes covering from removing: \"hide\" is the same word two other verdicts in this index were downgraded for, and a style or colour option is neutral - Adobe removes content and still lets you colour its marks. We have not tested this tool and its documentation does not say, so it is not a verdict we can stand behind in either direction."
      },
      "processesLocally": true,
      "processesLocallyNote": "Stated by the vendor: no data in your documents is sent to them or a third party, and text recognition is done directly on the device. The App Store description repeats that all document-related activity happens on the device or with the cloud backup provider you choose. Caveat: the same listing advertises AI tools that summarise and translate documents, which are not described as on-device.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "A mobile app, so a browser probe cannot drive it. Its vendor claims everything including text recognition happens on the device, but it also advertises a redaction feature whose permanence we could not establish."
      },
      "license": "Proprietary. Maple Media LLC, 9570 West Pico Blvd, Los Angeles, CA 90035 USA, is the entity responsible for processing named in the Maple Media privacy policy, and the Apple App Store lists the seller as Maple Media Apps, LLC, a related Maple Media entity used for store distribution. Maple Media's Terms of Service have an effective date of October 2023 and cover both Apple App Store and Google Play purchases. The app is free to download with in-app purchases: the UK App Store lists SwiftScan VIP Monthly at GBP 5.99, plus annual VIP and multiple Plus and Pro plans, annual Plus, one-off Pro purchases and fax credits; the US store lists SwiftScan VIP Monthly at USD 5.99. Subscriptions include a free trial, and the support centre describes a 7-day trial. No open-source licence or source distribution is published.",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "us",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "ios",
          "name": "iOS",
          "processing": "in_process",
          "platforms": [
            "ios"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "android",
          "name": "Android",
          "processing": "in_process",
          "platforms": [
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "running OCR with SwiftScan, where the SwiftScan Plus OCR support article says OCR operations are conducted exclusively locally on the device with no data transmitted to external servers, and that SwiftScan supports more than 60 languages, with the Android language article listing the supported languages and explaining that Android automatically uses the phone's default language rather than offering a language picker; the feature requires SwiftScan Plus on iOS or SwiftScan VIP on Android, and text recognition makes scans searchable and copyable. The scope records the on-device OCR, the 60+ language claim and the Android automatic-language behaviour, notes the Plus/VIP entitlement and makes no accuracy guarantee or claim about languages outside the vendor's list",
        "view": "viewing scans and documents with SwiftScan, where the product page and features page document an iPhone, iPad and Android scanner and mobile PDF/document workspace for opening saved scans, reviewing them, reading them, searching recognised text, organising documents in folders and viewing PDFs or JPEG scans; the scope records the mobile viewer and document-organisation functions on iOS and Android and does not claim a native macOS or web application, because the only native apps are the iOS and Android apps and the Mac or Windows access is through iCloud or cloud sync",
        "edit": "editing scans with SwiftScan, where the advanced-editing and edit-scan support articles document Draw for handwritten marks and annotations, Redaction for hiding areas, Text for adding text, Notes, Signature, Color Filters, Rotate, Add Pages and other scan-review tools, and the features page documents highlight and pen drawing; the scope records the annotation, drawing, text-addition, notes, signature, colour, rotation and page operations on saved scans and documents, makes no existing-body-text rewrite claim, and leaves the redaction permanence question to the redaction field rather than treating the vendor's hide wording as deletion",
        "merge": "merging documents with SwiftScan, where the Merge Documents support article documents selecting multiple documents, choosing Merge, dragging them into the desired order, choosing whether to keep the originals and saving the merged document, and the features page documents multi-page documents and adding, removing and rearranging pages; the scope records the documented app-document merge and page reordering and makes no claim about preserving signatures, forms, links or annotations across a merge or about merging arbitrary external PDFs beyond what the app documents",
        "protect": "protecting documents with SwiftScan, where the features page documents Passcode and TouchID locking of the app and says the user can protect PDF scans too, and the Plus feature list describes password protection; the scope records the app passcode/biometric lock and the advertised PDF-scan protection, notes that the vendor publishes no encryption algorithm or reader-enforcement detail, and makes no claim that the PDF protection is unbreakable or that it enforces permissions in third-party readers",
        "sign": "signing documents with SwiftScan, where the Plus features and Premium features pages describe an electronic signature feature for adding a signature to documents directly from the phone or tablet, and the advanced-editing article lists Signature among the editing tools; the scope records the visual electronic signature insertion into scans and documents, and because the vendor describes an electronic signature rather than certificate-based digital signing, it makes no certificate-authority, cryptographic-validation, timestamping or legal-validity guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 350,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "swiftscan.app (home, features); the vendor's help centre; the Apple App Store listing and lookup record; Maple Media's corporate privacy policy.",
      "profileUrl": "https://dialegein.com/products/swiftscan/"
    },
    {
      "slug": "syncfusion-pdf",
      "name": "Syncfusion PDF",
      "tagline": "The PDF library inside Essential Studio, sold as part of the Document SDK rather than on its own.",
      "websiteUrl": "https://www.syncfusion.com/document-sdk/net-pdf-library",
      "summary": "Syncfusion's PDF library is a managed C# library for creating, reading and editing PDFs with no Adobe dependency, usable across .NET Framework through .NET 10 in WinForms, WPF, ASP.NET, Blazor, MAUI and Unity, with a separate JavaScript edition. Its documented range is unusually wide for a single library: HTML, Word, Excel, PowerPoint and XPS to PDF conversion, forms including XFA, text and image extraction, Tesseract-based OCR through a separate OCR Processor library in the same suite, digital signatures, encryption, PDF/A and PDF/UA conformance, and a redaction API that removes the underlying content inside the redaction rectangle. It is not sold as a standalone product. The PDF library is one of several libraries in the Document SDK licence, which also covers Word, Excel, PowerPoint, Markdown and data extraction, and it is part of the larger Essential Studio suite of over 1,600 components.",
      "bestFor": "Teams already inside, or willing to buy into, the Syncfusion ecosystem who need PDF alongside Word, Excel and PowerPoint processing under one per-developer licence, and small companies or individuals who qualify for the free Community License. It is the cheapest way in this batch to get a commercial-grade .NET PDF library with genuine redaction, provided the developer minimum and the non-perpetual terms work for you.",
      "watchOutFor": "You cannot buy this PDF library on its own, and you cannot buy it for fewer than five developers. The published figure, US$1,199 per developer per year, is the price of the whole Document SDK - PDF, Word, Excel, PowerPoint, Markdown and data extraction - so a team that only wants PDF is paying for four document libraries it will not use. The five-developer minimum turns that headline into roughly US$5,995 in year one, for a subscription that must stay active: the EULA requires customers to embed licence checks in shipped assemblies and to build in technical mechanisms that stop documents being created once the subscription lapses, and customers with Team, Project, Division or Global licences may not continue distributing applications that depend on the library after the term ends. A perpetual licence this is not. The Community License is a separate route from the paid subscription and it has eligibility conditions rather than being free for all use: below one million US dollars in annual gross revenue, at most five developers and ten employees, and no more than three million dollars of outside capital, with vendor-specific conditions for clients and government work. A team that qualifies should not be told the paid developer minimums and distribution restrictions apply to it.",
      "pricingModel": "paid",
      "priceFromGbp": 889.3,
      "priceBasis": "year",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Syncfusion, Inc.",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted",
        "web"
      ],
      "launchedYear": 2001,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "merge",
        "sign",
        "protect",
        "compress",
        "extract",
        "ocr",
        "accessibility"
      ],
      "jobScores": {
        "edit": 88,
        "convert": 88,
        "merge": 85,
        "sign": 85,
        "protect": 82,
        "compress": 80,
        "extract": 78,
        "ocr": 70,
        "accessibility": 70
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://help.syncfusion.com/document-processing/pdf/pdf-library/javascript/redaction",
        "quote": "Redacting a PDF is the process of permanently removing sensitive or confidential information from a PDF document. … The JavaScript PDF Library supports permanent redaction of PDF documents, including text, images, and metadata, by defining redaction regions and applying an irreversible overlay on top of the original content.",
        "caveat": "Vendor documentation for a developer library, not a test we ran. Two limits the page states and the verdict does not: redaction requires an add-on package installed separately, and the mechanism is described as an \"irreversible overlay\". Overlay is the word covering tools use, and the sentence asserts irreversibility rather than showing it - the distinction this index exists to draw."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: a licensing-and-NuGet-deployed .NET library that runs in the customer's own process on the customer's own servers, with no hosted component and no per-server deployment fee. The docs describe it as usable from WinForms, WPF, ASP.NET, Blazor, MAUI and Unity and emphasise that it works without Adobe or any third-party service, and the redaction tutorial states that all operations run locally. Two exceptions to name, because a reader will otherwise assume they are covered: the vendor hosts a set of free browser PDF tools (merge, compress, unlock, organise, XPS-to-PDF) on its own website, which are a separate product that uploads your file, and the PDF Viewer SDK's AI-driven document features are marketed as being able to reach enterprise AI systems, which is a different product from this library. The library itself also phones home in one routine way, licence validation against a Syncfusion licence key.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An in-process .NET library running on the customer's own servers, with no server deployment fee. Worth keeping in the note: the vendor also publishes free browser PDF tools that do upload, and they are a separate product from this library."
      },
      "license": "Proprietary commercial. Annual per-developer subscription with a five-developer minimum, sold by SKU (Document SDK, PDF Viewer SDK, and the rest of Essential Studio) rather than per library. Community License available free of charge under revenue, headcount and outside-funding limits. Distribution is permitted embedded in customer products only while the subscription is active.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": true,
      "watermarkOnFree": true,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "yes",
          "licenceComponents": []
        },
        {
          "id": "web",
          "name": "Web (Blazor and ASP.NET)",
          "processing": "customer_server",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing PDF documents with the Syncfusion .NET PDF Library, where the vendor's documentation for the library (updated 13 October 2026) says it can create, read and write PDF and lists support for adding text, images, tables and shapes, opening, modifying and saving existing PDFs, creating, filling and flattening forms including AcroForms and XFA, adding and modifying bookmarks, annotations, attachments, layers, hyperlinks, watermarks and barcodes, creating linearized PDFs, and compressing documents; the Edit PDF product page adds adding, removing and rearranging pages, applying watermarks and stamps, inserting, deleting, extracting and replacing images and adding or removing attachments; the documented editing is content creation and document modification through the library's APIs, and no claim is made of in-place editing or reflow of arbitrary existing text, of a user interface, or of an accuracy figure",
        "convert": "converting documents to and from PDF with the Syncfusion .NET PDF Library, where the library overview lists conversion of HTML, RTF, Word, Excel, PowerPoint, SVG and XPS to PDF, and the document conversion page documents each direction with its required assemblies, including the limitation that Excel to PDF conversion works only in Blazor server-side and not in Blazor client-side, and names unsupported RTF elements; the product page adds conversion of images and TIFF to PDF and PDF to image through PdfToImageConverter, and conversion to PDF/A through the PDF conformance documentation, and the library is positioned for server-side creation and conversion; no PDF to Word, Excel or PowerPoint conversion is claimed here, no fidelity guarantee is given, and no hosted conversion service is claimed",
        "merge": "merging and splitting PDF documents with the Syncfusion .NET PDF Library, where the vendor's Merge Documents page says the library supports merging multiple PDF documents from disk and streams using the Merge method of PdfDocumentBase, and the library overview lists merging and splitting PDF files, with the Split Documents page and document pages covering splitting and page import; the documented operation is programmatic merging and splitting of whole documents and pages, and no claim is made about preserving signatures, form data or annotations across a merge, or about a user interface, and no hosted service is claimed",
        "sign": "digitally signing and validating PDF documents with the Syncfusion .NET PDF Library, where the Digital Signature page says the library can add a digital signature to a PDF document, that adding one needs a certificate with a private key, and that it supports PFX files, Hardware Security Module (HSM), Online Certificate Status Protocol (OCSP), Certificate Revocation List (CRL), the Windows Certificate Store and the Elliptic Curve Digital Signature Algorithm (ECDSA), using the PdfSignature class; the page also covers validating signatures, and the product FAQ confirms both signing a PDF form and validating a signature; the scope covers adding and validating certificate-based signatures with those certificate and validation routes, and no timestamping, long-term validation or certification-level claim is made",
        "protect": "protecting PDF documents with the Syncfusion .NET PDF Library, where the library overview lists encrypting and decrypting PDF files with advanced standards and redacting text and images, the security documentation covers encryption and decryption, and the Redaction page says redacting permanently removes sensitive information by replacing the content within a specified rectangle with an optional fill colour, overlay text, image or pattern, and that the underlying text and graphics inside the redaction rectangle are removed during the Redact call and cannot be undone; the page also states that CJK text without a TrueType font and complex script text cannot be redacted, and that redaction on .NET Core needs the Syncfusion.Pdf.Imaging.Net.Core package; the scope covers encryption and decryption, permission settings as described, and the documented redaction with its stated limitations, with signing kept as the separate sign job",
        "compress": "compressing PDF documents with the Syncfusion .NET PDF Library, where the library overview lists support to compress existing PDF files, and the Compression page says the library can compress an existing PDF document, compress the content of a new document and compress images in a new or existing document, using PdfLoadedDocument and PdfCompressionOptions, with supported techniques being compressing images with an image quality setting, optimizing embedded fonts, optimizing page contents and removing metadata information; the page also names the Imaging package needed on .NET Core; no size-reduction percentage, quality threshold or lossless guarantee is stated, and no hosted service is claimed",
        "extract": "extracting text and images from PDF documents with the Syncfusion .NET PDF Library, where the Text Extraction page says the library can extract text from a particular page or the entire document, including line, word and glyph details with font, colour and bounding-rectangle information, and documents layout-based extraction through the ExtractText(bool) overload; the Image Extraction page says images can be extracted from a page or an entire PDF with ExtractImages and that PdfDocumentExtractor is available for lower memory consumption; the scope covers text and image extraction, and no OCR is claimed here because OCR is documented in a separate OCR Processor library, and no hosted service is claimed",
        "ocr": "running optical character recognition with Syncfusion's .NET OCR Processor, where the OCR documentation is published under Data Extraction rather than under the PDF Library, and says the .NET OCR Processor library processes OCR on scanned PDF documents and images with the help of Google's Tesseract OCR engine, converting scanned paper documents and images into searchable and editable data, and that an inbuilt image preprocessor prepares images with grayscale conversion, deskew, denoise, contrast adjustment and binarization; the OCR feature is therefore recorded as a separate library in the same Syncfusion Document SDK family rather than as a feature of the PDF Library, no accuracy figure or language count is stated on the page read, and no hosted OCR is claimed",
        "accessibility": "creating accessible tagged PDF documents with the Syncfusion .NET PDF Library, where the Tagged PDF page says a tagged PDF includes structure defining reading order and meaning of elements such as figures, images, lists and tables, that tagged PDF documents created using the library are compliant with the Section 508 (PDF/UA) standard and the WCAG 2.0 standard (ISO 14289-1:2014), and that the section explains how to add tags to text, images, shapes, form fields, annotations, tables and lists, including tags through PdfStructureElement and alternative text through ActualText; the compliance statement is recorded as the vendor's own claim about documents created with the library, and no claim is made about remediating arbitrary existing PDFs or about certification by a third party"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 130,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "syncfusion.com (/sales/pricing full calculator and SKU list, /document-sdk, /document-sdk/net-pdf-library, /pdf-viewer-sdk, /pages/pdf-library-competitive-upgrade/, /products/communitylicense, /legal/licensing, /legal/privacy-policy/, /about company timeline); help.syncfusion.com (/document-processing/pdf/pdf-library/net/overview, /document-processing/pdf/pdf-library/net/working-with-redaction, /document-processing/pdf/pdf-viewer/blazor/redaction/overview, /document-processing/licensing/overview); the Essential Studio Document SDK EULA PDF at syncfusion.com/license/studio/33.2.3/synfusion_es_document_sdk_eula.pdf, text-extracted and read in full; support.syncfusion.com licensing-model page; api.nuget.org flat-container index for Syncfusion.Pdf.Net.Core; frankfurter.dev for the USD/GBP rate.",
      "profileUrl": "https://dialegein.com/products/syncfusion-pdf/"
    },
    {
      "slug": "tabula",
      "name": "Tabula",
      "tagline": "Local desktop and command-line table extraction from text-based PDFs, output to CSV, TSV or JSON.",
      "websiteUrl": "https://tabula.technology",
      "summary": "Tabula extracts tables from text-based PDFs. The desktop application opens a PDF in a local graphical interface served at 127.0.0.1, lets the user select a page area, preview the extracted table and export it; the bundled tabula-java command line covers batch and headless use with page/area selection, guessed regions, explicit column coordinates, password-protected inputs, stream and lattice modes, and CSV/TSV/JSON output. The application release is 1.2.1, published 4 June 2018, and it bundles tabula-java 1.0.2; the separately maintained engine's latest release is 1.0.5, published 17 August 2021. The app is MIT-licensed and the engine is MIT-licensed, but the distributed app bundle also contains third-party components under their own licences, including Apache PDFBox 1.8.0 under Apache-2.0 and an AGPL-covered component. It is a local text-table extractor, not a PDF editor, converter, viewer or OCR tool: upstream says it works only on text-based PDFs, not scans, and provides no PDF generation or modification. The site describes CSV and Excel-compatible output; the app UI exports CSV, and the engine CLI emits CSV, TSV or JSON.",
      "bestFor": "Anyone who needs the numbers out of a text-based PDF report and into a spreadsheet, especially journalists, researchers and analysts who want a free local tool with a graphical selection step rather than a script.",
      "watchOutFor": "Tabula only works on text-based PDFs, not scanned documents. If you cannot select text in the table in a PDF viewer, Tabula has no OCR step and will not extract the scan; a separate OCR pass would be needed, and the project itself warns about OCR error rates and advises against OCR for large files. The desktop application is a volunteer-run project whose last release is v1.2.1 from 4 June 2018; the README says none of the original authors has time to work on it and the end-user application is unlikely to see updates. The extraction engine, tabula-java, is maintained separately: its last release is v1.0.5 from 17 August 2021 and it sees occasional bug-fix releases, but the app you download today still bundles engine 1.0.2, so do not present the app as including the latest engine. Windows and Linux users need a Java Runtime Environment installed; the Mac app bundles Java; the bundled 2018 distribution README says Java 6 or Java 7 compatible, while the current engine source/target is Java 8, so do not assume a modern JRE claim beyond those upstream statements. The application bundle is MIT for its own code but not MIT-only: it includes Apache PDFBox 1.8.0 under Apache-2.0, an AGPL-licensed component and other third-party notices; review build/dist-LICENSE.txt and NOTICE.txt for the distributed bundle. The GUI is a local interface served at 127.0.0.1 for selecting and previewing a table, not a general PDF reader or renderer, and the view job is limited to that selection/preview workflow. The engine CLI supports page/area selection, guess, columns, stream and lattice modes, passwords and CSV/TSV/JSON output. The site markets CSV and Microsoft Excel, but the documented CLI formats are CSV/TSV/JSON and the app exports CSV; no native XLSX writer API is documented. Tabula does not edit, generate or convert PDFs, has no redaction, signing, OCR or general rendering capability, and makes no table-accuracy guarantee. The Python, R and other bindings are community projects around tabula-java, not part of this application record.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Manuel Aristarán",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2013,
      "primaryJob": "extract",
      "jobs": [
        "extract",
        "view"
      ],
      "jobScores": {
        "extract": 85,
        "view": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://tabula.technology",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "The app is a local JRuby service that you open in a browser at localhost:8080, so files are read and parsed on your own machine; the PDF and the extracted data are never uploaded anywhere. The project documents two exceptions that are not file transfers: a version check against GitHub and a usage-stats ping, both of which can be disabled with -Dtabula.disable_version_check=1 and -Dtabula.disable_notifications=1.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "The desktop application is a local service that reads and writes files on the machine. Two outbound calls exist and neither carries a document - a GitHub version check and a statistics ping, both disableable by flag."
      },
      "license": "MIT for the Tabula application and tabula-java engine code: the app LICENSE.md is copyright 2012-2020 Manuel Aristarán under MIT, and the engine LICENSE is copyright 2014-2020 Manuel Aristarán under MIT. The distributed application is not MIT-only: build/dist-LICENSE.txt and NOTICE.txt record bundled third-party components with their own terms, including Apache PDFBox 1.8.0 under Apache-2.0, an AGPL-licensed component and other MIT/Apache notices. The engine's current pom.xml references a newer PDFBox dependency than the one bundled in the 2018 app release. No paid tier or hosted service exists.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "cli",
        "browser"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "cli",
            "browser"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "extract": "extracting tables from text-based PDFs with Tabula's tabula-java engine and CLI, where the engine README documents page/area selection, guessed page regions, explicit column coordinates, stream and lattice extraction modes, password-protected inputs, batch directory conversion, and CSV/TSV/JSON output; the application uses the bundled engine for its graphical extraction workflow. The scope records text-based table extraction and the documented CLI options, notes that Tabula has no OCR and does not work on scanned/image-only PDFs, and makes no PDF editing, generation, conversion, redaction or accuracy guarantee",
        "view": "opening a text-based PDF in Tabula's local localhost graphical interface, selecting a page or table area, previewing the extracted table and exporting it; this is a selection/preview workflow for table extraction, not a general PDF reader, renderer or editor, and it does not provide PDF modification, OCR or format conversion"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 367,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "tabula.technology (live, check date 2026-09-16); github.com/tabulapdf/tabula README, LICENSE.md, releases and commit history; github.com/tabulapdf/tabula-java README, LICENSE, releases and commit history; GitHub REST API metadata for both repositories; source.opennews.org introducing-tabula (3 April 2013); NuGet/GitHub release tag data.",
      "profileUrl": "https://dialegein.com/products/tabula/"
    },
    {
      "slug": "tc-lib-pdf",
      "name": "tc-lib-pdf",
      "tagline": "PHP PDF library built from focused packages, the successor to the deprecated TCPDF.",
      "websiteUrl": "https://tcpdf.org/",
      "summary": "tc-lib-pdf generates PDFs in PHP, including rendering HTML, CSS and SVG, and is assembled from independently versioned packages covering colour, fonts, images, graphics, pages, filtering, encryption and digital signatures. It can output PDF/A (1/2/3 a/b/u), PDF/X and PDF/UA (1/2), sign up to PAdES B-LTA, add annotations/forms and import pages from existing PDFs as Form XObjects; there is no headless rendering engine or rendering service in the pipeline. Current Packagist release is 8.81.1 (17 October 2026), requiring PHP ^8.2 and standard extensions; code is LGPL-3.0-or-later. It is the continuation of TCPDF, whose legacy repository is deprecated; migration is phased, not a drop-in replacement. It is a generation/composition library, not an OCR, extraction, redaction or general PDF-editing tool.",
      "bestFor": "PHP applications that need to author documents - invoices, reports, labels, statements - with HTML or SVG input, without adding a rendering engine or a service to the deployment. The package split is a benefit for teams that want only part of the stack, since the colour or font packages can be used on their own.",
      "watchOutFor": "The name is the trap. TCPDF is the library most people have heard of, and its repository is now deprecated: development moved to tc-lib-pdf, and a reader arriving from an old tutorial, a composer.json or a Stack Overflow answer will be looking at the predecessor. Existing installations are not broken and should be migrated in phases, but a new project starting on TCPDF is starting on the wrong library. Running it carries LGPL-3.0-or-later copyleft obligations. The package split, an architectural strength, also means a full installation pulls in many independently versioned dependencies, a larger surface to track. Generation is in-process PHP, not a hosted service, but it is not a no-network claim: required PHP extensions, optional curl for timestamp authorities, configured signing/revocation endpoints and controlled remote-resource access can all involve external interactions. It is not a drop-in TCPDF replacement: the API, package organisation and font generation differ. PDF/A, PDF/X and PDF/UA are conformance outputs, not an independent validation/certification service; OCR, extraction, redaction and general editing of arbitrary existing PDFs are out of scope.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Tecnick.com",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": 2004,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 80
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://tcpdf.org/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence and structurally: this is an authoring library that creates documents rather than opening existing ones, so there is no PDF for a redaction feature to act on. What it does not establish: that a document it produces is safe to share. Its feature set includes encryption and digital signatures, which are about protecting a document rather than removing content from one - a distinction this index exists to keep separate."
      },
      "processesLocally": true,
      "processesLocallyNote": "Generation runs in the caller's PHP process, so the document is built on the machine running the script. It is not a no-external-interaction claim: PHP extensions are required, curl is optional for timestamp authorities, signing/revocation use configured endpoints, and the library offers controlled remote-resource access. Pure PHP describes the language, not the absence of native extensions or network calls.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "PHP packages running in your own process. The project's own framing is that everything runs in PHP with nothing to keep alive next to your application."
      },
      "license": "LGPL-3.0-or-later. Packagist metadata for 8.81.1 declares LGPL-3.0-or-later and requires PHP ^8.2 plus ext-ctype/filter/hash/json/mbstring/openssl/pcre/xml/zlib and the tc-lib-* companion packages; GitHub reports NOASSERTION because of additional licence text. The library is free/open source; no hosted service, account or price applies. Copyright is Tecnick.com/Nicola Asuni.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "tc-lib-pdf review - PHP PDF generation library",
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "generating and composing PDFs with tc-lib-pdf: HTML/CSS and SVG rendering into PDF, PDF/A (1/2/3 a/b/u), PDF/X and PDF/UA (1/2) output, images/barcodes/annotations/forms, encryption and PAdES signing, plus importing pages from existing PDFs as Form XObjects and placing/appending them into a new document. The scope records the documented PDF generation/composition and standards-output paths; it excludes OCR, text extraction, redaction, arbitrary editing of existing PDF bodies, Office/other-format conversion, independent PDF/A/UA validation/certification, hosted conversion services and a drop-in TCPDF API claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 765,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://repo.packagist.org/p2/tecnickcom/tc-lib-pdf.json (8.81.1, 17 October 2026, PHP ^8.2, LGPL-3.0-or-later, extensions/companion packages; read 2026-10-16); https://github.com/tecnickcom/tc-lib-pdf (created 2016-06-10, last push 2026-10-17, latest release 8.81.1; read 2026-10-16); README (HTML/CSS/SVG rendering, PDF/A/X/UA, signing PAdES B-LTA, annotations/forms, encryption, PDF page import, no headless browser, LGPL; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/tc-lib-pdf/"
    },
    {
      "slug": "telerik-dpl",
      "name": "Telerik Document Processing Libraries",
      "tagline": "Progress's .NET libraries for creating, editing and converting PDF, Word and Excel files with no Office, Acrobat or UI dependency.",
      "websiteUrl": "https://www.telerik.com/document-processing-libraries",
      "summary": "The Telerik Document Processing Libraries are a commercial set of five UI-independent .NET libraries - PDF, Word, spreadsheets, streaming spreadsheets and ZIP - for generating, reading, editing and converting business documents inside an application, with no installation of Microsoft Office or Adobe Acrobat and no user interface involved. The libraries target .NET Standard 2.0, .NET 8 and .NET 10 and are embedded in the customer's own .NET applications. The PDF library creates and edits documents, imports existing ones, fills and flattens forms, applies and validates digital signatures, extracts and searches content, merges and splits pages, protects documents with passwords and can generate accessible output. The product is not sold with a published standalone price on the pages read; it is included in Progress's DevCraft bundles, which run from USD 1,149 to USD 1,649 per developer per year depending on tier, and a free 30-day trial includes technical support with no credit card required.",
      "bestFor": "Teams already building on .NET who need documents produced or manipulated server-side as part of an application - reports, invoices, exports, batch conversion - without licensing desktop software on the server or driving Office through interop. The absence of UI dependencies is the point: it works in a service, a function or a container. It is a good fit for an organisation already using other Telerik or Kendo UI components and a harder sell for anyone who only needs one PDF library and would otherwise buy a bundle to get it.",
      "watchOutFor": "There is no published standalone price for the libraries on the product, documentation or purchase pages read. The route the site leads with is the DevCraft bundles, currently DevCraft UI at USD 1,149, Complete at USD 1,299 and Ultimate at USD 1,649 per developer per year, and the libraries are included in those bundles and in other Telerik products; a DevCraft price is therefore the price of a large bundle containing UI components and far more than document processing, not a standalone DPL price. The bundles are licensed per developer per year, so cost scales with team size rather than usage. A 30-day trial with technical support and no credit card is offered, which is a trial rather than a free tier. The suite is five libraries, and the AI agent tooling described on current pages is newer than the document libraries and is not itself one of the five. The accessibility claim is documented generation, not certification: accessible output requires targeting PDF/A-1a, PDF/A-2a, PDF/A-3a or PDF/UA-1 and configuring compliance level and tagging, the auto-tag option is off by default, and the accessibility conformance report says WordsProcessing-to-PDF output is partially tagged with tables and links not tagged, SpreadProcessing-to-PDF output is untagged, and automated PDF/A and PDF/UA validation does not establish whether alternate text is meaningful or headings are in a logical order. Digital signatures use X.509 certificates, chains, trusted roots and revocation checks, but certificate issuance and certificate-authority management are outside the library scope, and timestamping and external signing are configured paths rather than included trust services. Password protection documents AES-256, AES-128 and RC4 settings and user-access permissions, but PDF/A-compliant documents exclude encryption. These are in-process .NET libraries consumed by a host application, not a hosted API, cloud service or self-hosted server product.",
      "pricingModel": "paid",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": null,
      "owner": "Progress Software Corporation",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "extract",
        "accessibility",
        "merge",
        "sign",
        "protect"
      ],
      "jobScores": {
        "edit": 76,
        "convert": 74,
        "extract": 70,
        "accessibility": 68,
        "merge": null,
        "sign": null,
        "protect": null
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://www.telerik.com/document-processing-libraries",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and the evidence is weaker here than on most `none` verdicts in this index - which is why it is stated rather than glossed. The vendor's PDF capability list is six bullets: create and edit PDFs, import existing documents, fill PDF forms, add digital signatures, extract and search content, and generate accessible PDFs. Redaction appears nowhere in it, and neither does anything else that removes content. What it does not establish: that a document-manipulation library cannot delete content, because editing a PDF and removing content from it are the same operation at the API level even when no redaction feature is advertised. A six-item summary is not a feature matrix, and the full API documentation was not read. Anyone for whom content removal matters should check the API reference rather than trust this absence."
      },
      "processesLocally": true,
      "processesLocallyNote": "It is an embedded .NET library, so documents are processed inside the application that hosts it. That describes the library and not the application: the absence of an Office or Acrobat dependency does not establish an absence of network traffic, and the official documentation covers accessible output, GenAI insights, timestamp servers and external signing, each of which is a configured external path rather than a local document operation. Whether a given deployment contacts anything is a property of how it is configured.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A set of .NET libraries compiled into the application you build. The vendor makes the point explicitly - no Microsoft Office or Adobe Acrobat installation is required and the libraries are UI-independent - so there is no vendor service and no document ever leaves the process it runs in."
      },
      "license": "Commercial. Telerik Document Processing is a commercial five-library .NET suite and is included in Progress's DevCraft bundles, currently DevCraft UI at USD 1,149, Complete at USD 1,299 and Ultimate at USD 1,649 per developer per year, and in other Telerik products such as UI for ASP.NET Core and UI for Blazor. No standalone DPL price is published on the product, documentation or purchase pages read, so no standalone figure is recorded; the DevCraft prices are bundle prices and are not used as the price of the libraries alone. A free 30-day trial including technical support and requiring no credit card is offered for evaluation, and commercial use requires a Telerik licence under the Telerik commercial licence agreement. The libraries target .NET Standard 2.0, .NET 8 and .NET 10 and run inside the customer's application; there is no hosted or self-hosted service component.",
      "openSource": false,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "editing documents with the Telerik Document Processing Libraries, where the RadPdfProcessing overview documents creating, importing and editing PDF documents, adding text, images, shapes, tables, lists, forms, annotations and bookmarks, updating selected content and interactive forms that can be created, filled, extracted, flattened and signed, the RadWordsProcessing overview documents creating and editing RadFlowDocument content including text, structure, formatting, tables, images, fields and hyperlinks, and the RadSpreadProcessing overview documents creating and editing workbooks with formulas and formatting; the scope records the documented in-process .NET editing and form operations, with no user-interface claim and no claim to edit formats beyond those the libraries document",
        "convert": "converting documents with the Telerik Document Processing Libraries, where RadPdfProcessing imports PDF into RadFixedDocument and exports it to PDF or plain text, RadWordsProcessing imports supported word-processing formats and exports to DOCX, RTF, HTML, TXT or PDF and converts between supported formats, and RadSpreadProcessing imports and exports XLSX, XLSM, XLS, CSV, TXT and JSON and exports to PDF; the PDF format provider settings also document compliance levels including PDF/A and the accessibility-related PDF/UA target, and the scope records the documented conversion directions and conditions with no fidelity guarantee and no format outside those libraries",
        "extract": "extracting content from PDFs with the Telerik Document Processing Libraries, where the product page lists Extract and search content among the PDF capabilities, the RadPdfProcessing overview documents exporting PDF content to PDF or plain text and extracting data from interactive forms, and the PDF library documents text extraction and search through its document model; the scope records the documented text and form extraction and search, makes no OCR claim and claims no structure or accuracy beyond the documented APIs",
        "accessibility": "generating accessible PDF output with the Telerik Document Processing Libraries, where the RadPdfProcessing accessibility documentation says accessible output must target PDF/A-1a, PDF/A-2a, PDF/A-3a or PDF/UA-1 by configuring the export compliance level and tagging strategy, that RadFixedDocument auto-tagging is off by default and the structure tree can be built manually or tagged automatically, and the accessibility conformance report says PdfProcessing supports tagged authoring when meaningful structure and descriptions are supplied, WordsProcessing-to-PDF is partially tagged with tables and links not tagged, SpreadProcessing-to-PDF is untagged, DOCX/XLSX/RTF conversion preserves alt text and screen tips but not document language, and automated PDF/A and PDF/UA validation does not establish meaningful alternate text, logical heading order or natural reading order; the scope records documented generation of accessible output and does not claim accessibility certification, conformance or a compliance guarantee",
        "merge": "merging and splitting PDFs with the Telerik Document Processing Libraries, where the RadPdfProcessing overview documents merging, splitting and appending PDF content, and the PdfStreamWriter documentation documents merging pages from different PDF documents, splitting PDF document pages, adding and positioning page content from existing PDFs and generated pages, and combining content from existing pages and new RadFixedPage instances in a new PDF stream, while noting that existing page content stays unmodified and can only be positioned in the new file; RadWordsProcessing also documents merging documents with style resolution, and the scope records the documented merge, split and append operations with no claim about preserving signatures, forms, links or annotations across a merge",
        "sign": "signing PDFs with the Telerik Document Processing Libraries, where the RadPdfProcessing digital signature documentation says the feature signs and validates PDF documents, that a signature confirms the content came from the signer and has not been modified, that validity depends on unchanged content and a certificate chain resolving to a trusted root, and that the library uses X.509 certificates, certificate chains, trusted roots and revocation checks for signing and validation, with signature fields, signing documents with predefined signature fields, verifying existing signatures and multiple digital signing; the product page also lists timestamp servers and external signing, and the documentation says certificate issuance and certificate-authority management are outside the library scope, so the scope records the documented signing and validation and makes no certificate-authority, timestamp-authority or independent trust guarantee",
        "protect": "protecting PDFs with the Telerik Document Processing Libraries, where the PdfFormatProvider settings documentation documents encryption import and export with the IsEncrypted option, the EncryptionType values AES256, AES128 (introduced in Q4 2025) and RC4 as the default, a UserPassword and an OwnerPassword, and UserAccessPermissions governing printing, copying and modifying operations, and the RadPdfProcessing overview documents password protection for importing encrypted documents and exporting password-protected documents with supported algorithms; the scope records the documented password, encryption-type and user-access-permission settings and notes that compliance levels other than none exclude encryption, making no claim about how other readers enforce the permissions"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 375,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "telerik.com, read 2026-09-22 with headless Chrome: the Document Processing Libraries product page (visible text 4820 bytes), including the headline, the five libraries, the PDF capability list and the UI-independence sections, and the purchase page at telerik.com/purchase.aspx (5127 bytes) for the DevCraft tier pricing. Vendor documentation, not independently tested; no trial was started, no library was installed and no document was produced.",
      "profileUrl": "https://dialegein.com/products/telerik-dpl/"
    },
    {
      "slug": "tesseract-js",
      "name": "Tesseract.js",
      "tagline": "WebAssembly port of the Tesseract OCR engine for browsers and Node.js.",
      "websiteUrl": "https://tesseract.projectnaptha.com/",
      "summary": "Tesseract.js is a JavaScript library that performs optical character recognition on images and video frames in a browser or under Node.js. It does not reimplement OCR in JavaScript: it loads a WebAssembly build of the Tesseract engine in a Web Worker and returns recognised text. Word/symbol geometry, hOCR and TSV outputs are available but are not the default text-only result, and the exact output options should be enabled explicitly. Recognition languages and trained data are loaded at runtime, commonly from a CDN unless langPath is configured. The current npm release is 7.0.0 (latest GitHub release 15 December 2025), Apache-2.0, from the naptha project. It is an OCR library, not a PDF tool: it cannot open PDFs, create searchable PDFs, edit/redact/sign documents or validate accessibility, and it does not improve Tesseract's recognition model.",
      "bestFor": "Developers who need offline or privacy-sensitive OCR inside a browser app or Node service, and who can either accept language data being fetched from a CDN or self-host those files.",
      "watchOutFor": "It cannot read PDFs at all, so you must rasterise pages yourself before OCR; it does not write searchable PDFs or preserve a PDF text layer. Accuracy on poor-quality scans trails commercial OCR engines, handwriting is not a supported strong point, and layout recovery is limited to whatever text/geometry/hOCR/TSV the engine returns. Language data is fetched from a CDN by default unless langPath is configured, so local processing is not the same as no network traffic. It is an OCR library only: no PDF editing, redaction, signing, accessibility remediation or semantic understanding, and no modification of Tesseract's recognition model. No hosted service or account is offered; no price applies beyond Apache-2.0.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "self_hosted"
      ],
      "launchedYear": 2015,
      "primaryJob": "ocr",
      "jobs": [
        "ocr"
      ],
      "jobScores": {
        "ocr": 85
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/naptha/tesseract.js",
        "quote": null,
        "caveat": "The repository README is the source. tesseract.js is the same OCR engine compiled for the browser, so the same reasoning applies: recognition, not modification. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "A WebAssembly build of Tesseract executed inside the caller's browser or Node.js process via a Web Worker; no Tesseract.js-operated server receives the image. Language data is downloaded from a CDN by default unless langPath is configured, so local processing does not describe all network traffic. The library is a programming interface only, with no hosted service or account.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A JavaScript library that runs the OCR engine as a WebAssembly module inside your own browser or Node process. No vendor service receives the image. Note it fetches language data from a CDN by default, so not every byte is local."
      },
      "license": "Apache-2.0. The npm package is 7.0.0 (latest GitHub release 15 December 2025), authored by the naptha project; the WebAssembly engine is a separate naptha/tesseract.js-core package. No company is documented and no hosted service is offered. The project wraps the separate Tesseract OCR engine and does not modify its recognition model.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "browser"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "in_process",
          "platforms": [
            "web"
          ],
          "interfaces": [
            "browser"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "ocr": "running optical character recognition on images and video frames with Tesseract.js: loading a WebAssembly Tesseract worker in a browser or Node.js, selecting/downloading language data, and returning recognised text with optional word/symbol geometry, hOCR or TSV outputs when enabled. The scope records OCR of image/video inputs and the library/worker model, and explicitly excludes PDF reading or rasterisation, searchable-PDF creation, PDF editing, redaction, digital signatures, accessibility remediation/validation, handwriting guarantees, layout reconstruction and any hosted-service or model-improvement claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 158,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://registry.npmjs.org/tesseract.js/latest (7.0.0, Apache-2.0, dependency tesseract.js-core; read 2026-10-16); https://github.com/naptha/tesseract.js (Apache-2.0, created 2015-06-24, last push 2026-05-17, latest release v7.0.0 2025-12-15; read 2026-10-16); README (browser/Node, WebAssembly/Web Worker, no PDF support, no recognition-model modification, language/CDN and output notes; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/tesseract-js/"
    },
    {
      "slug": "tesseract-ocr",
      "name": "Tesseract OCR",
      "tagline": "Open-source OCR engine and command-line tool, with no graphical interface.",
      "websiteUrl": "https://tesseract-ocr.github.io/",
      "summary": "Tesseract is a text-recognition engine that pulls printed text out of images and scanned pages. It ships as a command-line program plus a C and C++ library that other applications embed, and it has no graphical interface of its own. Current stable release is 5.5.3 (24 July 2026), Apache-2.0. It reads PNG, JPEG, TIFF, JPEG 2000, GIF, WebP, BMP and PNM images (not PDF), and writes plain text, hOCR, TSV, ALTO, PAGE, PDF, or an invisible-text-only PDF with a searchable layer. It supports 100+ languages through tessdata traineddata files and can be retrained for additional languages/scripts. It is an OCR engine, not a PDF parser/editor, wrapper, hosted service or PDF composition tool.",
      "bestFor": "Developers and technical users who need scriptable, fully offline OCR inside their own pipeline, and who will pair it with a separate interface or wrapper.",
      "watchOutFor": "There is no built-in graphical interface - the project says so explicitly. Accuracy depends heavily on image quality and usually needs preprocessing, and the project's FAQ confirms it cannot read handwriting or barcodes. It cannot read PDFs at all; a PDF workflow must rasterise pages first (OCRmyPDF is the project's suggested route). It can write a searchable PDF from an image, but that is PDF output, not PDF parsing/editing. Language/script support comes from separately distributed tessdata traineddata files, not the core engine alone. It is a locally installed engine; third-party wrappers or hosted integrations may handle files differently and are separate products. No OCR accuracy, language-coverage, compliance or legal guarantee is made.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "tesseract-ocr project",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": 2005,
      "primaryJob": "ocr",
      "jobs": [
        "ocr"
      ],
      "jobScores": {
        "ocr": 90
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/tesseract-ocr/tesseract",
        "quote": null,
        "caveat": "The repository README is the source, because the project site renders from JavaScript. Tesseract is an OCR engine: it extracts text from images and has no feature that alters a PDF’s content. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "A locally installed OCR engine/library and CLI. Where processing happens depends on how a developer deploys it: an embedded library or command-line call keeps the image on the machine, while a third-party wrapper/service may receive files; that is a property of the wrapper, not of Tesseract. Tesseract does not read PDFs, so PDF workflows must rasterise pages first.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "Command-line program and embedded library. There is no vendor service anywhere in the path."
      },
      "license": "Apache-2.0 for Tesseract itself. It bundles/relies on Leptonica (BSD-2-Clause) and other dependencies with their own licences, and language/script support comes from separately distributed tessdata traineddata files. The engine is free/open source; no hosted Tesseract service, account or price is offered. Third-party wrappers/services are separate products.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": false,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "engine",
          "name": "Tesseract engine/CLI installed locally",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux",
            "self_hosted"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": [
            {
              "name": "Tesseract",
              "licence": "Apache-2.0",
              "version": "5.5.3",
              "note": "Leptonica and tessdata components have their own licences."
            }
          ]
        }
      ],
      "jobScopes": {
        "ocr": "running OCR on raster images with Tesseract: reading PNG/JPEG/TIFF/JPEG 2000/GIF/WebP/BMP/PNM images through libtesseract or the tesseract CLI, using installed tessdata language/script models (100+ languages), and producing plain text, hOCR, TSV, ALTO, PAGE, PDF or an invisible-text-only PDF with a searchable text layer. The scope records image OCR and documented text/PDF outputs, including searchable-PDF output from an image; it excludes PDF parsing/input (Tesseract cannot read PDFs), PDF body editing, redaction, signing, generic format conversion, OCR of handwriting/barcodes, hosted OCR services, wrapper behavior and any accuracy/compliance guarantee"
      },
      "inputs": [
        "Images"
      ],
      "outputs": [
        "Text",
        "PDF"
      ],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 129,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 1,
      "reviewedBy": null,
      "source": "https://github.com/tesseract-ocr/tesseract/releases/tag/5.5.3 (5.5.3, 24 July 2026; read 2026-10-16); https://github.com/tesseract-ocr/tesseract (Apache-2.0, created 2014-08-12, last push 2026-10-10; read 2026-10-16); README (engine/CLI, 100+ languages, image formats, text/hOCR/PDF/invisible-text PDF/TSV/ALTO/PAGE outputs, no GUI, 2005 open source, Apache/Leptonica; read 2026-10-16); https://tesseract-ocr.github.io/tessdoc/InputFormats.html (supported image inputs; PDF unsupported as input); https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html (searchable PDF output, hOCR/TSV); tessdata Data Files page (language/traineddata model split); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/tesseract-ocr/"
    },
    {
      "slug": "unstructured",
      "name": "Unstructured",
      "tagline": "Open-source partitioning of PDFs and other documents into structured elements for LLM pipelines.",
      "websiteUrl": "https://github.com/Unstructured-IO/unstructured",
      "summary": "Unstructured turns a document into a list of typed elements - titles, narrative text, tables, list items - that a language-model pipeline can work with, across PDFs, images, HTML, Word and many other formats. The open-source library (currently 0.27.28, 16 October 2026, Python >=3.11,<3.14, Apache-2.0) runs locally in a container or virtual environment and offers PDF strategies such as auto, fast, hi_res and ocr_only, with optional table inference, coordinates and OCR backends (Tesseract/Paddle etc. installed separately). It is the ingestion step: it reads documents and returns element data, not a searchable PDF, editor, redactor or accessibility validator. The same company sells hosted Transform API/Pipelines products (10,000 free pages then $0.015/page), which are separate services with their own terms and are not inherited into this local record. The library sends lightweight telemetry by default; DO_NOT_TRACK or SCARF_NO_ANALYTICS disables it.",
      "bestFor": "Anyone building a retrieval or model-training pipeline who needs one interface across many file types and does not want to write a parser per format. The open-source library is the reason to choose it over hosted competitors, and it is credible for PDFs specifically.",
      "watchOutFor": "The library sends telemetry by default: a library-load ping and a best-effort per-partition call to packages.unstructured.io, with package/platform/version, partition characteristics and aggregate element counts, but no document content. Set DO_NOT_TRACK or SCARF_NO_ANALYTICS before import to disable both. Its PDF handling has fast/hi_res/ocr_only strategies; higher accuracy pulls in large deep-learning/OCR dependencies and models, so a production install is much heavier than the base package. Tesseract/Poppler/LibreOffice and optional OCR/ML backends are separate system dependencies with their own licences. The hosted Transform API/Pipelines are commercial, per-page services (10,000 free pages then $0.015/page) and are not the open-source library; do not inherit their terms, data handling or service claims into this record. It partitions/returns elements (with optional tables/coordinates), but does not write searchable PDFs, edit/redact/sign PDFs, perform accessibility validation or guarantee extraction accuracy. The local library has telemetry but does not upload document content by default.",
      "pricingModel": "freemium",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": {
        "amount": 0.015,
        "currency": "USD",
        "per": "page",
        "asShown": "\"Pay only $0.015 a page after your first 10,000 free pages.\" - Pay-As-You-Go, \"$0.015 / page\"",
        "source": "https://unstructured.io/pricing",
        "readAt": "2026-09-22"
      },
      "hasFreeTier": true,
      "owner": "Unstructured Technologies, Inc.",
      "platforms": [
        "self_hosted",
        "linux",
        "windows",
        "mac"
      ],
      "launchedYear": null,
      "primaryJob": "extract",
      "jobs": [
        "extract"
      ],
      "jobScores": {
        "extract": 88
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://github.com/Unstructured-IO/unstructured",
        "readAt": "2026-09-22",
        "quote": "The unstructured library provides open-source components for ingesting and pre-processing images and text documents, such as PDFs, HTML, Word docs, and many more. The use cases of unstructured revolve around streamlining and optimizing the data processing workflow for LLMs.",
        "caveat": "Recorded as `none` because partitioning is a read-only operation: the library converts a document into elements and does not write a PDF back, so there is no redaction feature and no output file in which hidden content could survive. The basis is the library's own description of its purpose, quoted above, so this is absence from a feature set rather than a test. What it does not establish: that elements returned by the library are an anonymised view of the document. Text extracted from a document carries whatever was in it, so a partitioning step is not a sanitising step and should not be used as one."
      },
      "processesLocally": true,
      "processesLocallyNote": "The open-source library runs on the caller's own machine/container and partitions documents locally. Exceptions: the optional hosted API/Transform/Pipelines are separate services, and the library sends lightweight telemetry to packages.unstructured.io by default (package/platform/version, partition characteristics and aggregate counts; no document content) unless DO_NOT_TRACK or SCARF_NO_ANALYTICS is set. 'Local' describes document processing, not zero network traffic.",
      "locality": {
        "verdict": "untested",
        "label": "not tested",
        "reason": "Mixed by design, and the distinction matters. The open-source library runs in your own process, but the same company sells a hosted API and a managed Pipelines product that documents are uploaded to. We do not send documents to a third party's service without asking, so the hosted side keeps this out of `notApplicable` even though the library side would qualify."
      },
      "license": "Apache-2.0 for the open-source `unstructured` library. The hosted API/Transform and managed Pipelines are separate commercial products, not covered by this licence; no hosted terms are inherited into the local record. System tooling (python-magic/libmagic, poppler, tesseract, libreoffice) and optional OCR/ML backends keep their own licences.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library"
      ],
      "dataResidency": "unknown",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Open-source Python library",
          "processing": "in_process",
          "platforms": [
            "self_hosted",
            "linux",
            "windows",
            "mac"
          ],
          "interfaces": [
            "library"
          ],
          "requiresAccount": "no",
          "licenceComponents": [
            {
              "name": "unstructured",
              "licence": "Apache-2.0",
              "version": "0.27.28",
              "note": "System/optional backends have their own licences."
            }
          ]
        }
      ],
      "jobScopes": {
        "extract": "extracting structured content from documents with the open-source Unstructured library: partitioning PDFs, images, HTML, Word/Office, email, EPUB and other supported files into typed elements (Title, NarrativeText, ListItem, Table, etc.), with PDF/image strategies auto/fast/hi_res/ocr_only, optional table inference, coordinates/page breaks and OCR languages/backends, returning element data for downstream pipelines. The scope records local document partitioning/extraction only; it excludes searchable-PDF creation, PDF editing, redaction, signing, accessibility validation, hosted Transform/Pipelines/API use, inherited hosted data/compliance claims and any accuracy guarantee"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 464,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://pypi.org/project/unstructured/ (0.27.28, 16 October 2026, Python >=3.11,<3.14, Apache-2.0; read 2026-10-16); https://github.com/Unstructured-IO/unstructured (Apache-2.0, created 2022-09-26, last push 2026-10-16, latest release 0.27.28; read 2026-10-16); README (partition PDFs/HTML/images/Word, elements, OCR dependencies, telemetry/DO_NOT_TRACK/SCARF_NO_ANALYTICS; read 2026-10-16); https://docs.unstructured.io/open-source/core-functionality/partitioning (partition functions, PDF/image strategies auto/fast/hi_res/ocr_only, table/coordinates/OCR options; read 2026-10-16); https://unstructured.io/pricing (hosted 10,000 free pages then $0.015/page; read 2026-10-16); https://unstructured.io/privacy-policy (Unstructured Technologies, Inc.; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/unstructured/"
    },
    {
      "slug": "verapdf",
      "name": "veraPDF",
      "tagline": "Industry-backed open source accessibility validator for PDF/A and PDF/UA conformance.",
      "websiteUrl": "https://verapdf.org",
      "summary": "veraPDF checks PDF files against every part and conformance level of PDF/A and the PDF/UA machine checks, and can enforce institutional policy profiles. Alongside the pass/fail verdict it extracts document features such as fonts, images and metadata, produces machine-readable reports in several formats, and offers a metadata fixer that repairs broken metadata or removes an unjustified PDF/A flag. It ships as a Java library, a desktop interface, a command line for batch work and a container image. Current release is 1.30.3 (9 October 2026), requiring Java 8, 11, 17 or 21; it is dual-licensed GPL-3.0-or-later or MPL-2.0 and free/open source. It is a validator/inspector, not a general PDF viewer, renderer, converter or editor; apart from narrow metadata repair it does not alter documents.",
      "bestFor": "Archives, libraries and publishers who must prove long-term preservation conformance in an automated ingestion pipeline.",
      "watchOutFor": "It is a validator, not an editor: apart from narrow metadata repairs it does not alter document content, and it has no redaction, page or assembly operations. It also cannot convert anything - it reports rather than transcodes. The GUI presents validation results/reports, not a general-purpose PDF reading experience; do not treat veraPDF as a viewer or renderer. It does not check semantic accessibility or certify legal compliance; PDF/UA machine checks cover the machine-verifiable subset, not the whole standard. Java 8, 11, 17 or 21 must be installed. The project's GitHub licence metadata reports GPL-3.0 only, but the project site/README clearly offer GPL-3.0-or-later OR MPL-2.0. No hosted service, account, price or data-residency guarantee applies; validation runs locally.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "veraPDF Consortium",
      "platforms": [
        "windows",
        "mac",
        "linux",
        "self_hosted"
      ],
      "launchedYear": 2015,
      "primaryJob": "accessibility",
      "jobs": [
        "accessibility",
        "edit"
      ],
      "jobScores": {
        "accessibility": 90,
        "edit": 25
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://github.com/veraPDF/veraPDF-library",
        "quote": null,
        "caveat": "The repository README is the source, because verapdf.org renders almost nothing without scripting. veraPDF validates files against PDF/A and PDF/UA profiles; validation is read-only and the project describes no content-modification features. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "A locally installed Java application/library, also available as an installer/container. It parses and validates files on the machine; no hosted validation service is required, which is what makes it usable on restricted preservation networks.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Java application installed locally, also available as a container image. No hosted validation service is involved, which is what makes it usable on restricted preservation networks."
      },
      "license": "Dual-licensed GPL-3.0-or-later or MPL-2.0, per the project site and veraPDF-library README; GitHub's licence API reports GPL-3.0 only and understates the choice. The tool is free/open source; no hosted service or account is required. Java 8, 11, 17 or 21 is required; the installer runs on Windows/macOS/Linux.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "accessibility": "validates and reports, does not repair",
        "edit": "narrow metadata repair only"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 704,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://github.com/veraPDF/veraPDF-library/releases/tag/v1.30.3 (v1.30.3, 9 October 2026; read 2026-10-16); https://verapdf.org/ (validates all PDF/A and PDF/UA parts/conformance levels; GPLv3+/MPLv2+; read 2026-10-16); https://docs.verapdf.org/ (Java 8+, GUI, CLI, library, policy, validation, reports; read 2026-10-16); https://github.com/veraPDF/veraPDF-library README (Java 8, 11, 17 or 21, dual licence GPLv3+/MPLv2+; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/verapdf/"
    },
    {
      "slug": "vivliostyle",
      "name": "Vivliostyle",
      "tagline": "Open-source CSS typesetting project that turns HTML into print-quality PDF, in a browser or a CLI.",
      "websiteUrl": "https://vivliostyle.org/",
      "summary": "Vivliostyle is an open-source typesetting system built on web standards: you write HTML and CSS, and it lays the result out as paginated pages and exports PDF. It comes as a viewer that runs in the browser, a command-line tool for building documents, and a core engine that other software can embed, plus a browser-based editing service that is still in alpha. It treats CSS Paged Media as the way to make books rather than as a way to print a web page.",
      "bestFor": "Publishers, documentation teams and individuals who want to produce books and long documents from HTML and CSS with an open-source tool, and JavaScript projects that want a typesetting engine they can embed rather than a command to shell out to. It is the open-source counterpart to the commercial typesetting engines in this index.",
      "watchOutFor": "These are separate components with separate statuses rather than one product. The CLI builds PDF, EPUB and other publication outputs and is the part most people install; the core engine is embeddable by other software; and the browser-based editing service is still labelled alpha, which says nothing about the others either way. The licence is AGPL-3.0, which carries a network clause: if you run a modified version as a service people interact with, you have to offer them the source. That matters most for the viewer, which is designed to be embedded in websites. Attribution terms should be read per component and per version rather than once for the family.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "web",
        "self_hosted"
      ],
      "launchedYear": null,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 75
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://vivliostyle.org/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence and structurally: Vivliostyle typesets HTML into PDF and does not open an existing PDF, so there is no document to redact. What it does not establish: that the output is safe. The generator caveat applies as it does to every formatter here - and there is one further nuance worth naming, because this is a viewer as well as a generator: the viewer renders HTML a user supplies, so what it displays is whatever the page contains."
      },
      "processesLocally": true,
      "processesLocallyNote": "Both the viewer and the command-line tool run where you put them: the viewer in the browser, the CLI on your own machine, and the core engine inside whatever application embeds it. No Vivliostyle service is in the path for either, though the alpha hosted editor is a service and is a separate product.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "The viewer runs in the browser and the CLI and core engine run on your own machine or inside your own application. No Vivliostyle service is in the path for either, though the alpha hosted editor is a separate product."
      },
      "license": "AGPL-3.0",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "cli",
        "library"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "web",
          "name": "Web",
          "processing": "unknown",
          "platforms": [
            "web"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "unknown",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {},
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 337,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "vivliostyle.org, read 2026-09-22 with headless Chrome, including the product list, the news items and the sponsors section; the licence from the project's LICENSE file in the vivliostyle.js repository. Project documentation, not independently tested; nothing was installed and no document was typeset.",
      "profileUrl": "https://dialegein.com/products/vivliostyle/"
    },
    {
      "slug": "weasyprint",
      "name": "WeasyPrint",
      "tagline": "Open-source Python library that turns HTML and CSS into PDF documents.",
      "websiteUrl": "https://weasyprint.org/",
      "summary": "WeasyPrint renders HTML and CSS into PDF from a Python library or command-line program, which makes it the open-source answer to the same job the commercial typesetting engines do: write a template in HTML/CSS and get a printable document out - invoices, statements, tickets, reports, book interiors. It implements a paginated CSS layout engine rather than embedding a full general-purpose rendering engine, and is free software under BSD-3-Clause. The current release is 70.0 (8 September 2026), requiring Python >=3.10, Pango >=1.44 and Python dependencies including pydyf, cffi, tinyhtml5, tinycss2, cssselect2, Pyphen, Pillow and fonttools. It generates PDF variants including PDF/A and PDF/UA modes, can tag PDFs for accessibility, add attachments/metadata/forms and drive output from the CLI. It is not a general-purpose renderer: JavaScript and renderer-specific behaviour are outside its model, and it does not edit existing PDFs, extract text, OCR, redact, sign or provide legal accessibility certification. WeasyPrint was created and developed by Kozea; professional support, maintenance and community management are provided by CourtBouillon.",
      "bestFor": "Python teams that need to generate PDFs from HTML they already have, without paying per document or sending anything to a service, and anyone producing repetitive business documents where CSS is a better layout language than a PDF drawing API. It is the strongest open-source option in this index for template-driven generation.",
      "watchOutFor": "It is not a general-purpose renderer and does not pretend to be: it implements the parts of CSS that make sense for paged output, and a stylesheet that relies on JavaScript or on renderer-specific behaviour will not render the way you expect - the project's own samples exist partly to show what the print-oriented subset can do. It also depends on native libraries (Pango >=1.44) rather than being pure Python, so installation is heavier than pip alone on some platforms, and that is a deployment consideration in containers. The project is small and the commercial support around it is per-month consulting rather than an SLA product, with published support tiers that are explicitly unavailable in Canada and the United States; a team that needs a support contract rather than occasional help should read those terms carefully. The success figures on the site - millions of downloads and thousands of stars - are popularity, not a measure of how well it renders a difficult document. It is self-hosted software only: there is no WeasyPrint hosted service, account or hosted edition.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "CourtBouillon",
      "platforms": [
        "self_hosted"
      ],
      "launchedYear": 2011,
      "primaryJob": "convert",
      "jobs": [
        "convert"
      ],
      "jobScores": {
        "convert": 85
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://weasyprint.org/",
        "readAt": "2026-09-22",
        "quote": "WeasyPrint is a smart solution helping web developers to create PDF documents. It's free and open source software that can be easily plugged to your applications and websites and turns simple HTML pages into gorgeous: Statistical reports, Invoices, Tickets, html print",
        "caveat": "Recorded as `none` on absence, and for the same structural reason as Prince: this is a generator. It creates a PDF from HTML and CSS and never opens an existing one, so there is no document for a redaction feature to act on. What it does not establish: that a document produced by WeasyPrint is safe to share. A template renders whatever data it is given, and a generator is precisely the tool that will print a field you did not mean to include."
      },
      "processesLocally": true,
      "processesLocallyNote": "A Python package and command-line program running in the caller's own process/machine, with no WeasyPrint service or account. HTML, CSS and data are processed locally; URL fetching for external stylesheets/images is the caller's configuration and follows the caller's network access. Native Pango and Python dependencies must be installed locally.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A Python package and its command line, running in your own process. There is no service and no account, so templates and data never leave the machine generating the document."
      },
      "license": "BSD-3-Clause. WeasyPrint is free software under a BSD licence; the current PyPI package is 70.0, requires Python >=3.10, and depends on pydyf, cffi, tinyhtml5, tinycss2, cssselect2, Pyphen, Pillow and fonttools, plus the system Pango >=1.44 library. It was created and developed by Kozea; professional support, maintenance and community management are provided by CourtBouillon, which is recorded as the current maintainer. No account or paid software edition is required.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [
        "library",
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": "WeasyPrint review - HTML/CSS to PDF",
      "originalPricing": null,
      "editions": [
        {
          "id": "self_hosted",
          "name": "Self-hosted",
          "processing": "in_process",
          "platforms": [
            "self_hosted"
          ],
          "interfaces": [
            "library",
            "cli"
          ],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "convert": "converting HTML and CSS to PDF with WeasyPrint's Python library or command-line interface: paginated CSS layout, PDF/A and PDF/UA variants, tagged PDF output for accessibility, PDF forms, attachments, metadata and related document options, plus the CLI's stylesheet/attachment/PDF-variant controls. The scope records documented HTML/CSS-to-PDF generation and the supported PDF variant/tagging options, and explicitly excludes JavaScript execution/browser-engine emulation, editing or reflowing existing PDFs, text extraction, OCR, redaction, digital signatures, semantic/legal accessibility certification and any hosted-service claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 643,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "https://pypi.org/project/weasyprint/ (70.0, 8 September 2026, Python >=3.10, BSD, dependencies; read 2026-10-16); https://github.com/Kozea/WeasyPrint (BSD-3-Clause, created 2011-08-09, last push 2026-10-15, latest release v70.0; read 2026-10-16); https://doc.courtbouillon.org/weasyprint/stable/first_steps.html (Python >=3.10, Pango >=1.44 and dependency versions); https://doc.courtbouillon.org/weasyprint/stable/features.html (HTML/CSS to PDF, PDF/A, PDF/UA, tags, forms, attachments, metadata; CLI); https://weasyprint.org/ (Kozea creation, CourtBouillon support, licence); read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/weasyprint/"
    },
    {
      "slug": "xodo",
      "name": "Xodo",
      "tagline": "Apryse's cross-platform PDF suite: browser tools, a desktop editor and mobile apps.",
      "websiteUrl": "https://xodo.com/",
      "summary": "Xodo is Apryse's cross-platform PDF suite, sold in three parts: Xodo Web with 40 or more online tools, Xodo PDF Studio for Windows, macOS and Linux with 60 or more, and Xodo Mobile for Android and iOS. Between them they cover reading, annotating, editing text, filling forms, compressing, merging, splitting and rearranging pages, converting to and from more than 30 formats including Word, Excel, PowerPoint, HTML and DICOM, OCR on scans, comparing two documents, redacting, adding passwords and signing. Apryse's own account of how files are handled is that most tools process them on the device, and that files are permanently deleted after an hour for the tools that require an upload.",
      "bestFor": "People who want one PDF toolkit across a browser, a desktop and a phone, and who would rather most jobs kept the file on the device.",
      "watchOutFor": "Free use of the web tools is real but metered at one action a day, which is fine for a single job and not for a batch. The figures here are the vendor's dollar prices on annual billing, and monthly billing costs more. The 40% discount on the Document Suite is a promotion for new annual subscriptions running through 31 December 2026, though it continues on renewal. Xodo Sign is a separate e-signature product with its own pricing rather than part of these plans. Which tools stay on your device and which need an upload is the vendor's statement, as is the one hour deletion, and neither is a test we ran.",
      "pricingModel": "freemium",
      "priceFromGbp": 6.05,
      "priceBasis": "month",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Apryse",
      "platforms": [
        "web",
        "windows",
        "mac",
        "linux",
        "ios",
        "android"
      ],
      "launchedYear": null,
      "primaryJob": "edit",
      "jobs": [
        "edit",
        "convert",
        "merge",
        "protect",
        "view",
        "ocr",
        "compress",
        "extract",
        "sign",
        "compare"
      ],
      "jobScores": {
        "edit": 85,
        "convert": 82,
        "merge": 80,
        "protect": 80,
        "view": 80,
        "ocr": 78,
        "compress": 76,
        "extract": 74,
        "sign": 74,
        "compare": 72
      },
      "redaction": "removes_content",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-10-05",
        "source": "https://xodo.com/tools",
        "quote": "Redact PDF - Permanently redact and black out sensitive information in PDFs",
        "caveat": "The vendor claims permanence and Apryse sells the redaction engine behind several products in this index, but we have not opened an output file to confirm the text is gone. A claim of permanence is the category where a redaction test earns its keep, so this is worth a canary run rather than more reading."
      },
      "processesLocally": true,
      "processesLocallyNote": "It depends on the tool rather than on the product, in the vendor's own words: \"Most tools process files on your device locally. Files are permanently deleted after 1h for those that require upload.\" So the majority of the browser tools are on-device, some require an upload to Apryse's servers, and the desktop editor works offline. That is a split a single yes or no cannot carry, which is why the processing state is recorded as mixed and the editions name which side each one is on. The one hour deletion and the on-device processing are the vendor's statements; we have not tested either, and the vendor does not say which tools fall into which group.",
      "locality": {
        "verdict": "mixed",
        "label": "mixed, depends on version and feature",
        "detail": "The vendor's own documentation separates them. On the device: Xodo PDF Studio on Windows, macOS and Linux. On their servers: Xodo Web tools that require an upload. A single answer for the whole product would be wrong for one of them."
      },
      "license": "Proprietary",
      "openSource": false,
      "selfHostable": false,
      "interfaces": [],
      "dataResidency": "multi",
      "requiresAccount": null,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": {
        "amount": 7.99,
        "currency": "USD",
        "period": "month",
        "planName": "Xodo Web, billed annually",
        "asShown": "\"$7.99 / month\" with \"Billed $95.88 annually\"; the Document Suite is \"$14.99\" cut to \"$8.99\" under \"Save an additional 40%, for life\", billed $107.93 annually",
        "source": "https://xodo.com/pricing",
        "readAt": "2026-10-05"
      },
      "editions": [
        {
          "id": "desktop",
          "name": "Xodo PDF Studio on Windows, macOS and Linux",
          "processing": "in_process",
          "platforms": [
            "windows",
            "mac",
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "web-upload",
          "name": "Xodo Web tools that require an upload",
          "processing": "vendor_cloud",
          "platforms": [
            "web"
          ],
          "interfaces": [
            "browser"
          ],
          "requiresAccount": "unknown",
          "licenceComponents": []
        },
        {
          "id": "mobile",
          "name": "Xodo Mobile on Android and iOS",
          "processing": "unknown",
          "platforms": [
            "ios",
            "android"
          ],
          "interfaces": [],
          "requiresAccount": "unknown",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "edit": "Annotation, text editing, DOCX editing, cropping, flattening and form filling. Redaction is listed under Protect rather than here.",
        "convert": "To and from PDF across Word, Excel, PowerPoint, HTML, text, JPG, PNG and DICOM, plus PDF/A conversion and validation.",
        "merge": "Merge and split, and page management: rotate, delete and rearrange.",
        "protect": "Permanent redaction, passwords and sanitising, and flattening to stop later edits.",
        "view": "A PDF viewer and an Office viewer in the browser, and a reader on the desktop.",
        "ocr": "An OCR converter for scanned PDFs and images. The vendor does not say which languages or how accuracy was measured.",
        "compress": "A browser compressor with a high compression option. No size or quality figures are published.",
        "extract": "There is no dedicated extraction tool: data comes out through conversion to Excel, Word and text.",
        "sign": "The web tool applies a signature to a PDF. Requesting signatures from other people is Xodo Sign, a separate product with its own pricing.",
        "compare": "Text comparison and PDF comparison are two separate tools, so which one you want depends on whether you care about wording or appearance."
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 538,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 1,
      "claimsVerifiedByUs": 0,
      "reviewedBy": null,
      "source": "xodo.com/pricing and xodo.com/tools, both rendered in headless Chrome on 2026-10-05; the Apryse privacy notice at apryse.com/privacy, read in a browser the same day. Vendor claims, not independently verified.",
      "profileUrl": "https://dialegein.com/products/xodo/"
    },
    {
      "slug": "xournalpp",
      "name": "Xournal++",
      "tagline": "Open-source handwriting app for annotating PDFs with a stylus on desktop.",
      "websiteUrl": "https://xournalpp.github.io/",
      "summary": "Xournal++ is an open-source C++/GTK3 desktop handwriting and note-taking application for stylus and tablet input. The current release is v1.3.8, published 26 September 2026; the changelog also lists 1.3.7 and 1.3.6. It loads a PDF as a journal background so the user can view and navigate the pages, search the background text, select and copy text, follow links and work with the PDF outline, then handwrite, highlight, type, insert LaTeX, images and shapes on a separate annotation layer, and export/convert the journal with annotations to flattened PDF, PNG or SVG from the GUI and, for PDF/image output, the command line. Notes are stored in .xopp journals, which reference the background PDF by absolute path unless attach mode is used. The application is GPL-2.0, local and cross-platform; Xournal++ Mobile is a separate project and is not this desktop product.",
      "bestFor": "Students, teachers and stylus users on Windows, macOS or Linux who want to handwrite over lecture slides, drafts or forms while keeping editable layered notes.",
      "watchOutFor": "The current release is v1.3.8, published 26 September 2026; the changelog also lists 1.3.7 and 1.3.6. The project does not currently ship a checked-in man page for 1.3.8; the current README and source document command-line PDF and image export (--create-pdf and --create-img, plus PNG sizing options), while the older generated 1.3.7 man page is stale. Annotations live in a separate .xopp journal that stores an absolute path to the background PDF unless attach mode is used; if the PDF is moved or deleted, the background is lost. Exports are flattened/rendered output: annotations are no longer editable in the exported PDF, PDF-native annotations such as pop-up notes and forms are not preserved, and paper style/background settings can change the output. Xournal++ does not edit the original PDF pages, does not preserve PDF-native annotations or forms, and has no OCR, semantic text extraction, redaction, signing or general Office/DOCX/PDF-to-text conversion. Pen/highlighter strokes are an annotation layer above the PDF and are not redaction. The PDF viewing surface is an annotation background, not a general PDF editor. Xournal++ Mobile is a separate project and is not part of the desktop application; this record covers the Windows/macOS/Linux desktop product only.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": "Xournal++ contributors",
      "platforms": [
        "windows",
        "mac",
        "linux"
      ],
      "launchedYear": null,
      "primaryJob": "view",
      "jobs": [
        "view",
        "edit",
        "convert"
      ],
      "jobScores": {
        "view": 82,
        "edit": 70,
        "convert": 70
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "readAt": "2026-09-22",
        "source": "https://xournalpp.github.io/",
        "quote": null,
        "caveat": "The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty."
      },
      "processesLocally": true,
      "processesLocallyNote": "Architectural: a local desktop application with no server or account, and the documentation describes all PDF handling as local - the PDF as a journal background, and local export.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "A local desktop application with no server or account. PDFs are used as a journal background and the result is exported locally."
      },
      "license": "GPL-2.0. The repository LICENSE is the GNU General Public License version 2, and GitHub metadata identifies GPL-2.0; the AUTHORS file credits the Xournal++ developer team and community contributors. This is a community project, not an operating company. No paid tier, account or hosted service is offered for the desktop application.",
      "openSource": true,
      "selfHostable": null,
      "interfaces": [
        "cli"
      ],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "windows",
          "name": "Windows",
          "processing": "in_process",
          "platforms": [
            "windows"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "mac",
          "name": "macOS",
          "processing": "in_process",
          "platforms": [
            "mac"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        },
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing and navigating a PDF inside Xournal++ as a journal background, where the current README and PDF guide document loading the PDF as a background, viewing/rendering its pages, navigating pages, following links, searching the background PDF text, selecting and copying text, and using the PDF outline/structure. The scope records PDF background viewing, navigation, text selection/copy and links/outline inspection inside the desktop app, and makes no general PDF-editing, OCR, semantic text-extraction, redaction, signing or PDF-native annotation-preservation claim; the separate annotation layer and export flattening are handled by the edit and convert jobs",
        "edit": "annotate a background, flattened on export",
        "convert": "exporting a Xournal++ journal and its annotations to another file format, where the current README documents export to PDF, PNG and SVG from the GUI and command line (the current source documents command-line --create-pdf and --create-img with PNG sizing options). The export is a flattening/rendering operation: exported annotations are not editable in the PDF, PDF-native annotations and forms are not preserved, and paper style/background settings can change the result. The scope records GUI/CLI export to these documented formats, and makes no Office/DOCX conversion, PDF-to-text, OCR, general format-conversion or PDF-native annotation-preservation claim"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 231,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 2,
      "claimsVerifiedByUs": 2,
      "reviewedBy": null,
      "source": "https://github.com/xournalpp/xournalpp releases (v1.3.8, 26 September 2026), README, CHANGELOG, LICENSE and AUTHORS; https://github.com/xournalpp/xournalpp/wiki/User-Manual; https://xournalpp.github.io/guide/pdfs/ (PDF background, attach mode, navigation, text search, export caveats); current src/core/control/XournalMain.cpp CLI export options; read 2026-10-16.",
      "profileUrl": "https://dialegein.com/products/xournalpp/"
    },
    {
      "slug": "zathura",
      "name": "zathura",
      "tagline": "Keyboard-driven, plugin-based document viewer for Linux, with PDF handled by poppler or MuPDF.",
      "websiteUrl": "https://pwmt.org/projects/zathura/",
      "summary": "zathura is a document viewer built around the keyboard rather than the mouse. It is minimal by design - no toolbars or ribbons, the document filling the window - and almost everything is configured in a file. Format support is not built in: zathura is a front end, and separate plugins provide the backends, so a PDF can be rendered by either poppler or MuPDF depending on which plugin is installed, while PostScript, DjVu and comic-book formats are additional plugins. It supports keyboard navigation, scrolling/zooming, text search, an index/outline, bookmarks/quickmarks, link following, SyncTeX in both directions, automatic reload when the file changes, rotation/recolour, dual-page/presentation/fullscreen views, printing, image/attachment export and encrypted documents. Current advertised version is 2026.10.4 (dated rather than semantic versioning). The project targets Linux, with distribution packages; other desktop platforms are downstream packaging rather than a project-supported build. It is a viewer: it displays/navigates and exports/prints; it does not edit, annotate, OCR, convert, redact or sign documents.",
      "bestFor": "People working on Linux who read documents the way they read code: from the keyboard, with everything remappable, and often in a LaTeX or academic workflow where jumping between source and typeset output matters. The plugin architecture is also a genuine advantage for anyone who wants a viewer that does not drag in a full desktop stack - a PDF viewer built on MuPDF is a different proposition from one built on poppler, and here that is a package choice rather than a fork.",
      "watchOutFor": "It is not a cross-platform application. Packages live in Linux distribution repositories; other desktop platforms are downstream packaging rather than project-supported builds, so a reader outside Linux should look elsewhere. Format support depends entirely on which plugins are installed - a zathura without a PDF plugin cannot open a PDF at all - and the licence of an installation depends on its plugins as well as the zlib core. Version numbers are dates rather than semantic versions, making it hard to judge how current a distribution package is. It is a viewer: it displays, searches, navigates, exports images/attachments and prints, and does not edit, annotate, OCR, extract text as a service, convert, redact, sign or validate accessibility. The configuration-file approach means the initial experience is a default keymap and little else; customisation is work. Local viewing does not mean zero network: following a link opens an external application, but the project describes no document upload or telemetry.",
      "pricingModel": "open_source",
      "priceFromGbp": null,
      "priceBasis": "unknown",
      "unitPrice": null,
      "hasFreeTier": true,
      "owner": null,
      "platforms": [
        "linux"
      ],
      "launchedYear": 2009,
      "primaryJob": "view",
      "jobs": [
        "view"
      ],
      "jobScores": {
        "view": 78
      },
      "redaction": "none",
      "redactionEvidence": {
        "basis": "documentation",
        "source": "https://pwmt.org/projects/zathura/",
        "readAt": "2026-09-22",
        "quote": null,
        "caveat": "Recorded as `none` on absence, and structurally: this is a reader. It renders documents, follows links, searches, browses the index, reads metadata, exports images and attachments, opens encrypted documents and prints - a documented feature list that modifies nothing in the file. What it does not establish: that a plugin could not add an editing surface later, since the architecture is explicitly plugin-based and the plugin set was not surveyed beyond the PDF backends."
      },
      "processesLocally": true,
      "processesLocallyNote": "An installed local application: documents are opened from the filesystem and rendered on the machine, with no account or document-upload service and no telemetry described by the project. One documented outbound path exists: following a document link opens it in the user's external browser. The project targets Linux and BSD, but the schema has no BSD slug; platforms is recorded as Linux only. No other desktop platform is project-supported.",
      "locality": {
        "verdict": "no_server",
        "label": "no server in the path",
        "reason": "An installed local viewer. Documents are opened from the filesystem and rendered on the machine by whichever format plugin is installed, with no vendor service and no account, and no document upload or telemetry described in the project material. One outbound action is documented: links in a document open in an external browser, which sends nothing about the document but is outbound all the same, so this describes local document viewing rather than guaranteeing no outbound interaction."
      },
      "license": "zlib for the core (LICENSE) and for zathura-pdf-poppler (LICENSE), read from the files; other format plugins were not read, so the licence of a given installation depends on the installed plugins. The core is free/open source, permissive and non-copyleft.",
      "openSource": true,
      "selfHostable": true,
      "interfaces": [],
      "dataResidency": "self_hosted",
      "requiresAccount": false,
      "watermarkOnFree": null,
      "title": null,
      "originalPricing": null,
      "editions": [
        {
          "id": "linux",
          "name": "Linux",
          "processing": "in_process",
          "platforms": [
            "linux"
          ],
          "interfaces": [],
          "requiresAccount": "no",
          "licenceComponents": []
        }
      ],
      "jobScopes": {
        "view": "viewing and navigating documents locally with zathura: opening PDFs through the installed zathura-pdf-poppler or zathura-pdf-mupdf plugin, page navigation/scroll/zoom, text search, index/outline, bookmarks and quickmarks, link following, SyncTeX forward/backward, automatic reload on file changes, rotation/recolour, dual-page/presentation/fullscreen views, document metadata, encrypted-document password handling, printing, and image/attachment export. The scope records local viewing/navigation/printing/export only; it excludes editing, annotation persistence, OCR, text extraction as a service, redaction, signing, conversion, accessibility validation/certification, document upload/telemetry and general PDF processing"
      },
      "inputs": [],
      "outputs": [],
      "availability": {
        "state": "ok",
        "label": "ok",
        "httpStatus": 200,
        "latencyMs": 994,
        "checkedAt": "2026-10-21T11:44:04.478Z",
        "uptimeRecentPct": 100
      },
      "claimsTotal": 3,
      "claimsVerifiedByUs": 3,
      "reviewedBy": null,
      "source": "https://pwmt.org/projects/zathura/ (latest version 2026.10.4; plugin-based formats; keyboard navigation, links, SyncTeX, search/index/meta, encrypted docs, print, image/attachment export; read 2026-10-16); https://pwmt.org/projects/zathura/documentation/ (Version 0.5.12 documentation; bindings/commands/bookmarks/search/link/print/export/SyncTeX; read 2026-10-16); https://man.archlinux.org/man/zathura.1 (viewer synopsis/options/search/bookmarks/print/export; read 2026-10-16); https://pwmt.org/projects/zathura/plugins/ (pdf-poppler, pdf-mupdf, djvu, ps, cb plugins; read 2026-10-16).",
      "profileUrl": "https://dialegein.com/products/zathura/"
    }
  ]
}
