Skip to content

KillerPDF v1.8.0

Latest

Choose a tag to compare

@SteveTheKiller SteveTheKiller released this 28 Aug 19:49
· 13 commits to main since this release

KillerPDF 1.8 replaces its legacy PdfSharpCore document pipeline with an independently authored .NET 10 PDF document engine. It is responsible for reading, validating, authoring, structurally editing, and writing PDF files. PDFium remains KillerPDF's rendering and display backend, while PdfPig continues to handle text extraction.

PDF document engine

KillerPDF 1.8 introduces The KillerPDF.Engine. Its detailed development history is maintained in The KillerPDF.Engine changelog.

Added

  • Dual-pane PDF comparison now opens a second document beside the original, synchronizes page navigation, zoom, and scrolling, highlights visual difference regions, reports changed-page percentages and dimension mismatches, and identifies pages present in only one document (#160).
  • KillerPDF now builds separate standard and portable packages. The standard package uses a compact Dark-theme installer with the product identity rail, raised grain-textured content card, runtime detection, account scope, shortcut selection, verified installation, elevation, rollback, and launch completion.
  • Digital signatures can use certificates backed by Windows-compatible USB tokens and now include an editable visible layout with template fields, live preview, page placement, dimensions, and text sizing (#125).
  • Transform can now preview settings page by page, apply them to every selected page as one undoable batch, convert pages to grayscale or thresholded black and white, resample from 72 to 600 DPI, and use selectable JPEG compression (#173, #204).
  • OCR can now use existing form-field geometry as recognition boundaries, apply numeric constraints, read comb fields cell by cell, honor maximum lengths, and validate close matches against choice lists. Plain OCR remains the default (#242).
  • Multiple selected page thumbnails can now be dragged as one ordered block. PDFs and images can also be dropped at an exact position or merged directly after a selected page (#233).
  • Pages can now be copied between documents in split view by dragging their thumbnails onto the other document or into its Pages panel. The panel follows the document under the cursor, and a translucent page preview with a count badge shows what is being dragged (#213, thanks MattVW).
  • Text boxes now support adjustable letter spacing with live preview, spacing-aware wrapping, and matching PDF output for aligning characters with preprinted form boxes (#232).
  • A measurement tool now draws a temporary ruler on any rendered page and reports distance in inches, millimeters, and PDF points alongside the rotated page size (#162).
  • Italian is now available in the live language picker, with complete interface resources and matching Italian OCR support.
  • Kazakh is now available in the live language picker, with complete interface resources and matching Kazakh OCR support.
  • Touchscreen users can now pan the document viewport with one finger and pinch around a focal point to zoom in every page layout (#271).
  • Dragging a page thumbnail now shows a theme-colored insertion line at the exact before-or-after drop position in the Pages sidebar.
  • The Select tool now shows an I-beam only over selectable PDF text in every view while retaining the hand cursor over links (#221).
  • Draggable controls now show open-hand and closed-hand cursors across annotation bars, the find bar, signature popup, page panning, stamp placement, and Transform perspective handles.

Changed

  • KillerPDF now uses its own .NET 10 document engine throughout the desktop app, command line tools, tests, and packaged builds. PdfSharpCore and its compatibility code have been fully removed.
  • The standard installer now uses the .NET 10 Desktop Runtime, while the portable edition remains self-contained for offline use.
  • Document undo is now recorded automatically for every successful serialized document mutation, including page deletion, insertion, reordering, cross-pane copying, forms, links, metadata, bookmarks, crop, and rotation. Undo and redo restore annotations and page rotations with the PDF, while a 20-action and 256 MB per-document history budget prevents unbounded memory growth (#266).
  • Saving, exporting, flattening, printing, signing, and searchable OCR now use The KillerPDF.Engine while preserving Unicode text, transparency, rotations, form values, link targets, signatures, and annotation appearance.
  • Page insertion, deletion, duplication, extraction, reordering, merging, and Transform replacement now preserve complete page and catalog structures through The KillerPDF.Engine, including forms, tags, bookmarks, named destinations, layers, attachments, and inherited page state.
  • Document viewing and editing now share one immutable engine session for page geometry, metadata, forms, links, bookmarks, crop boundaries, rotations, and document lifecycle state.
  • Opening, repairing, and importing difficult PDFs now preserve complete document graphs through the engine, with tolerant handling for encrypted files, damaged structures, unusual page sizes, and last-resort raster recovery.
  • Command-line merge, extract, split, image export, flatten, print, OCR, decryption, and batch resave now use the same engine as the desktop app.
  • Installed font discovery and TrueType Collection extraction now use an engine-oriented service while preserving Unicode burn-in and form appearance coverage.
  • Saving edited fillable fields now embeds a compatible font when values contain smart punctuation, currency symbols, CJK, or other Unicode text instead of rejecting the save.
  • Fillable choice fields now bind their displayed option and saved export value explicitly, so selecting another dropdown option updates the live field and persists the new value.
  • Direct PDFium loading now uses explicit UTF-8 marshalling for document paths and passwords, preserving international characters instead of passing them through the Windows ANSI code page.
  • Installed-payload verification now rejects files absent from the signed manifest, preventing untrusted assemblies in the application probing path, and its tamper test now exercises a same-length SHA-256 mismatch.
  • Moving from a per-user installation to an all-users installation now removes the stale per-user killerpdf: protocol registration so it cannot shadow the Program Files handler.
  • The all-users installer handoff now completes once and leaves the final installed-app relaunch to the portable UI, preventing duplicate restarts. Portable packaging also runs a disposable install smoke test (#238).
  • Portable builds identify themselves with a PORTABLE upgrade badge linked to the installed release instead of offering to install their temporary self-contained payload.
  • Portable cleanup now validates both process identity and start time instead of trusting a reusable PID, and legacy extraction markers retain a directory only when their recorded child still runs from that directory.
  • Single-page and two-page views now accept one deliberate geared-wheel notch at a page edge while still suppressing momentum from the preceding content scroll; precision-wheel deltas continue to accumulate smoothly (#205).
  • The shortcut help list is wider with more column spacing, and the visual keyboard localizes named keycaps while using guaranteed-readable action and heading text across dark themes (#230).
  • The remaining reported signature, text-editing, install, publisher-verification, and text-cover unpair messages now use the active language resources instead of hardcoded English (#227).
  • Fillable text fields now force the standard I-beam above the viewer tool cursor, keeping the insertion point and editable state visually clear while entering form text (#235).
  • Engine validation failures now retain accurate public exception contracts, and OCR downloads propagate cancellation through the response stream.

Fixed

  • Typewriter text keeps its on-screen vertical position after saving, and clicking dotted or underscored blanks on flattened forms now creates an empty text entry box over the detected field instead of selecting the surrounding label (#273, thanks bel57).
  • Repeated Unicode form edits now reuse any previously embedded KillerPDF font subset that covers the new value, even after an intervening Latin-only value or a different glyph set, so revisiting earlier form text no longer embeds another duplicate font program (#256, thanks Ryokoxx).
  • Silent all-users installation now refuses with exit code 10 before writing any files when the .NET 10 Desktop Runtime is unavailable, and portable payload verification accepts the launcher's own identity marker while continuing to reject unrelated unlisted files (#275, #279, thanks Ryokoxx).
  • Typst bookmark outlines now remain enabled and navigate correctly when an /XYZ destination uses the valid zero value for retaining the current zoom (#269).
  • A portable launch that forwards to an already-running installed copy no longer takes over the killerpdf: protocol handler, and portable copies no longer shadow a valid installed handler (#267).
  • Push-button form appearances remain visible in the interactive viewer, bounded list-box appearances stay inside their field rectangles, and multi-select choice values now load, display, edit, and save as complete selections (#245).
  • Shipped builds no longer run a dead Costura-only pdfium startup check. The new --verify and /verify commands validate every installed payload file against payload.manifest on demand, covering the complete installation without adding launch latency.
  • Application shortcuts such as Save, Save As, Find, Print, Open, tab commands, and F1 through F12 now remain available while a fillable form field or typewriter box has focus, while ordinary typing and standard text-editing shortcuts stay inside the field (#237).
  • Duplicating a page now keeps the new copy selected in both the sidebar and active viewer after the rebuilt page tree and deferred layout finish loading.
  • Merge now validates each input with The KillerPDF.Engine and routes unreadable PDFs through the same lossless repair, import repair, and raster recovery sequence used by Open and drag-drop.
  • Selected rows in the file dialog no longer apply a dark text-stroke effect inside the yellow selection background, keeping filenames crisp and undoubled.
  • PDF parsing now accepts qpdf-compatible stream lengths while safely rejecting oversized cross-reference and object streams, reused tree nodes, malformed shared form fields, and repeated structure elements.
  • Link annotations now include the print flag required for PDF/A-4 annotation conformance.
  • The About card's update button now keeps readable text on hover and uses the correct beveled button treatment in the 98SE theme.