{"id":"51159fa6-c22b-4c83-9406-f204e650ab65","shortId":"ZxBZcr","kind":"skill","title":"Repair, split, merge, and normalize PDFs with qpdf before downstream processing","tagline":"Preprocess messy PDFs into a stable form before extraction, review, packaging, or delivery workflows depend on them.","description":"# Repair, split, merge, and normalize PDFs with qpdf before downstream processing\n\nPreprocess messy PDFs into a stable form before extraction, review, packaging, or delivery workflows depend on them.\n\n## Prerequisites\n\nqpdf installation, source PDF files, writable output path, optional downstream extraction or delivery workflow\n\n## Installation\n\nUse the upstream install or setup path that matches your environment:\n- cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo\n- cmake --build build\n- cmake -S . -B build -G 'MSYS Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo\n- cmake -S . -B build\n\nRequirements and caveats from upstream:\n- qpdf depends on the external libraries [zlib](https://www.zlib.net/) and [jpeg](https://www.ijg.org/files/).\n- By default, slow tests and tests that require dependencies beyond those needed to build qpdf are disabled. Slow tests\n\nBasic usage or getting-started notes:\n- Official qpdf releases are signed using [cosign](https://docs.sigstore.dev/quickstart/quickstart-cosign/). Each release includes a sha256 file containing sha256 checksums of all the release files. To verify a release,...\n- To build and test qpdf, a C++ compiler that supports C++20 is required. To link with qpdf, a C++17-compatible compiler\n- is sufficient.\n\n- Source: https://github.com/qpdf/qpdf\n- Extracted from upstream docs: https://raw.githubusercontent.com/qpdf/qpdf/HEAD/README.md\n\n## Documentation\n\n- https://qpdf.readthedocs.io/\n\n## Source\n\n- [Agent Skill Exchange](https://agentskillexchange.com/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing/)","tags":["repair","split","merge","and","normalize","pdfs","with","qpdf","before","downstream","processing","skills"],"capabilities":["skill","source-agentskillexchange","skill-repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing","topic-agent-skills","topic-ai-agents","topic-ai-tools","topic-awesome-list","topic-claude-code","topic-codex","topic-cursor","topic-llm","topic-mcp","topic-npx-skills","topic-openclaw","topic-skills-catalog"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/agentskillexchange/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add agentskillexchange/skills","source_repo":"https://github.com/agentskillexchange/skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (1,600 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:12:05.221Z","embedding":null,"createdAt":"2026-05-18T13:18:50.615Z","updatedAt":"2026-05-18T19:12:05.221Z","lastSeenAt":"2026-05-18T19:12:05.221Z","tsv":"'+17':204 '+20':195 '/)':124 '/files/).':129 '/qpdf/qpdf':212 '/qpdf/qpdf/head/readme.md':219 '/quickstart/quickstart-cosign/).':165 '/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing/)':228 'agent':223 'agentskillexchange.com':227 'agentskillexchange.com/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing/)':226 'b':86,97,108 'basic':149 'beyond':139 'build':87,89,93,94,98,103,109,143,185 'c':190,194,203 'caveat':112 'checksum':174 'cmake':84,92,95,106 'compat':205 'compil':191,206 'contain':172 'cosign':162 'dcmake':88,102 'default':131 'deliveri':24,52,70 'depend':26,54,116,138 'disabl':146 'doc':216 'docs.sigstore.dev':164 'docs.sigstore.dev/quickstart/quickstart-cosign/).':163 'document':220 'downstream':10,38,67 'environ':83 'exchang':225 'extern':119 'extract':20,48,68,213 'file':62,171,179 'form':18,46 'g':99 'get':153 'getting-start':152 'github.com':211 'github.com/qpdf/qpdf':210 'includ':168 'instal':59,72,76 'jpeg':126 'librari':120 'link':199 'makefil':101 'match':81 'merg':3,31 'messi':13,41 'msys':100 'need':141 'normal':5,33 'note':155 'offici':156 'option':66 'output':64 'packag':22,50 'path':65,79 'pdf':61 'pdfs':6,14,34,42 'preprocess':12,40 'prerequisit':57 'process':11,39 'qpdf':8,36,58,115,144,157,188,201 'qpdf.readthedocs.io':221 'raw.githubusercontent.com':218 'raw.githubusercontent.com/qpdf/qpdf/head/readme.md':217 'releas':158,167,178,183 'relwithdebinfo':91,105 'repair':1,29 'requir':110,137,197 'review':21,49 'setup':78 'sha256':170,173 'sign':160 'skill':224 'skill-repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing' 'slow':132,147 'sourc':60,209,222 'source-agentskillexchange' 'split':2,30 'stabl':17,45 'start':154 'suffici':208 'support':193 'test':133,135,148,187 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-tools' 'topic-awesome-list' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-llm' 'topic-mcp' 'topic-npx-skills' 'topic-openclaw' 'topic-skills-catalog' 'type':90,104 'upstream':75,114,215 'usag':150 'use':73,161 'verifi':181 'workflow':25,53,71 'writabl':63 'www.ijg.org':128 'www.ijg.org/files/).':127 'www.zlib.net':123 'www.zlib.net/)':122 'zlib':121","prices":[{"id":"2e0b19d5-e0f7-4748-a20c-9a8a5e808e00","listingId":"51159fa6-c22b-4c83-9406-f204e650ab65","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"agentskillexchange","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:18:50.615Z"}],"sources":[{"listingId":"51159fa6-c22b-4c83-9406-f204e650ab65","source":"github","sourceId":"agentskillexchange/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing","sourceUrl":"https://github.com/agentskillexchange/skills/tree/main/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing","isPrimary":false,"firstSeenAt":"2026-05-18T13:18:50.615Z","lastSeenAt":"2026-05-18T19:12:05.221Z"}],"details":{"listingId":"51159fa6-c22b-4c83-9406-f204e650ab65","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"agentskillexchange","slug":"repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing","github":{"repo":"agentskillexchange/skills","stars":8,"topics":["agent-skills","ai-agents","ai-tools","awesome-list","claude-code","codex","cursor","llm","mcp","npx-skills","openclaw","skills-catalog"],"license":"mit","html_url":"https://github.com/agentskillexchange/skills","pushed_at":"2026-05-18T19:02:17Z","description":"The open catalog of AI agent skills — 2,000+ security-scanned skills for Claude Code, Cursor, Codex, and more.","skill_md_sha":"bc0e9654c15f560800b9a0220aa2492f46beb8ec","skill_md_path":"skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/agentskillexchange/skills/tree/main/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"Repair, split, merge, and normalize PDFs with qpdf before downstream processing","description":"Preprocess messy PDFs into a stable form before extraction, review, packaging, or delivery workflows depend on them."},"skills_sh_url":"https://skills.sh/agentskillexchange/skills/repair-split-merge-and-normalize-pdfs-with-qpdf-before-downstream-processing"},"updatedAt":"2026-05-18T19:12:05.221Z"}}