# PDF Studio

Extract the complete BULK66 website ZIP, then open **pdf-studio.html** in Edge or Chrome. You can also open index.html and follow the **PDF Studio** navigation link. Keep the HTML, CSS, JavaScript and vendor folder together. There is no installation or server requirement. The existing converter remains available alongside PDF Studio.

## Workflow

Choose a tool, then add PDFs or images. Files are read in your browser, never uploaded. New files append pages to the current document. Choose another tool to continue working on the same document. Download PDF saves your current document; exports such as Split, Convert and Protect provide a separate result link.

- Select page checkboxes to target an operation. With none selected, operations target all pages unless the tool explains otherwise.
- Click a thumbnail to open its large preview. Drag the grip to reorder, or use the arrow buttons. `+` duplicates a page.
- The live toolbar adds text, images, rectangles, ellipses, highlights, signatures and watermarks. Choose an element type and tap the page to place it. Drag to move, use handles to resize/rotate, or open Properties. New elements appear immediately on the current page without Apply.
- Layers lists added elements for the current page. Select, rename, hide, lock, duplicate, delete or change stacking order. Existing PDF paragraphs are not separate editable layers.
- Zoom with the slider, Fit or a two-finger pinch. On phones, Properties/Layers opens a bottom sheet; the page remains visible. Arrow keys nudge selected elements; Delete removes them.
- The page toolbar rotates or deletes the current page immediately. Crop uses eight draggable handles and takes effect on release. Undo restores the crop. Bulk page tools still use page checkboxes.
- Undo/redo keeps the most recent 40 document/layer changes. Exports do not change the document and therefore do not add an undo step. Reloading or closing clears the session. Save downloads before leaving.

## Tools and scope

| Tool | Actual operation |
| --- | --- |
| Merge / Images to PDF | Append PDF pages or convert JPG, PNG and WebP to image PDF pages; rearrange before saving. |
| Split | Create PDFs from groups such as `1-3;4-6`, packaged in ZIP. Blank splits selected pages individually. |
| Extract Pages | Keep selected pages, or specify numbers/ranges in the desired order. Replaces the working document; undo is available. |
| Organise Pages | Drag/arrow reorder, duplicate, delete selected pages, reverse order, or enter a complete page sequence. At least one page must remain. |
| Rotate | Turn selected pages by 90, 180 or 270 degrees. |
| Crop | Drag the visible crop handles on the current page. Hidden content remains in the PDF: this is not secure redaction. |
| Edit | Place wrapping text, images, shapes and highlights directly on the page. Text uses locally available fonts and supports characters those fonts can render. Existing paragraphs are not rewritten. |
| Watermark / Page Numbers | Position live watermark layers with rotation/opacity on the current page; page numbers remain a bulk sequential-footer operation. |
| Sign | Draw a signature using a mouse, pen or touch and embed it as an image. This is not a certificate-backed digital signature. |
| Compress | QPDF lossless stream/object optimisation, or lossy page-image rebuilding with quality/DPI controls. Image mode removes text, links, forms and interactive content, and flattens live layers. If an output is not smaller, the original is retained. Applies to the entire document. |
| Convert | Export selected pages as PNG/JPG ZIP or existing text as UTF-8 TXT. Images can be added to create PDF pages. No PDF-to-Word layout reconstruction is promised. |
| Protect | Export a separate AES-256 password-encrypted PDF. Minimum 8-character password and confirmation. The working document remains unencrypted in memory so editing can continue. |
| Unlock | Enter a known password in the import field before adding the encrypted PDF. It is decrypted locally; export an unlocked copy. Incorrect passwords fail. No password cracking. |
| OCR | Bundled English recognition, exporting TXT or replacing selected pages with images plus an invisible searchable text layer. Other pages stay intact. English model only; unsupported OCR characters in the searchable layer become `?`. Review recognition accuracy. |

Added elements stay editable in the current session, including through page reordering, duplication, rotation, crop and extraction. Download bakes visible layers into the PDF; hidden layers are omitted. Overlay artwork, including added text, exports as transparent images to preserve the exact appearance of local fonts and Unicode. Original text remains searchable. Exported overlay text is not a new searchable text layer. A reopened exported PDF does not recover session layer controls. Raster compression and searchable-image OCR intentionally flatten affected artwork.

PDFs are diverse. Page copying preserves visible page content but may discard document-level bookmarks, form structures, attachments and other advanced features. Existing digital signatures are not preserved as valid signatures after editing. Malformed, unusual or memory-intensive files may fail. The original input files are never overwritten.

## Limits and performance

No upload-count, file-size, page or input-megapixel quotas. Large photos become appropriately sized working images automatically. Originals stay untouched. Processing remains local and depends on the device and browser.

The OCR engine/model and QPDF engine load only when invoked. They are already included in the package; there are no runtime CDN requests. Language data and WebAssembly are embedded in local JavaScript wrappers so browser file:// restrictions do not require a local server. Script loading and in-memory Blob URLs are used, not server file uploads. No analytics or third-party APIs are present.

## WordPress

Copy the full package to a static directory and embed it with a Custom HTML block:

```html
<iframe src="/tools/local/pdf-studio.html" title="PDF Studio"
  style="width:100%;height:1400px;border:0" loading="lazy"></iframe>
```

Adjust the URL/height. The page scrolls within the iframe. Use the normal iframe environment; restrictive sandbox or Content Security Policy settings can block scripts, Blob workers or downloads. Hosting these static assets does not upload visitors' documents. Link your WordPress menu to the page containing the iframe, or directly to pdf-studio.html. Do not paste the entire page into a post editor that strips scripts.

## Validation and dependencies

See VERIFICATION.txt and THIRD-PARTY-NOTICES.txt. Real output tests cover page edits, annotations, text/image export, AES-256 interoperability with PDF.js, wrong-password rejection, local OCR, and searchable text output. Browser tests used localhost; the automation environment blocks file:// navigation, so double-click execution was not directly tested by that tool. The delivered package is designed for direct opening and requires no localhost server.

PDF.js 4.10.38, pdf-lib 1.17.1 and JSZip 3.10.2 handle rendering, editing and archives. QPDF WASM 0.3.0 provides encryption/decryption and lossless optimisation. Tesseract.js 6.0.1, core 6.1.2 and the bundled English model provide OCR. Local build wrappers combine the original libraries into classic scripts. An OCR message adapter normalises bundled language descriptors during initialization; no recognition model is modified. Licenses and source references are included in vendor/licenses and THIRD-PARTY-NOTICES.txt.

See [Local processing and privacy](USAGE-AND-PRIVACY.md) for current behaviour.
