# BULK66 — Browser-based file tools

**2 November update:** the header theme button now controls all studios and remembers the selected appearance. Search below the menu finds tools and output formats, including common spelling mistakes. On mobile, tap a label text box or Add Text to open the text editor, then choose Apply text. Dragging still moves elements; the corner handle resizes and the top handle rotates. Edit selected text also opens the editor from desktop or Layers selection.

**Windows:** extract the entire `bulk66-website.zip`, then double-click `index.html` in the extracted folder. Keep `converter.js` and `vendor/` beside it. No installation, account, hosting, or internet connection is required. Use Edge or Chrome. Do not open index.html from inside the ZIP preview.

The existing page and design are retained. All conversion libraries are local files, not CDN requests. No file data is uploaded. Testing used a temporary localhost server; it is not required by the delivered package. The automated preview tool blocks file:// navigation, so direct double-click execution was not verified by that tool.

## PDF Studio

Open `pdf-studio.html`, or use the new navigation link. The separate studio adds PDF page tools, annotations, visual signatures, password protection/unlocking, and English OCR. All engines are bundled and processing stays on the visitor's device. See [PDF Studio guide](PDF-STUDIO.md) for usage and limits. Existing conversion behaviour is preserved; local download actions are available.

## Label Studio

Open `label-studio.html`, immediately after Converter in the navigation. It includes 75 editable layouts in 15 categories, a drag-and-drop editor, images, text, shapes, barcode/QR generation, local/project saving, PNG/JPG/PDF downloads and accurate A4/A3 label sheets. See [Label Studio guide](LABEL-STUDIO.md). Keep the complete extracted folder together, including `pdf-studio.css`, which supplies shared styling.

## Barcode Studio

Open `barcode-studio.html` for 32 generator tools, validated inputs, live customisation, independent scan verification, uploaded-image/camera scanning and precise label sheets. Unsupported postal, carrier and bank-specific schemes are not included. See [Barcode Studio guide](BARCODE-STUDIO.md).

## Use

1. Choose a category and select or drop files (up to 20 per batch).
2. Choose an output. Choices must be supported for **every queued file**. Same-format export is available for adjustments. PDF uploads can only output PDF.
3. Optionally add adjustment cards below Convert to. Drag the grip or use the arrow buttons to reorder; × removes a card. No Changes clears the stack.
4. Convert, then download each result. Presentation JPG output downloads a ZIP containing one JPEG per generated text page.

Options depend on the input extension, bundled engines, and browser encoders. Engines then actually parse/decode contents. Corrupt files and unsupported codecs show errors; other files continue. A container extension such as MP4 does not guarantee its codecs are supported. Progress advances between files; MP3 and real-time media conversion also update within a file.

## Additional Settings

No Changes is selected initially. Settings apply to the whole queue. Content adjustments run top to bottom; encoding quality, bitrate, FPS, and presentation resolution are export controls. Changing settings discards stale downloads.

- Images: resize with ratio lock, crop by position, rotate, flip, background fill or preserve alpha. Lossy outputs offer quality and target KB; impossible targets return an error. Transparency does not remove an existing opaque background.
- Video: fit resolution, quality/target MB, trim, FPS, speed, mute. Recording bitrate/size and frame rate depend on browser performance. An output above the target is rejected. Speed changes pitch.
- Audio: trim, bitrate for compressed formats, volume, speed, sample rate, mono/stereo. Speed changes pitch; high volume can clip. WAV/AIFF retain the chosen sample rate; browser compressed encoders may choose a supported rate.
- Documents: PDF uploads enable page extraction and splitting. Use `1,3-5` for pages; `1-3;4-6` for split groups, or blank for every page. Merge appears with multiple files; its order uses every queue/group number once. Multiple split results download as a ZIP. Quality compression is available for PDFs generated from text, not existing PDF page streams.
- Spreadsheets: select exact sheet names in the requested order, export an A1 range, remove empty rows. Range/row edits export stored values, not shifted formulas. CSV/TSV export the first selected sheet.
- Presentations: select/reorder slides, split into JPGs with a filename prefix, set image/PDF resolution and quality, toggle slide-number headings. These remain text-only reconstructions; long slides create continuation pages.

## Supported conversion paths

| Category | Inputs | Outputs |
| --- | --- | --- |
| Images | JPG, JPEG, JFIF, PNG, WebP, AVIF, GIF, BMP, TIFF, TIF, SVG, ICO, PSD | JPG, JPEG, JFIF, PNG, WebP, GIF, BMP, TIFF, TIF, SVG, ICO, PSD, PDF; AVIF only if the browser truly encodes it |
| Videos | Browser-playable MP4, MOV, WebM, M4V, OGV; AVI, MKV, WMV, FLV, MPEG, MPG, 3GP, TS, VOB can be selected but work only if the browser decodes their actual container/codecs | MP4 and WebM when supported by MediaRecorder |
| Audio | Browser-decodable MP3, WAV, FLAC, AAC, M4A, OGG, Opus, WebM; AIFF, WMA, ALAC, AMR can be selected but browser decoding support varies | MP3, WAV, AIFF; M4A, OGG, Opus only with a matching browser encoder/container |
| Documents | PDF (PDF output only); UTF-8 TXT, MD, CSV, JSON, XML, HTML; unencrypted DOCX, ODT, EPUB | PDF, DOCX, TXT, RTF, ODT, HTML, EPUB, MD, XML |
| Spreadsheets | XLS, XLSX, CSV, ODS, TSV, JSON, Excel SpreadsheetML 2003 XML | XLS, XLSX, CSV, ODS, TSV, JSON, Excel SpreadsheetML 2003 XML |
| Presentations | Unencrypted PPTX, ODP with extractable slide text | PPTX, ODP, PDF, JPG (ZIP) — **text-only slide reconstruction** |

### Images

All conversions are still-image conversions. Animation and metadata are not retained. TIFF imports page 1; PSD imports its saved composite (use Photoshop's Maximize Compatibility). Unusual TIFF color/compression modes or PSD features may be unsupported.

- GIF has up to 256 colors and flattens transparency to white.
- JPEG/JFIF, BMP, PDF also flatten transparency to white. JPEG aliases are genuinely re-encoded, not renamed.
- SVG output embeds a PNG inside a self-contained SVG. **It is not vector tracing.**
- ICO contains a PNG-backed icon, proportionally scaled down to fit within 256 × 256 pixels.
- PSD output is flattened, not reconstructed source layers. TIFF output is uncompressed RGBA and may be large.
- External SVG resources and active content are removed; self-contained features supported by the browser are rasterized.

### Audio/video

MP3 uses bundled LAME at a default 128 kbps for mono/stereo input. Use the Channels adjustment to downmix multichannel input for MP3. WAV/AIFF use 16-bit PCM. Audio may be resampled to the browser context's sample rate.

M4A/OGG/Opus appear only when MediaRecorder advertises an appropriate encoder. OGG may contain Vorbis or Opus; `.opus` specifically uses Ogg/Opus. WebM audio is never renamed to `.opus` or `.ogg`.

Video and browser-recorded audio run in real time. Keep the tab visible. Video defaults to 30 fps at original dimensions, with decoded audio; adjustment cards change these settings. It is not lossless. Video must have a readable duration; recordings lacking duration metadata may need re-saving in a media editor.

### Documents

Conversions preserve **text content**, not original layout. Images, styles, table structure, links, headers/footers, and complex formatting are not retained. DOCX/ODT import paragraphs; EPUB follows reading order. HTML is parsed inertly without executing scripts or loading source resources. Markdown input is treated as source text; Markdown output escapes formatting characters. XML output is a simple `<document><p>…</p></document>` representation. Use Spreadsheets for structured CSV/JSON/XML conversion.

PDF renders text onto page images using fonts available on your device. It is readable but **not searchable/selectable text**, PDF/A, or accessibility-tagged PDF. Missing font glyphs may appear as boxes. PDF uploads support page-preserving split, merge, and extraction to PDF only. OCR and PDF-to-text are excluded. Page copying does not promise preservation of document-level forms, bookmarks, or signatures.

### Spreadsheets

Workbook formats retain multiple sheets where supported. **CSV/TSV export the first sheet only.** JSON outputs a sheet-name-to-row-arrays object. JSON input also accepts one array of row arrays or one array of records; mixed arrays/records are rejected. XML is specifically **Excel SpreadsheetML 2003**, not arbitrary XML.

Macros, charts, and advanced formatting are not retained. Formulas are not recalculated; exports can depend on stored values. Dates, numbers, and formulas may differ in text formats. Review complex workbooks before relying on results.

### Presentations

This is **text-only conversion**, not a PowerPoint/LibreOffice renderer. Slides are rebuilt as simple text pages. Original graphics, layout, animation, notes, and media are not retained. Long text creates continuation pages. A slide with no extractable text causes an error rather than a silent blank replacement. JPG output is a ZIP of these text pages.

## Intentionally omitted

HEIC/HEIF, camera RAW/DNG, guaranteed AVIF encoding, legacy video output formats, FLAC/AAC/WMA/ALAC/AMR encoding, MIDI, legacy DOC/PPT, RTF input, MOBI, and AZW3. Reading FLAC or AVIF does not imply encoding support. Less common media inputs depend on browser decoders. There are no placeholder outputs that just change extensions.

The converter does not include FFmpeg/WASM, RAW development, HEIC encoding, DRM removal or full Office rendering. English OCR is available separately in PDF Studio. Bundled engines keep local preview straightforward.

## Processing limits

No application-imposed upload, file-size, duration or usage quotas. Actual browser memory and codec support determine what can be processed. Files stay local.

Results stay in memory until cleared or closed. Changing category clears the queue. Changing output discards old results. Original files are never overwritten.

## WordPress integration

Copy `index.html`, `converter.js`, and `vendor/` together into a static site folder. Use a Custom HTML block:

```html
<iframe src="/path/to/converter/index.html" title="Local file converter"
  style="width:100%;height:1250px;border:0" loading="lazy"></iframe>
```

Adjust the URL and height. Serving this static app does not upload selected files. Avoid a sandboxed iframe unless you configure the required script/download permissions. Long queues can scroll inside the frame.

For inline integration, put the `<main id="local-converter">` markup in a template, enqueue its CSS (omitting the standalone `body` rule), enqueue all five vendor scripts in index.html order, then enqueue `converter.js` after the markup. CSS is scoped to `#local-converter`. Use one instance per page. WordPress post sanitization can strip scripts, so use an iframe or a child-theme enqueue.

## Libraries and source

See `THIRD-PARTY-NOTICES.txt` and `vendor/licenses/` for versions, licenses, and source references. `vendor/lamejs-source.zip` contains the source corresponding to the unmodified LAME JavaScript library. Users do not need a package manager or build step.


## Scanner Studio and BULK66 update

Scanner Studio appears immediately after Label Studio. See [Scanner Studio guide](SCANNER-STUDIO.md) for perspective cropping, paper cleaning, editing, multipage exports and limits.

All five pages share BULK66 branding and generated-file download controls. The official website is https://bulk66.com. There are 84 dedicated tool URLs with static instructions and metadata. [SEO and deployment guide](SEO-DEPLOYMENT.md) explains the permanent domain, sitemap and Cloudflare configuration. Open index.html to start locally.

Camera access depends on the browser/device. Sharing integrations have been removed; generated files can be downloaded locally. The shared panel retains up to 20 recent generated files, with a 200 MB aggregate retention target (one larger result may remain). Refreshing or closing the page clears this session list.

## File limits and privacy

See [Local processing and privacy](USAGE-AND-PRIVACY.md). There is no cooldown endpoint or server plugin requirement.
