pdfrx_engine 0.8.0
pdfrx_engine: ^0.8.0 copied to clipboard
pdfrx_engine is a PDF rendering and manipulation API built on top of PDFium, designed to be used with the pdfrx plugin. Supports viewing, editing, and combining PDF documents.
0.8.0 #
- BREAKING: Added the optional
PdfPageRenderPriority? prioritynamed parameter toPdfPage.render. Custom page implementations must accept it; wrappers should forward it. Existing render calls remain compatible (#758). - Added high, normal, and low rendering priorities for native PDFium. Without an explicit priority, rendering is high priority normally and low priority inside
Pdfrx.runAsBackgroundWork. Explicit priorities take precedence over the background-work scope (#758). - Fixed Hebrew text normalization for lines containing numbers, including punctuation and brackets around numbers, while preserving logically stored or ambiguous number tokens (#756).
0.7.4 #
- Fixed Hebrew text normalization skipping or partially reversing words and lines containing punctuation. Punctuation now stays with Hebrew words during normalization, while mixed-script lines retain their existing order (#754).
0.7.3 #
- Fixed static-analysis lint findings in native constructors without changing public APIs or runtime behavior (#753).
0.7.2 #
- Added
Pdfrx.runAsBackgroundWork()to give native PDFium background operations lower queue priority while preserving explicit rendering priorities (#744). - Fixed disposal racing with queued or running document operations, including assembly, encoding, and native-handle callbacks (#744, #751).
- Fixed assembled pages retaining references to source documents. After awaiting assembly, the destination can be rendered or encoded after its sources are disposed (#744).
- Clarified source-document lifetime and concurrent page-mutation restrictions during assembly.
0.7.1 #
- Keep documents open when native PDFium cannot load an individual page. Preserve page numbering and use fallback page dimensions; rendering an unloadable page still returns null (#740).
- Apply unloadable-page recovery to full, progressive, and explicit page reloads, including first and consecutive broken pages (#740).
- Correct README examples and explain the native library used to coordinate PDFium access (#748, #749).
0.7.0 #
- Added opt-in process-wide PDFium coordination for multiple engines or isolates. Enable it before initialization on every engine; the mode serializes native access, uses PDFium's built-in font mapper, and keeps PDFium initialized until process exit (#723).
- Serialized overlapping native-handle actions and rejected gate configuration changes after a worker starts (#723).
- Added
PdfHebrewTextNormalizerand opt-inPdfrx.normalizeHebrewTextfor the native PDFium backend. Character positions follow reordered text; mixed-script content is preserved conservatively. Legacy encoding conversion additionally requiresPdfrx.decodeLegacyHebrewText(#732). - Improved rendering responsiveness while another document opens without progressive loading by measuring pages in short chunks (#743).
- Updated to
pdfium_dart0.4.0; native builds require a C toolchain for the bundled gate library.
0.6.1 #
0.6.0 #
- BREAKING: Raised the minimum Dart SDK version to 3.13.
- Updated to
pdfium_dart0.3.0. - Added initial-page-aware measurement ordering for progressively loaded documents (#706).
- Fixed PDFium open errors being mistaken for password prompts (#707).
- Fixed canceled page previews so they can be rendered again.
- Fixed WebAssembly rendering and text search edge cases.
- Fixed a race while reading PDF data on Windows (#595).
0.5.0 #
- Added demand-paged loading support for linearized PDFs, allowing viewers to defer off-screen page measurements.
- Added per-page link caching across native, Web, and Core Graphics backends.
- Added asynchronous missing-font load completion and a way to wait for pending font loads.
- Improved progressive loading so sparse page metadata remains available while a document is still loading.
- Improved platform font lookup by resolving requested fonts on demand instead of eagerly scanning font directories.
- FIXED: Native document buffers remain valid until asynchronous document opening completes.
0.4.7 #
0.4.6 #
- FIXED: Windows ARM64 builds no longer fail on nullable PDF file cache access.
- Added lower bounds for remaining dependencies required by package validation.
0.4.5 #
- FIXED: Removed a
@docImportdirective that could crash dartdoc 9.0.6 during pub.dev documentation generation (#664). - Added dependency lower bounds required by the current API usage.
0.4.4 #
- FIXED: Text selection no longer treats generated spaces between distant text runs as huge selectable gaps.
- FIXED: Nullable cache access in PDF file caching.
0.4.3 #
- Updated to
pdfium_dart0.2.5. - FIXED: PDFium initialization is now tracked on the caller isolate, avoiding repeated initialization attempts after worker-isolate initialization (#655).
- Relaxed dependency constraints for broader compatibility with Dart package resolution.
0.4.1 #
- Added PdfFontManager for improved font loading/downloading.
0.4.0 #
- Updated to
pdfium_dart0.2.0. - Improved PDFium loading for pure Dart commands and Flutter apps through
pdfium_dart.getPdfium(). - Added support for Dart native-assets based PDFium packaging on native Dart targets.
- Improved compatibility with Flutter iOS/macOS apps that receive PDFium from
pdfium_flutter's XCFramework.
0.3.9 #
- NEW:
PdfrxEntryFunctions.stopBackgroundWorker()to stop the background worker thread (#184, #430) - Code cleanup: removed unused native function lookup
0.3.8 #
- NEW: PdfDocumentLoadCompleteEvent for document load completion notification
0.3.7 #
- IMPROVED: Add
isDirtyflag to page image cache to prevent cache removal before re-rendering page (#567) - FIXED:
round10BitFracshould not processInfinityorNaN(#550) - WIP: Adding PdfDocument.useNativeDocumentHandle/reloadPages
0.3.6 #
- NEW:
PdfDateTimeextension type for PDF date string parsing (PDF 32000-1:2008, 7.9.4 Dates) - NEW:
PdfAnnotationclass for PDF annotation metadata extraction (#546)
0.3.5 #
- Documentation updates.
0.3.4 #
- NEW: Added
PdfPageBaseExtensions.ensureLoaded()- Wait for page to load (waits indefinitely, never returns null) - NEW: Added
PdfPageBaseExtensions.waitForLoaded()- Wait for page to load with optional timeout (may return null on timeout) - NEW:
PdfPageStatusChange.pageproperty now provides the newest page instance directly - NEW: Added comprehensive Progressive Loading documentation
- IMPROVED: Better API for progressive loading -
ensureLoaded()simplifies common use cases,waitForLoaded()for timeout scenarios
0.3.3 #
- Code refactoring and maintenance updates.
- Use shortened syntax for
Allocator.allocate.
0.3.2 #
- Updated to
pdfium_dart0.1.2. - Improved cache directory management with support for
PDFRX_CACHE_DIRenvironment variable. - Better default cache locations:
~/.pdfrxon Unix-like systems,%LOCALAPPDATA%\pdfrxon Windows. - Fallback to system temp directory for backward compatibility.
0.3.1 #
- Updated to pdfium_dart 0.1.1
0.3.0 #
- NEW:
PdfDocument.createFromJpegData()- Create PDF documents from JPEG image data - CHANGED: Now uses
pdfium_dartpackage for PDFium FFI bindings instead of bundled bindings - CHANGED: File structure refactoring - moved from monolithic API file to separate files for better organization
- Dependency updates
0.2.4 #
- NEW: PdfDocument now supports page re-arrangement and accepts PdfPage instances from other documents, enabling PDF combine/merge functionality
- Added additional PDFium functions for page manipulation
- FIXED: Type parameter 'T' shadowing issue in pdfium.dart
0.2.3 #
- Added configurable timeout parameter to
PdfDocument.openUriandpdfDocumentFromUrifunctions (#509)
0.2.2 #
- Experimental support for Apple platforms direct symbol lookup to address TestFlight/App Store symbol lookup issues (#501)
- Added PdfrxBackendType enum to identify which PDF backend is being used
- Internal refactoring to support lookup-based function loading on iOS/macOS
0.2.0 #
- BREAKING: Renamed
PdfrxEntryFunctions.initPdfium()toPdfrxEntryFunctions.init()for consistency
0.1.21 #
- FIXED: WASM+Safari StringBuffer issue with workaround (#483)
- Introduces
PdfDocumentRefKeyfor more flexiblePdfDocumentRefidentification
0.1.20 #
- Maintenance release to keep version alignment and ensure code integrity alongside pdfrx 2.1.19.
0.1.19 #
- Remove broken docImport not to crash dartdoc (dart-lang/dartdoc#4106)
0.1.18 #
- FIXED:
dart run pdfrx:remove_wasm_modulescould hit "Too many open files" on some platforms (#476) - Dependency updates
0.1.17 #
- #474 Add PdfrxEntryFunctions.initPdfium to explicitly call FPDF_InitLibraryWithConfig and pdfrxInitialize/pdfrxFlutterInitialize internally call it
- #474 Add PdfrxEntryFunctions.suspendPdfiumWorkerDuringAction
- Documentation improvements for low-level PDFium bindings access/PDFium interoperability and initialization
0.1.15 #
0.1.13 #
- Add font loading APIs for WASM:
reloadFonts()andaddFontData()methods - Add PdfDocumentMissingFontsEvent to notify about missing fonts in PDF documents
- FIXED: Text coordinate calculation when CropBox/MediaBox has non-zero origin (#441)
- Improve WASM stability and font handling
0.1.12 #
- Fix text character rectangle rotation handling in
loadTextCharRects()and related methods
0.1.11 #
- Make PdfiumDownloader class private to native implementation
0.1.10 #
- Add mock pdfrxInitialize implementation for WASM compatibility to address pub.dev analyzer complaints
0.1.9 #
- Update example to include text extraction functionality
0.1.8 #
- More consistent behavior on disposed PdfDocument
0.1.7 #
- Improve
loadPagesProgressivelyAPI by makingonPageLoadProgressa named parameter - Fix parentheses in premultiplied alpha flag check
- Improve documentation for enums
0.1.6 #
- Add premultiplied alpha support with new flag PdfPageRenderFlags.premultipliedAlpha
0.1.5 #
- New text extraction API.
0.1.4 #
- Minor updates.
0.1.3 #
- Add an example for converting PDF pages to images.
- Add PdfImage.createImageNF() extension method to create Image (of image package) from PdfImage.
0.1.2 #
- Introduces new PDF text extraction API.
0.1.1 #
- Minor fixes.
0.1.0 #
- Initial version.