feat: unify Direct Track PDF rendering and simplify export options
Backend changes: - Apply background image + invisible text layer to all Direct Track PDFs - Add CHART to regions_to_avoid for text extraction - Improve visual fidelity for native PDFs and Office documents Frontend changes: - Remove JSON, UnifiedDocument, Markdown download buttons - Simplify to 2-column layout with only Layout PDF and Reflow PDF - Remove translation JSON download and Layout PDF option - Keep only Reflow PDF for translated document downloads - Clean up unused imports (FileJson, Database, FileOutput) Archives two OpenSpec proposals: - unify-direct-track-pdf-rendering - simplify-frontend-export-options 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,31 +4,27 @@
|
||||
TBD - created by archiving change fix-v2-api-ui-issues. Update Purpose after archive.
|
||||
## Requirements
|
||||
### Requirement: Export Interface
|
||||
The Export page SHALL support downloading OCR results in multiple formats using V2 task APIs, with processing track information and enhanced structure data.
|
||||
|
||||
#### Scenario: Export page uses V2 download endpoints
|
||||
- **WHEN** user selects a format and clicks export button
|
||||
- **THEN** frontend SHALL call V2 endpoint `/api/v2/tasks/{task_id}/download/{format}`
|
||||
- **AND** frontend SHALL NOT call V1 `/api/v2/export` endpoint (which returns 404)
|
||||
- **AND** file SHALL download successfully
|
||||
The Export interface in TaskDetailPage SHALL provide streamlined download options focusing on PDF formats.
|
||||
|
||||
#### Scenario: Export supports multiple formats
|
||||
- **WHEN** user exports a completed task
|
||||
- **THEN** system SHALL support downloading as TXT, JSON, Excel, Markdown, and PDF
|
||||
- **AND** each format SHALL use correct V2 download endpoint
|
||||
- **AND** downloaded files SHALL contain task OCR results
|
||||
#### Scenario: Download options for completed tasks
|
||||
- **WHEN** viewing a completed task in TaskDetailPage
|
||||
- **THEN** the download section SHALL display only two buttons: "版面 PDF" and "流式 PDF"
|
||||
- **AND** JSON, UnifiedDocument, and Markdown download buttons SHALL NOT be displayed
|
||||
- **AND** the download grid SHALL use a 2-column layout
|
||||
|
||||
#### Scenario: Export includes processing track metadata
|
||||
- **WHEN** user exports a task processed through dual-track system
|
||||
- **THEN** exported JSON SHALL include "processing_track" field indicating "ocr" or "direct"
|
||||
- **AND** SHALL include "processing_metadata" with track-specific information
|
||||
- **AND** SHALL maintain backward compatibility for clients not expecting these fields
|
||||
#### Scenario: Translation download options
|
||||
- **WHEN** viewing completed translations in TaskDetailPage
|
||||
- **THEN** each translation item SHALL display only a "流式 PDF" download button
|
||||
- **AND** translation JSON download button SHALL NOT be displayed
|
||||
- **AND** Layout PDF option for translations SHALL NOT be displayed
|
||||
- **AND** delete translation button SHALL remain available
|
||||
|
||||
#### Scenario: Export UnifiedDocument format
|
||||
- **WHEN** user requests JSON export with unified=true parameter
|
||||
- **THEN** system SHALL return UnifiedDocument structure
|
||||
- **AND** include complete element hierarchy with coordinates
|
||||
- **AND** preserve all PP-StructureV3 element types for OCR track
|
||||
#### Scenario: Backend API remains unchanged
|
||||
- **WHEN** external clients call download endpoints directly
|
||||
- **THEN** JSON, Markdown, and UnifiedDocument endpoints SHALL still function
|
||||
- **AND** translated Layout PDF endpoint SHALL still function
|
||||
- **AND** no backend changes are required for this frontend simplification
|
||||
|
||||
### Requirement: Multi-Task Export Selection
|
||||
The Export page SHALL allow users to select and export multiple tasks.
|
||||
@@ -59,13 +55,15 @@ Export settings (format, thresholds, templates) SHALL apply consistently to V2 t
|
||||
- **AND** template SHALL be passed to V2 `/tasks/{id}/download/pdf` endpoint
|
||||
|
||||
### Requirement: Enhanced PDF Export with Layout Preservation
|
||||
The PDF export SHALL accurately preserve document layout from both OCR and direct extraction tracks with correct coordinate transformation and multi-page support.
|
||||
|
||||
The PDF export SHALL accurately preserve document layout from both OCR and direct extraction tracks with correct coordinate transformation and multi-page support. For Direct Track, a background image rendering approach SHALL be used for visual fidelity.
|
||||
|
||||
#### Scenario: Export PDF from direct extraction track
|
||||
- **WHEN** exporting PDF from a direct-extraction processed document
|
||||
- **THEN** the PDF SHALL maintain exact text positioning from source
|
||||
- **AND** preserve original fonts and styles where possible
|
||||
- **AND** include extracted images at correct positions
|
||||
- **THEN** the system SHALL render source PDF pages as full-page background images at 2x resolution
|
||||
- **AND** overlay invisible text elements using PDF Text Rendering Mode 3
|
||||
- **AND** text SHALL remain selectable and searchable despite being invisible
|
||||
- **AND** visual output SHALL match source document exactly
|
||||
|
||||
#### Scenario: Export PDF from OCR track with full structure
|
||||
- **WHEN** exporting PDF from OCR-processed document
|
||||
@@ -78,20 +76,18 @@ The PDF export SHALL accurately preserve document layout from both OCR and direc
|
||||
- **THEN** system SHALL use explicit page dimensions from OCR results (not inferred from bounding boxes)
|
||||
- **AND** correctly transform Y-axis coordinates from top-left (OCR) to bottom-left (PDF/ReportLab) origin
|
||||
- **AND** prevent vertical flipping or position misalignment errors
|
||||
- **AND** handle page size variations accurately
|
||||
|
||||
#### Scenario: Support multi-page documents with varying dimensions
|
||||
- **WHEN** generating PDF from multi-page document with mixed orientations
|
||||
- **THEN** system SHALL apply correct page size for each page independently
|
||||
- **AND** support both portrait and landscape pages in same document
|
||||
- **AND** NOT use first page dimensions for all subsequent pages
|
||||
- **AND** call setPageSize() for each new page before rendering content
|
||||
#### Scenario: Direct Track PDF file size increase
|
||||
- **WHEN** generating Layout PDF for Direct Track documents
|
||||
- **THEN** the system SHALL accept increased file size due to embedded page images
|
||||
- **AND** approximately 1-2 MB per page at 2x resolution is expected
|
||||
- **AND** this trade-off is accepted for improved visual fidelity
|
||||
|
||||
#### Scenario: Single-page layout verification
|
||||
- **WHEN** user exports OCR-processed single-page document (e.g., img1.png)
|
||||
- **THEN** generated PDF text positions SHALL match original image coordinates
|
||||
- **AND** top-aligned text (e.g., headers) SHALL appear at correct vertical position
|
||||
- **AND** no content SHALL be vertically flipped or offset from expected position
|
||||
#### Scenario: Chart elements excluded from text layer
|
||||
- **WHEN** generating Layout PDF containing charts
|
||||
- **THEN** the system SHALL NOT include chart-internal text in the invisible text layer
|
||||
- **AND** chart visuals SHALL be preserved in the background image
|
||||
- **AND** chart text SHALL NOT be available for text selection or translation
|
||||
|
||||
### Requirement: Structure Data Export
|
||||
The system SHALL provide export formats that preserve document structure for downstream processing.
|
||||
|
||||
Reference in New Issue
Block a user