Skip to content

Latest commit

 

History

History
89 lines (75 loc) · 4.83 KB

File metadata and controls

89 lines (75 loc) · 4.83 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.3.0] - 2026-06-11

Added

  • Bundled folio engine bumped v0.7.1 → v0.9.1, bringing the cumulative 0.8.0 / 0.9.0 / 0.9.1 engine work into the SDK: deterministic/reproducible output, context-aware render paths, untrusted-input resource guards, a typed error taxonomy, sfnt-free font metrics with TrueType Collection loading, GPOS / CJK / Unicode-normalization shaping fixes, and the 0.9.1 rendering-correctness pass — border-radius, @page / position: fixed / margin boxes, list pagination and multi-level CSS-counter numbering, table rowspan, and a from-scratch fix of the QR encoder. See the folio v0.8.0–v0.9.1 release notes for the full list
  • Document.Builder.language(String) — sets the PDF catalog /Lang (BCP-47) and drives TrueType-collection face selection for embedded CJK fonts
  • Font.parseForLanguage(byte[], String) — parses a font/TTC selecting the face that matches a BCP-47 tag (Simplified Chinese, Traditional Chinese, Japanese, Korean), falling back to face 0 for an empty or unrecognised tag
  • Paragraph.measureLines(double) and Paragraph.measureHeight(double) — measure the wrapped line count and height at a given width without rendering
  • Paragraph.splitAfterLine(int, double) returning Paragraph.Split(head, tail) — splits a paragraph after the n-th line to fit content to a region and flow the remainder onto the next page or column
  • Native-library CI (build-natives.yml) now builds the engine with Go 1.25, required by folio v0.9.1

0.2.0 - 2026-04-23

Added

  • Bundled folio engine bumped to v0.7.1 (16 new C ABI exports)
  • WriteOptions builder + Document.saveWithOptions() / Document.toBytesWithOptions() for the writer optimizer (xref streams, object streams, orphan sweep, content-stream cleanup, object deduplication, stream recompression). Both writer entry points accept null for "use defaults"
  • Direction enum (AUTO, LTR, RTL) with setDirection(...) on Paragraph, ListElement, and Table
  • Document.setActualText(boolean) to opt out of /ActualText emission in tagged PDFs
  • Columns.setBalanced(boolean) toggle for balanced vs sequential multi-column fill
  • New examples: Optimize (writer-optimizer comparison), Rtl (Hebrew bidi, Arabic shaping, kashida, ActualText), Indic (Devanagari shaping pipeline), Cjk (Chinese/Japanese/Korean text + kinsoku shori)

0.1.0 - 2026-04-09

First stable release of the Folio Java SDK, bundling the folio Go engine v0.6.2.

Added

  • 372 Panama FFI bindings to the folio Go engine (dev.foliopdf.internal.FolioNative)
  • 59 public API classes with fluent builders (dev.foliopdf.*)
  • Zero runtime dependencies -- requires JDK 22+ only
  • 5-platform native library bundled in the JAR: linux-x86_64, linux-aarch64, macos-x86_64, macos-aarch64, windows-x86_64
  • Document generation: paragraphs, headings, tables, divs, lists, images, links, line separators, area breaks
  • Advanced layout: Flexbox (Flex), CSS Grid (Grid), multi-column (Columns), float (FloatElement), tabbed lines (TabbedLine)
  • Barcodes: QR, Code128, EAN-13 (Barcode)
  • SVG parsing and rendering (SvgElement)
  • HTML-to-PDF conversion as a one-liner (HtmlConverter.toPdf())
  • PDF reading: text extraction, metadata, page dimensions, structure tree (PdfReader)
  • PDF merge with page manipulation -- rotate, reorder, crop, remove (PdfMerger)
  • Page import for template workflows (PageImport)
  • Digital signatures: PAdES B-B through B-LTA with PEM and PKCS#12 support (PdfSigner, PadesLevel, TsaClient, OcspClient)
  • Form creation, filling, and flattening (Form, FormField, FormFiller)
  • PDF redaction -- text, regex, and region-based (PdfRedactor, RedactRegion, RedactOpts)
  • Encryption with granular permissions using AES-256, AES-128, or RC4 (EncryptionAlgorithm, PdfPermission)
  • PDF/A compliance at levels 1-3 (B/U/A) with validation (PdfALevel)
  • Tagged PDF / PDF/UA support: alt text, custom structure tags, structure tree reading
  • Drawing primitives on pages: lines, rectangles (Page)
  • Text highlighting via TextRun background color
  • CSS length parsing utility (CssLength)
  • Headers and footers with page number placeholders (PageDecorator)
  • OutputStream, InputStream, and Path API support on Document, PdfReader, HtmlConverter, and Font
  • 12 runnable examples: Hello, Report, Invoice, HtmlToPdf, Merge, Forms, Fonts, Links, ZugferdInvoice, Redact, ImportPage, Sign