PDF Tools — Manual
The complete reference for PDF Tools: Viewer & Editor, Creator, Merge & Split, Convert and Reference — every feature, every option, every limit.
Back to the overview: PDF Tools · Open the tool live: www.jpkc.com/tools/pdf/
This manual documents PDF Tools in full: all five tabs, every feature and option, plus the architecture and operating limits. The interface is in English, so the original tab, button and option labels are used throughout.
Architecture: all in the browser
PDF Tools are purely client-side. There is no server processing your files, no API, no upload and no account. Every operation runs locally in your browser via JavaScript. To do that, the tool combines several open-source libraries, all bundled locally and loaded only when you use the relevant tab:
- Mozilla PDF.js (Apache 2.0) — the embedded viewer, preview rendering, text extraction and metadata reading.
- pdfmake (MIT) — the Creator plus the Markdown and Simple HTML conversions (producing real, searchable text). Embedded font: Roboto.
- pdf-lib (MIT) — Merge, Split and Images → PDF.
- html2pdf.js (MIT, internally html2canvas + jsPDF) — the visual Rich HTML conversion (raster).
Size limit: files may be up to 50 MB. Larger ones are rejected with a message. This protects your browser's memory — it is not a server-side limit. When opening PDFs for Merge and Split, the tool ignores existing encryption (ignoreEncryption), so it can load many protected files too.
Viewer & Editor
The default tab on load. Here you view and edit a PDF in the full Mozilla PDF.js viewer.
Open a PDF
Drag and drop a .pdf file onto the drop zone or click Browse Files. The file is loaded locally as an object URL and shown in the embedded viewer — it never leaves your browser. Close unloads the file.
View, search, navigate
The embedded viewer offers the complete PDF.js interface: paging, zoom, page thumbnails and outline, search with match highlighting, rotate, presentation mode and print. The tool's own toolbar above the viewer adds Fullscreen.
Annotate, highlight, draw, sign, insert images
The viewer's editor tools let you genuinely edit the PDF:
- Highlight — highlight text passages in colour (colour, thickness and visibility adjustable).
- FreeText — place text notes directly on the page (colour, font size).
- Ink (Draw) — draw freehand (colour, opacity, stroke width).
- Stamp (Add Image) — insert an image as a stamp.
- Signature — create and place a signature.
You save your changes via the viewer's Save — the result is downloaded as a new PDF file. There is no server-side storage; saving means a local download only.
Fill in forms
If the PDF contains interactive form fields (AcroForms), the viewer renders them as fillable fields. Enter your values directly and save the completed form via Save.
Info (document metadata)
The Info button opens a panel with the document's metadata: file name and size, page count, title, author, subject, keywords, creator, producer, PDF version, page size (in points, mm and inches, computed from the first page), creation and modification dates, and the Linearized and Encrypted flags. Empty fields are hidden. Copy copies the table as text. (The "Tagged" field is derived from the AcroForm flag and therefore indicates the presence of form fields rather than a true tagged-PDF structure.)
Extract text
The Text button reads all text content out of the PDF — page by page, each marked --- Page N ---. Below it you see statistics (pages, words, characters). You can Copy the text or download it as .txt. This only works on PDFs with a real text layer; pure scans without text return little (the tool has no OCR).
Creator
Here you build a PDF from scratch — from blocks instead of code. The form on the left, the live preview on the right.
Document Settings
- Page Size — A4 (default), A3, A5, Letter, Legal or Tabloid.
- Orientation — Portrait or Landscape.
- Font — fixed to Roboto (the only embedded font).
- Font Size — base font size in points (6–72, default 12).
- Margins — top/right/bottom/left page margins in points (default 40 each).
Content Blocks
Use Add Block to add building blocks. Each block can be moved up/down, duplicated, deleted and collapsed:
- Heading — a heading at level H1–H4 (sizes 24/20/16/14 pt) with alignment; always bold.
- Paragraph — body text with alignment, its own font size, and bold/italic toggles.
- Table — an editable grid; a First row is header toggle; add rows and columns via Row/Col. Columns are distributed at equal width.
- List — a list; an Ordered list toggle for numbered vs. bulleted; add/remove items (empty items are dropped at generation).
- Image — embed an image (PNG or JPEG); width in points and alignment adjustable.
- Two Columns — a two-column section with left and right text.
- Horizontal Rule — a divider line across the page width.
- Page Break — forces a new page at this position.
Generate, preview, export
- Generate PDF renders the document; the preview appears on the right, paged with the arrow buttons (tooltip Previous page / Next page).
- Download saves the result as
document.pdf. - Export JSON / Import JSON saves and loads the full document definition (settings and blocks, including embedded images) as
pdf-document.json— so you can build templates and reuse them later. - Clear All discards all blocks.
Merge & Split
Two sub-tabs (pills): Merge and Split, both built on pdf-lib.
Merge
Drag several .pdf files onto the drop zone (non-PDFs are skipped with a notice). The table shows each file's number, name, page count and size. The action buttons let you reorder (up/down) or remove a file. Merge All combines all pages in exactly that order into one document — you need at least two files. Then download the result via Download Merged PDF as merged.pdf. Clear All empties the list.
Split
Drag a single .pdf onto the drop zone; the tool shows its name, size and page count. There are three Split Modes:
- Extract page ranges — enter pages and ranges comma-separated, e.g.
1-3, 5, 8-10. This produces one file with exactly those pages. Out-of-range values are ignored, duplicates removed, pages sorted ascending. - Split every N pages — splits the PDF into chunks of N pages; each chunk becomes its own file.
- Extract each page as single PDF — pulls every page out as a separate PDF.
The result appears as a list (each labelled like "Page 1" or "Pages 1-3" with a page count). Download each file individually as split_N.pdf.
Convert
Four sub-tabs (pills): Markdown, Images, Simple HTML and Rich HTML. Remember the core distinction: Markdown and Simple HTML produce searchable text, while Rich HTML produces a raster image PDF.
Markdown → PDF
An ACE editor for Markdown (with Open File for .md/.markdown/.txt, Load Example and Clear). Supported: headings, bold, italic, inline code, bulleted and numbered lists (including nested), code blocks, tables, links, blockquotes and horizontal rules. Under Page Settings you set page size (A4/A3/A5/Letter/Legal), orientation, font size and margin. Generate PDF renders the preview (with page navigation); Download saves markdown.pdf. The result contains real text — you can search and copy from it.
Images → PDF
Drag one or more images onto the drop zone or select them. Supported formats: JPG, PNG, WebP, GIF, BMP, TIFF. PNG and JPEG are embedded directly; WebP, GIF, BMP and TIFF are first converted to PNG via a canvas (capped at 4000 px). Each image gets its own page and is placed centred. Per image and globally you pick a Fit Mode:
- Fit — keep aspect ratio, fit within the page (default).
- Fill — scale to fill the page, cropping the overflow.
- Stretch — distort to the page area.
Under Page Settings you set size, orientation, margin and default fit. Generate PDF → Download saves images.pdf.
Simple HTML → PDF
An ACE editor for HTML. Supported are common block and inline elements: p, h1–h6, ul/ol/li, strong/em, code/pre, table, br, hr, a and blockquote (containers like div/section/article are traversed). The markup is translated into real PDF text — the result is searchable. CSS styling is ignored here; that is what Rich HTML is for. Page Settings and download (html.pdf) as with Markdown.
Rich HTML → PDF
Also an ACE editor, but a different approach: html2pdf.js renders the HTML visually, like a browser — including CSS, colours, flexbox, images and complex layouts. The output, however, is raster: the page is embedded as an image in the PDF, and the text is not selectable or searchable. An extra Quality Scale option: 1× (fast), 2× (default) or 3× (high quality for print). The margin here is given in mm. Download as rich-html.pdf.
Reference
A static lookup with no processing — always available, even without a loaded file:
- PDF Versions — the version history from PDF 1.0 (1993) to 2.0 (2020, ISO 32000-2) with each release's additions.
- Page Sizes Reference — A3 through Executive in millimetres, inches and points.
- Available Font — the font available in the Creator (Roboto, in Regular/Medium/Italic/MediumItalic).
- Creating Accessible PDFs — notes on accessible PDFs (tagged PDF, reading order, alt text, document language, bookmarks, colour contrast, labelled form fields, Unicode fonts).
- Unit Conversions — conversion to points (1 pt = 1/72 inch) for mm, cm, inches and pixels.
- Further Reading — links to the PDF specification (ISO 32000-1) and the libraries used.
Operating limits and privacy — in brief
- Privacy: everything runs locally in the browser; nothing is uploaded, no server sees your files.
- Size limit: files up to 50 MB (browser memory safeguard, not a server limit).
- No OCR: text extraction and searchable conversions need real text; pure scans return none.
- Rich HTML is raster: no searchable text — use Simple HTML or Markdown for searchable text.
- Embedded font in the Creator: Roboto only.
- Saving edits: local download only (no server-side persistence).
For the starting point and the big picture, see the overview page. For concrete walkthroughs, see the Examples. You can try everything directly in the tool.