{
  "id": 10155786,
  "title": "The QA Script That Checks 8,556 PDF Links (and What It Caught)",
  "url": "https://urgent.news/2026/09/27/the-qa-script-that-checks-8-556-pdf-links-and-what-it-caught",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-27T06:17:01.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/designclarity/the-qa-script-that-checks-8556-pdf-links-and-what-it-caught-19kp"
  },
  "original_language": "en",
  "account": "A QA script meticulously verifies an 871-page hyperlinked PDF planner for broken links before release. The script opens the PDF, asserts the correct number of pages, extracts text from sample pages, and checks every link annotation to ensure it points to the correct destination page within the document. The script also performs semantic checks to confirm that links land on the expected pages and that the content on the destination page matches the expected information. One particularly high-risk area is the weekly spreads that form a chain across year boundaries, where off-by-one errors could cause links to point to the wrong pages. The script also asserts that the PDF is static, with no JavaScript actions or external URIs, to avoid support nightmares and trust issues. The script caught no broken links on the final shipped build, but it prevented similar bugs during earlier development stages by catching issues caused by inserting pages. The script is an integral part of the product, ensuring the rendered PDF works as intended before release. However, the script cannot fully guarantee that the planner will work correctly on every annotation app, as the product's README states that on-device testing in GoodNotes and Notability is still pending.",
  "summary": "A link you never click is a bug your customer finds I generated an 871-page hyperlinked PDF planner with Python — 8,556 internal link annotations across 730 daily pages, 105 weekly spreads, 24 monthly calendars, and a persistent tab bar. The render pass is only half the job. The other half is a verification script that re-opens the finished PDF and checks every single link, because a link you…",
  "key_points": [
    "QA script verifies 871-page hyperlinked PDF planner for broken links",
    "Script checks every link annotation for correct destination page",
    "Script caught bugs during development, prevented release issues"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}