Reported issues for PDF Modifier
Pod holds 21 of 36 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to PDF Modifier.
Most discussed
feat(core): advanced font support and custom font paths
Enhance _get_font_properties to better detect font attributes. Allow users to provide a path to a custom font file for replacements. Investigate extracting embedded fonts.
Read the thread · 2026-01-14 · closed · 2 comments
feat(core): file size validation before processing
What
No max file size check before processing. Large PDFs could cause OOM.
Why
P0 — security and stability. A malicious or accidental large PDF could crash the server.
Acceptance Criteria
- Validate file size before opening with fitz
- Configurable max size (default 100MB)
- Return clear error message with size and limit
- Apply to: CLI, MCP, and Web upload
Related
- Already partially handled in
analyzer.pyandmodifier.py(max_file_sizeparam) - Need to expo
Read the thread · 2026-06-20 · closed · 1 comment
feat(ai): NaN Cloud AI layer with model router + throttle
AI-001: AI-Powered Document Detection
What
Add AI capabilities: detect document fields, classify document types, and redact PII automatically using NaN Cloud models.
Why
- Manual field detection is tedious
- PII redaction needs to be automatic
- Document classification enables smart forms
- Differentiates from basic text editors
Models Used
- mimo-v2.5: Vision, tool calling, reasoning (OCR, detection)
- qwen3.6: Fast text tasks (classification, translation)
- Fallback: mimo → q
Read the thread · 2026-06-20 · closed · 1 comment
feat(mcp): expose pdfs as resources
Implement MCP Resources interfa to allow the LLM to browse and 'subscribe' to PDF files in the mounted data directory. This allows the model to read content directly as a resource uri 'pdf://filename.pdf'.
Read the thread · 2026-01-14 · closed · 1 comment
feat(core): metadata editor
Add functionality to read and update standard PDF metadata fields (Title, Author, Subject, Keywords) via CLI and MCP.
Read the thread · 2026-01-14 · closed · 1 comment
feat(core): image replacement support
Add functionality to identify images by location/index and replace them with new image files, maintaining aspect ratio or bounds.
Read the thread · 2026-01-14 · closed · 1 comment
DOCS-001: Modularize docs/lessons/ into lesson-NNN-*.md and _index.md
Overview
Implement modular lessons architecture per pattern-knowledge-placement and the Harness Evolution plan:
- Parse monolithic
docs/lessons.md(96 lines) into individualdocs/lessons/lesson-NNN-<slug>.mdfiles with Frontmatter Law. - Create lightweight index catalog at
docs/lessons/_index.md(<1 KB). - Replace monolithic
docs/lessons.mdwith a clean backward-compatible pointer stub.
Read the thread · 2026-08-18 · closed · 0 comments
fix(web): PDF preview zoom still distorts at high magnification
Context
WEB-002 (preview element grouping + sync, PR pending) added a dynamic zoom ceiling: computeMaxScale limits scale so one canvas pixel equals one physical screen pixel (screenWidth × devicePixelRatio ÷ pageWidth, clamped [1, 4]). Covered by 6 unit tests; applied to zoom()/fitToWidth()/zoom-in disabled state.
Problem
The user reports the preview still distorts when zooming in a lot after the fix. Two hypotheses:
- Formula insufficient on large screens — on a wide display
Read the thread · 2026-08-06 · open · 0 comments
Most recent
feat(web): improve PDF preview — intelligent element grouping + sync
Summary
The PDF preview now renders correctly with zoom, page jump, and text highlighting, but the element detection in the sidebar is too granular. The analyzer returns individual text fragments rather than semantically grouped elements (e.g., "Hello" and "World" on the same line should be one element "Hello World").
Remaining work
- Group consecutive text elements by position (same line, same font, similar spacing) → merge into one sidebar entry
- **Sync scroll positio
Read the thread · 2026-08-05 · closed · 0 comments
feat(web): keyboard shortcuts
Implementar keyboard shortcuts: Ctrl+Z undo, Ctrl+Shift+Z redo, Ctrl+S download, Ctrl+O open file, Escape cancelar. Mostrar shortcuts en tooltips.
Read the thread · 2026-06-24 · open · 0 comments
feat(web): batch processing UI
Interfaz para procesar multiples PDFs. Implementar: upload de multiples archivos, lista de archivos con estado, apply replacements a todos, download como zip.
Read the thread · 2026-06-24 · open · 0 comments
feat(web): preview de cambios antes de aplicar
Mostrar preview de los cambios antes de aplicarlos. Implementar: diff view mostrando old vs new, preview del PDF con cambios aplicados (overlay), confirmacion antes de procesar.
Read the thread · 2026-06-24 · open · 0 comments
feat(web): persistencia de sesion en localStorage
Guardar el session_id en localStorage para que el usuario pueda continuar trabajando despues de recargar la pagina. Implementar: guardar session_id al cargar, restaurar sesion al abrir, expirar sesiones antiguas.
Read the thread · 2026-06-24 · open · 0 comments
feat(web): undo/redo para reemplazos
Implementar historial de cambios con undo/redo. Keyboard shortcuts: Ctrl+Z para undo, Ctrl+Shift+Z o Ctrl+Y para redo. Guardar estado de replacements en cada cambio. Ya implementado parcialmente, falta: persistir en localStorage, limitar historial.
Read the thread · 2026-06-24 · open · 0 comments
feat(web): PDF preview con PDF.js
Implementar preview del PDF en el frontend usando pdfjs-dist. El preview debe: renderizar el PDF pagina por pagina, navegar con flechas, resaltar texto seleccionado, sincronizar con la estructura. Ya implementado parcialmente, falta: sincronizar scroll, zoom controls, page jump.
Read the thread · 2026-06-24 · closed · 0 comments
refactor: reorganizar estructura a backend/ + frontend/
Reorganizar el proyecto para tener una estructura mas clara: src/pdf_modifier/ a backend/src/pdf_modifier/, apps/web/ a frontend/, Dockerfiles dentro de cada directorio. Mejor separacion de responsabilidades. Acceptance Criteria: Backend mueve a backend/, Frontend mueve a frontend/, Makefile actualizado, CI/CD actualizado, todos los tests pasan, Docker build funciona.
Read the thread · 2026-06-24 · closed · 0 comments
feat(core): font width caching for repeated replacements
What
Cache font widths for repeated same-font replacements to improve performance.
Why
When processing PDFs with many replacements using the same font, width calculation is repeated unnecessarily.
Acceptance Criteria
- LRU cache for font width calculations
- Cache key: (font_name, fontsize)
- No memory leak (bounded cache)
- Performance improvement measurable on large PDFs
Read the thread · 2026-06-20 · open · 0 comments
docs: programmatic API examples in README
What
Add Python library usage examples to README.
Why
Users who want to use pdf-modifier-mcp as a library (not CLI/MCP) need code examples.
Acceptance Criteria
- Example: basic text replacement
- Example: regex replacement
- Example: batch processing
- Example: PDF analysis/structure extraction
- All examples are tested (runnable)
Read the thread · 2026-06-20 · open · 0 comments
feat(audio): TTS, STT, and voice dictation
AUD-001: Audio Capabilities (TTS/STT)
What
Add TTS to read PDFs aloud, STT to transcribe embedded audio, and voice dictation to edit PDFs by voice.
Why
- Accessibility: visually impaired users can listen
- Some PDFs contain embedded audio notes
- Voice dictation enables hands-free editing
Models Used
- kokoro: TTS (82M, <1s, 67 voices, ES: ef_dora, em_alex)
- whisper: STT (large-v3, 99+ languages, 25MB limit)
Acceptance Criteria
- TTS produces audio from PDF text
- [ ]
Read the thread · 2026-06-20 · open · 0 comments
feat(multilingual): translation, semantic search, summarization
ML-001: Multilingual and Semantic Capabilities
What
Add translation, semantic search, summarization, and structured data extraction using NaN Cloud models.
Why
- PDFs often in foreign languages
- Semantic search finds concepts, not just text
- Summarization saves reading time
- Structured extraction converts PDFs to JSON
Models Used
- qwen3.6: Translation, summary (fast, 256K context)
- qwen3-embedding: Embeddings (4096 dim, 100+ languages)
- rerank: Search result reranking
- m
Read the thread · 2026-06-20 · open · 0 comments
feat(vision): OCR, signature detection, PDF comparison
VIS-001: Vision and OCR Capabilities
What
Add vision-based capabilities using mimo-v2.5: OCR scanned PDFs, detect signatures/seals, compare PDFs visually.
Why
- Many PDFs are scanned images without text layers
- fitz can't extract text from image-only PDFs
- Signature detection needed for compliance
- Visual comparison catches differences text tools miss
Acceptance Criteria
- Scanned PDFs OCR'd successfully
- Signatures and seals detected
- PDF comparison shows visu
Read the thread · 2026-06-20 · open · 0 comments
The remaining reports are on the project's issue tracker.