custom_pdf_editor 0.2.4
custom_pdf_editor: ^0.2.4 copied to clipboard
Flutter PDF viewer and on-canvas text editor for iOS (native PDFKit), plus PDF↔Word conversion. Requires a companion self-hosted backend (included in server/).
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.
0.2.4 - 2026-07-14 #
Added #
- DigitalOcean deployment guides in
server/folderDEPLOY_DIGITALOCEAN.md- Complete deployment guide for App Platform and DropletsHOSTING_COMPARISON.md- Detailed comparison between Railway and DigitalOcean hosting options- Load balancing strategy for using multiple backends simultaneously
- Cost projections and migration strategies
Documentation #
- Enhanced backend deployment documentation with multiple hosting options
- Added troubleshooting guides for DigitalOcean deployments
- Included SSL/HTTPS setup instructions for Droplet deployments
0.2.3 - 2026-07-14 #
Added #
- HANDOFF.md - Comprehensive AI agent and developer onboarding documentation
- Complete project architecture and implementation details
- Step-by-step feature explanations (shrink-to-fit, font mapping, coordinate systems)
- Backend API documentation for all endpoints
- Development setup, testing strategies, and troubleshooting guide
- Roadmap for future features and monetization ideas
Changed #
- Updated documentation to reflect current feature status
0.2.2 - 2026-07-14 #
Fixed (paragraph editor) #
- Text now reflows correctly. The source PDF's visual line breaks are converted to spaces on import, so a paragraph wraps naturally at the editor's width/font instead of keeping the original wrap points (which left orphan words — e.g. one word alone on a line — when the font or box size changed).
- Word/range selection while editing. Scrolling is locked while a block is selected/edited so the scroll view no longer steals text-selection drags — double-tap a word, or long-press-drag, to select and restyle specific words. (The block is still kept above the keyboard via a programmatic scroll.)
0.2.1 - 2026-07-14 #
Fixed (paragraph editor) #
- Padding between a block's text and its outline (text no longer touches the edges) — the box is inflated and the text inset by a matching amount in the editor, the live preview, and the exported PDF.
- Text selection now works while editing — canvas gestures are deferred to the text field, so long-press / drag / double-tap select text (and the toolbar restyles just that selection). Tap outside the field to finish.
- Increasing the font size now grows the box instead of clipping the text — the box re-fits on any style change (size / bold / alignment), not just typing.
- Alignment changes no longer clip the text.
Requires redeploying the backend (the exported
<div>now has matching padding).
0.2.0 - 2026-07-13 #
Added #
PdfBackendService— one unified, UI-free client for every backend operation:wordToPdf,pptToPdf,excelToPdf,pdfToWord,pdfToPptx,pdfToExcel,compressPdf,repairPdf,ocrPdf(allbaseUrl-configurable).- Backend endpoints (
server/):/convert/office2pdf(LibreOffice, high fidelity),/convert/pdf2pptx,/convert/pdf2excel,/repair/pdf,/ocr/pdf. - Dockerfile for the backend bundling free/open-source tools: LibreOffice,
Tesseract (OCR), qpdf/ghostscript.
render.yamlswitched to the Docker runtime. ParagraphEditorWidget:onComplete(hand result back to a host editor, skipping the built-in preview) andappBarTitle.- Paragraph editor: rich (per-run) text editing — select a range and restyle it.
Changed #
- Word → PDF now uses LibreOffice (was a low-fidelity reportlab redraw).
- Dropped the
docx_to_textdependency; migrated toarchive: ^4.0.0.
Note #
- The conversion/repair/OCR features require redeploying the backend with the new Docker image (the old Python buildpack cannot install LibreOffice/Tesseract).
0.1.0 - 2026-07-10 #
Added #
Core Features
- Initial release of Custom PDF Editor plugin (iOS only)
- PDF viewing with zoom, pan, and navigation controls
- High-performance rendering using native PDFKit (iOS)
- On-canvas text editing (
AdvancedPdfEditorWidget): tap a line to edit it in place with the original font/size/colour; shrink-to-fit prevents overlap; edits are batched and applied in one backend call on save - PDF ↔ Word conversion (
PdfConversionService) - PDF compression (
PdfCompressionService) with low/medium/high levels - Paragraph editor (
ParagraphEditorWidget, beta): Acrobat-style block mode — drag/resize paragraphs, edit text, and change size/colour/bold/italic/alignment, baked with reflow via the backendinsert_htmlbox - Comprehensive PdfController for managing PDF operations
- Platform view integration for seamless Flutter embedding
Configuration
backendUrlis required onAdvancedPdfEditorWidget/DocxEditorWidgetandbaseUrlon the services — point them at your own self-hosted backend (server/). No backend URL is bundled.
iOS Features (PDFKit)
- Full PDF viewer implementation with PDFView
- Thumbnail navigation panel
- Text search with highlighting
- Page navigation (previous/next, go to page)
- Zoom controls with configurable min/max
- Dark mode support
- Toolbar with customizable tools
Annotation System
- Highlight annotations with customizable colors
- Ink/drawing annotations with PencilKit integration
- Shape annotations (squares, circles)
- Free text notes
- Stamps and signatures support
- Customizable annotation properties (color, opacity, border width)
- Add, remove, and update annotations
Text Editing
- Add text anywhere on PDF pages
- Custom text styling (font, size, color)
- Text alignment (left, center, right, justified)
- Bold and italic styles
Image Handling
- Insert images at any position
- Image resizing and positioning
- Support for common image formats
Document Management
- Load PDF from file path or bytes
- Save PDF to file or get as bytes
- Password-protected PDF support
- Document metadata extraction
Page Operations
- Delete and rotate pages
Platform Support #
- ✅ iOS 12.0+
- ❌ Android — not yet implemented
[Unreleased] #
Planned #
- Enhanced Android implementation
- Web and desktop support
- OCR and redaction tools
- Digital signatures
- Form builder UI