PRODUCTS & SYSTEMS · 2026 · INTERNAL COMPLETION RECORD · EXTERNAL USE 0
The classical-text material I had saved from the web was scattered across MHTML files that were awkward to read on a tablet. I built a pipeline that preserved the page proportions, rendered one archive file as one PDF page, merged pages by volume and added bookmarks.
The internal run log records 2,134 input files, 2,134 output pages and four merged PDFs, with no failed conversions recorded. That is an internal processing result, not independent validation. The source pages and converted volumes remain private.
Text anchors survived where coordinates did not
Headers and study controls shifted slightly from file to file. Cropping fixed coordinates could remove part of the text, so I changed the cleanup step to identify labels and page structure instead. Chapter and section filenames were naturally sorted into reading order rather than compared as plain strings.
A headless browser handled rendering. Once a single-page PDF existed, it moved to merging and bookmark generation. Completed pages were skipped on a resumed run so a late interruption did not force the entire collection through the renderer again.
The stubborn defects were an endless wait and a few pixels
One style-injection path never signalled completion for the archived format, leaving the renderer waiting indefinitely. A separate print-height error pushed a page over by a few pixels and created a blank extra sheet. I isolated the wait condition and fixed the measured height rather than treating both as generic conversion failures.
Permission to transform is not permission to publish
This was a private reading-format conversion. The source copyright and repository terms have not been cleared for redistribution, so I do not show the text, screenshots, source addresses or merged files. The page count belongs to the technical log, not to a public archive result.
Project record
Period: 2026
Role: MHTML extraction, rendering, merging, bookmarking and resumable-run design
Internal evidence: conversion code, processing logs and merged PDFs
Internal result: 2,134 files→2,134 pages, four merged volumes, zero failures in the run log
External validation and final outcome: external adoption 0; rights and repository terms remain unresolved
