The Technical Architecture
Traditional online converters send your sensitive files across the public internet to third-party web servers. In contrast, PDFtoImage executes 100% within your client environment using modern browser APIs:
1. File Stream Buffering
The native HTML5 File API reads your selected PDF into an ArrayBuffer inside the browser's protected V8 JavaScript memory.
2. Mozilla PDF.js Parsing
The battle-tested PDF.js Web Worker decodes the document's cross-reference tables, font streams, glyph tables, and vector path matrices.
3. Canvas 2D Rasterization
The calculated viewport is scaled according to your target DPI and rendered directly into an offscreen HTML5 <canvas> context.
DPI Calculation & Mathematical Scaling
Under the official Adobe PDF 1.7 specification (ISO 32000-1), standard typographic dimensions are recorded in points (where 1 point = 1/72 inch).
To render an image at a specific DPI, our engine calculates the viewport scale factor using the formula:
Scale Factor = Target_DPI / 72.0
For example:
- 72 DPI (Standard Web):
72 / 72 = 1.0x Scale(8.5 × 11 in = 612 × 792 px) - 150 DPI (High Definition):
150 / 72 = 2.083x Scale(8.5 × 11 in = 1275 × 1650 px) - 300 DPI (Commercial Print):
300 / 72 = 4.167x Scale(8.5 × 11 in = 2550 × 3300 px)
In-Memory ZIP Packaging (JSZip)
When batch converting dozens of pages, storing hundreds of megabytes in intermediate disk files would be inefficient. Our tool utilizes JSZip to bundle the raw canvas image blobs directly into a compressed Deflate ZIP archive in RAM.
Once created, a transient Object URL (blob:https://...) is generated for instant single-click downloading and immediately revoked to free up system memory.