edgeparse 0.1.1__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {edgeparse-0.1.1 → edgeparse-0.2.1}/Cargo.lock +163 -8
- {edgeparse-0.1.1 → edgeparse-0.2.1}/Cargo.toml +2 -2
- {edgeparse-0.1.1 → edgeparse-0.2.1}/PKG-INFO +1 -1
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/Cargo.toml +7 -5
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/lib.rs +103 -2
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/document.rs +5 -0
- edgeparse-0.2.1/crates/edgeparse-core/src/output/markdown.rs +13719 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/mod.rs +1 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/loader.rs +33 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/mod.rs +1 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/raster_table_ocr.rs +797 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/parallel.rs +51 -12
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/cluster_table_detector.rs +1046 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/heading_detector.rs +8 -3
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/paragraph_detector.rs +47 -3
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/reading_order.rs +13 -2
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/text_block_grouper.rs +34 -4
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/xycut.rs +172 -27
- edgeparse-0.2.1/crates/pdf-cos/.gitignore +12 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/Cargo.toml +1 -1
- edgeparse-0.2.1/crates/pdf-cos/assets/AnnotationDemo.pdf +0 -0
- edgeparse-0.2.1/crates/pdf-cos/assets/Incremental.pdf +0 -0
- edgeparse-0.2.1/crates/pdf-cos/assets/encrypted.pdf +0 -0
- edgeparse-0.2.1/crates/pdf-cos/assets/example.pdf +27 -0
- edgeparse-0.2.1/crates/pdf-cos/assets/unicode.pdf +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/parser/mod.rs +4 -1
- edgeparse-0.1.1/crates/edgeparse-core/src/output/markdown.rs +0 -3183
- edgeparse-0.1.1/crates/pdf-cos/.gitignore +0 -9
- edgeparse-0.1.1/crates/pdf-cos/Cargo.lock +0 -2262
- {edgeparse-0.1.1 → edgeparse-0.2.1}/README.md +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/README.md +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/api/batch.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/api/config.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/api/config_loader.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/api/filter.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/api/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/hybrid.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/bbox.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/chunks.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/content.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/enums.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/list.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/semantic.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/table.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/models/text.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/csv.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/docx.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/html.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/json.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/legacy_json.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/text.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/output/toc_builder.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/annotation_enrichment.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/annotation_extractor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/bookmark_extractor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/chunk_parser.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/data/glyphlist.txt +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/encryption.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/font.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/form_extractor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/graphics_state.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/hyperlink_extractor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/image_extractor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/line_extractor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/metadata_writer.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/page_info.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pdf/text_extractor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/error_recovery.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/logging.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/orchestrator.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/boxed_heading_promoter.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/caption_linker.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/column_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/content_filter.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/content_sanitizer.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/cross_page_linker.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/figure_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/footnote_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/footnote_linker.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/header_footer.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/id_assignment.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/list_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/list_pass2.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/nesting_level.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/output_builder.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/table_content_assigner.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/table_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/text_line_grouper.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/toc_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/pipeline/stages/watermark_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/tagged/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/tagged/processor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/tagged/struct_tree.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/diff.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/font_metrics_cache.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/image_dedup.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/language_detector.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/layout_analysis.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/page_range.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/sanitizer.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/statistics.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/text_normalizer.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/src/utils/xref_index.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/tests/integration_tests.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-core/tests/perf_benchmarks.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-python/Cargo.toml +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/edgeparse-python/src/lib.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.cargo_vcs_info.json +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.chglog/CHANGELOG.tpl.md +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.chglog/config.yml +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.editorconfig +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.gitattributes +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.github/workflows/ci.yml +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.vscode/launch.json +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/.vscode/settings.json +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/CHANGELOG.md +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/LICENSE +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/README.md +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/pdf_icon.jpg +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/L16.png +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/L8.jpg +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/La16.png +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/La8.png +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/Rgb16.png +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/Rgb8.jpg +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/Rgba16.png +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/assets/supported_color_type/Rgba8.png +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/benches/datetime.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/benches/parse.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/add_barcode.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/analyze_object_streams.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/analyze_page_contents.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/analyze_pdf.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/analyze_references.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/check_raw_objstream.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/compress_existing_pdf.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/create.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/create_text_heavy_pdf.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/debug_compression_detailed.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/debug_compression_full.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/debug_object_stream.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/debug_save_with_objstreams.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/decrypt.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/encrypt.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/extract_text.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/extract_toc.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/final_compression_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/inspect_object_stream.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/merge.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/object_streams.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/print_annotations.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/replace_partial_text.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/rotate.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_better_compression.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_decryption.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_direct_objstream.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_filter_roundtrip.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_metadata.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_object_stream_creation.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_object_stream_roundtrip.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_real_pdf_compression_with_fix.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/test_structural_compression.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/verify_decryption.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/verify_page_compression.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/verify_pdf.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/examples/verify_trailer_compression_fix.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/rustfmt.toml +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/bookmarks.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/cmap_section.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/common_data_structures/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/content.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/creator.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/datetime.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/destinations.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/document.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encodings/cmap.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encodings/glyphnames.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encodings/mappings.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encodings/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encryption/algorithms.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encryption/crypt_filters.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encryption/pkcs5.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encryption/rc4.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/encryption.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/error.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/filters/mod.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/filters/png.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/font.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/incremental_document.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/lib.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/object.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/object_stream.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/outlines.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/parser/cmap_parser.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/parser_aux.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/processor.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/reader.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/save_options.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/toc.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/writer.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/xobject.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/src/xref.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/annotation.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/catalog_compression_integration_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/decryption.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/extract_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/font_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/incremental_document.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/metadata_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/modify.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/object_stream_comprehensive_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/object_stream_edge_cases_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/object_stream_methods_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/object_stream_performance_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/resources/fonts/Montserrat-Regular.ttf +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/simple_object_stream_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/trailer_reference_compression_test.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/unicode.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/crates/pdf-cos/tests/utils.rs +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/edgeparse/__init__.py +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/edgeparse/_types.py +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/edgeparse/cli.py +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/edgeparse/py.typed +0 -0
- {edgeparse-0.1.1 → edgeparse-0.2.1}/pyproject.toml +0 -0
|
@@ -170,6 +170,17 @@ dependencies = [
|
|
|
170
170
|
"stable_deref_trait",
|
|
171
171
|
]
|
|
172
172
|
|
|
173
|
+
[[package]]
|
|
174
|
+
name = "async-trait"
|
|
175
|
+
version = "0.1.89"
|
|
176
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
177
|
+
checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
|
|
178
|
+
dependencies = [
|
|
179
|
+
"proc-macro2 1.0.106",
|
|
180
|
+
"quote 1.0.45",
|
|
181
|
+
"syn",
|
|
182
|
+
]
|
|
183
|
+
|
|
173
184
|
[[package]]
|
|
174
185
|
name = "atomic-waker"
|
|
175
186
|
version = "1.1.2"
|
|
@@ -306,6 +317,12 @@ version = "1.11.1"
|
|
|
306
317
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
307
318
|
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
|
|
308
319
|
|
|
320
|
+
[[package]]
|
|
321
|
+
name = "cast"
|
|
322
|
+
version = "0.3.0"
|
|
323
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
324
|
+
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
325
|
+
|
|
309
326
|
[[package]]
|
|
310
327
|
name = "cbc"
|
|
311
328
|
version = "0.1.2"
|
|
@@ -422,6 +439,17 @@ dependencies = [
|
|
|
422
439
|
"wasm-bindgen",
|
|
423
440
|
]
|
|
424
441
|
|
|
442
|
+
[[package]]
|
|
443
|
+
name = "console_log"
|
|
444
|
+
version = "1.0.0"
|
|
445
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
446
|
+
checksum = "be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f"
|
|
447
|
+
dependencies = [
|
|
448
|
+
"log",
|
|
449
|
+
"wasm-bindgen",
|
|
450
|
+
"web-sys",
|
|
451
|
+
]
|
|
452
|
+
|
|
425
453
|
[[package]]
|
|
426
454
|
name = "convert_case"
|
|
427
455
|
version = "0.6.0"
|
|
@@ -608,7 +636,7 @@ dependencies = [
|
|
|
608
636
|
|
|
609
637
|
[[package]]
|
|
610
638
|
name = "edgeparse-cli"
|
|
611
|
-
version = "0.
|
|
639
|
+
version = "0.2.1"
|
|
612
640
|
dependencies = [
|
|
613
641
|
"anyhow",
|
|
614
642
|
"clap",
|
|
@@ -622,7 +650,7 @@ dependencies = [
|
|
|
622
650
|
|
|
623
651
|
[[package]]
|
|
624
652
|
name = "edgeparse-core"
|
|
625
|
-
version = "0.
|
|
653
|
+
version = "0.2.1"
|
|
626
654
|
dependencies = [
|
|
627
655
|
"anyhow",
|
|
628
656
|
"base64",
|
|
@@ -646,7 +674,7 @@ dependencies = [
|
|
|
646
674
|
|
|
647
675
|
[[package]]
|
|
648
676
|
name = "edgeparse-node"
|
|
649
|
-
version = "0.
|
|
677
|
+
version = "0.2.1"
|
|
650
678
|
dependencies = [
|
|
651
679
|
"edgeparse-core",
|
|
652
680
|
"napi",
|
|
@@ -658,13 +686,30 @@ dependencies = [
|
|
|
658
686
|
|
|
659
687
|
[[package]]
|
|
660
688
|
name = "edgeparse-python"
|
|
661
|
-
version = "0.
|
|
689
|
+
version = "0.2.1"
|
|
662
690
|
dependencies = [
|
|
663
691
|
"edgeparse-core",
|
|
664
692
|
"pyo3",
|
|
665
693
|
"serde_json",
|
|
666
694
|
]
|
|
667
695
|
|
|
696
|
+
[[package]]
|
|
697
|
+
name = "edgeparse-wasm"
|
|
698
|
+
version = "0.2.1"
|
|
699
|
+
dependencies = [
|
|
700
|
+
"console_error_panic_hook",
|
|
701
|
+
"console_log",
|
|
702
|
+
"edgeparse-core",
|
|
703
|
+
"js-sys",
|
|
704
|
+
"log",
|
|
705
|
+
"serde",
|
|
706
|
+
"serde-wasm-bindgen",
|
|
707
|
+
"serde_json",
|
|
708
|
+
"wasm-bindgen",
|
|
709
|
+
"wasm-bindgen-test 0.3.64",
|
|
710
|
+
"web-sys",
|
|
711
|
+
]
|
|
712
|
+
|
|
668
713
|
[[package]]
|
|
669
714
|
name = "either"
|
|
670
715
|
version = "1.15.0"
|
|
@@ -1472,6 +1517,12 @@ dependencies = [
|
|
|
1472
1517
|
"windows-link",
|
|
1473
1518
|
]
|
|
1474
1519
|
|
|
1520
|
+
[[package]]
|
|
1521
|
+
name = "libm"
|
|
1522
|
+
version = "0.2.16"
|
|
1523
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1524
|
+
checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
|
|
1525
|
+
|
|
1475
1526
|
[[package]]
|
|
1476
1527
|
name = "libredox"
|
|
1477
1528
|
version = "0.1.14"
|
|
@@ -1558,6 +1609,16 @@ version = "0.3.17"
|
|
|
1558
1609
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1559
1610
|
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
|
|
1560
1611
|
|
|
1612
|
+
[[package]]
|
|
1613
|
+
name = "minicov"
|
|
1614
|
+
version = "0.3.8"
|
|
1615
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1616
|
+
checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d"
|
|
1617
|
+
dependencies = [
|
|
1618
|
+
"cc",
|
|
1619
|
+
"walkdir",
|
|
1620
|
+
]
|
|
1621
|
+
|
|
1561
1622
|
[[package]]
|
|
1562
1623
|
name = "miniz_oxide"
|
|
1563
1624
|
version = "0.8.9"
|
|
@@ -1695,6 +1756,15 @@ version = "0.3.0"
|
|
|
1695
1756
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1696
1757
|
checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
|
|
1697
1758
|
|
|
1759
|
+
[[package]]
|
|
1760
|
+
name = "nu-ansi-term"
|
|
1761
|
+
version = "0.50.3"
|
|
1762
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1763
|
+
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
|
|
1764
|
+
dependencies = [
|
|
1765
|
+
"windows-sys 0.61.2",
|
|
1766
|
+
]
|
|
1767
|
+
|
|
1698
1768
|
[[package]]
|
|
1699
1769
|
name = "num-bigint"
|
|
1700
1770
|
version = "0.4.6"
|
|
@@ -1749,6 +1819,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1749
1819
|
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
1750
1820
|
dependencies = [
|
|
1751
1821
|
"autocfg",
|
|
1822
|
+
"libm",
|
|
1752
1823
|
]
|
|
1753
1824
|
|
|
1754
1825
|
[[package]]
|
|
@@ -1763,6 +1834,12 @@ version = "1.70.2"
|
|
|
1763
1834
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1764
1835
|
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
|
|
1765
1836
|
|
|
1837
|
+
[[package]]
|
|
1838
|
+
name = "oorandom"
|
|
1839
|
+
version = "11.1.5"
|
|
1840
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1841
|
+
checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
|
|
1842
|
+
|
|
1766
1843
|
[[package]]
|
|
1767
1844
|
name = "openssl"
|
|
1768
1845
|
version = "0.10.76"
|
|
@@ -1894,7 +1971,7 @@ dependencies = [
|
|
|
1894
1971
|
"time",
|
|
1895
1972
|
"tokio",
|
|
1896
1973
|
"ttf-parser",
|
|
1897
|
-
"wasm-bindgen-test",
|
|
1974
|
+
"wasm-bindgen-test 0.2.50",
|
|
1898
1975
|
"weezl",
|
|
1899
1976
|
]
|
|
1900
1977
|
|
|
@@ -2405,9 +2482,9 @@ dependencies = [
|
|
|
2405
2482
|
|
|
2406
2483
|
[[package]]
|
|
2407
2484
|
name = "rustls-webpki"
|
|
2408
|
-
version = "0.103.
|
|
2485
|
+
version = "0.103.10"
|
|
2409
2486
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2410
|
-
checksum = "
|
|
2487
|
+
checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef"
|
|
2411
2488
|
dependencies = [
|
|
2412
2489
|
"ring",
|
|
2413
2490
|
"rustls-pki-types",
|
|
@@ -2426,6 +2503,15 @@ version = "1.0.23"
|
|
|
2426
2503
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2427
2504
|
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
|
|
2428
2505
|
|
|
2506
|
+
[[package]]
|
|
2507
|
+
name = "same-file"
|
|
2508
|
+
version = "1.0.6"
|
|
2509
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2510
|
+
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
|
2511
|
+
dependencies = [
|
|
2512
|
+
"winapi-util",
|
|
2513
|
+
]
|
|
2514
|
+
|
|
2429
2515
|
[[package]]
|
|
2430
2516
|
name = "schannel"
|
|
2431
2517
|
version = "0.1.29"
|
|
@@ -2486,6 +2572,17 @@ dependencies = [
|
|
|
2486
2572
|
"serde_derive",
|
|
2487
2573
|
]
|
|
2488
2574
|
|
|
2575
|
+
[[package]]
|
|
2576
|
+
name = "serde-wasm-bindgen"
|
|
2577
|
+
version = "0.6.5"
|
|
2578
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2579
|
+
checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"
|
|
2580
|
+
dependencies = [
|
|
2581
|
+
"js-sys",
|
|
2582
|
+
"serde",
|
|
2583
|
+
"wasm-bindgen",
|
|
2584
|
+
]
|
|
2585
|
+
|
|
2489
2586
|
[[package]]
|
|
2490
2587
|
name = "serde_core"
|
|
2491
2588
|
version = "1.0.228"
|
|
@@ -3042,6 +3139,16 @@ version = "0.9.5"
|
|
|
3042
3139
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3043
3140
|
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
|
3044
3141
|
|
|
3142
|
+
[[package]]
|
|
3143
|
+
name = "walkdir"
|
|
3144
|
+
version = "2.5.0"
|
|
3145
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3146
|
+
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
|
3147
|
+
dependencies = [
|
|
3148
|
+
"same-file",
|
|
3149
|
+
"winapi-util",
|
|
3150
|
+
]
|
|
3151
|
+
|
|
3045
3152
|
[[package]]
|
|
3046
3153
|
name = "want"
|
|
3047
3154
|
version = "0.3.1"
|
|
@@ -3159,7 +3266,29 @@ dependencies = [
|
|
|
3159
3266
|
"scoped-tls",
|
|
3160
3267
|
"wasm-bindgen",
|
|
3161
3268
|
"wasm-bindgen-futures 0.3.27",
|
|
3162
|
-
"wasm-bindgen-test-macro",
|
|
3269
|
+
"wasm-bindgen-test-macro 0.2.50",
|
|
3270
|
+
]
|
|
3271
|
+
|
|
3272
|
+
[[package]]
|
|
3273
|
+
name = "wasm-bindgen-test"
|
|
3274
|
+
version = "0.3.64"
|
|
3275
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3276
|
+
checksum = "6311c867385cc7d5602463b31825d454d0837a3aba7cdb5e56d5201792a3f7fe"
|
|
3277
|
+
dependencies = [
|
|
3278
|
+
"async-trait",
|
|
3279
|
+
"cast",
|
|
3280
|
+
"js-sys",
|
|
3281
|
+
"libm",
|
|
3282
|
+
"minicov",
|
|
3283
|
+
"nu-ansi-term",
|
|
3284
|
+
"num-traits",
|
|
3285
|
+
"oorandom",
|
|
3286
|
+
"serde",
|
|
3287
|
+
"serde_json",
|
|
3288
|
+
"wasm-bindgen",
|
|
3289
|
+
"wasm-bindgen-futures 0.4.64",
|
|
3290
|
+
"wasm-bindgen-test-macro 0.3.64",
|
|
3291
|
+
"wasm-bindgen-test-shared",
|
|
3163
3292
|
]
|
|
3164
3293
|
|
|
3165
3294
|
[[package]]
|
|
@@ -3172,6 +3301,23 @@ dependencies = [
|
|
|
3172
3301
|
"quote 0.6.13",
|
|
3173
3302
|
]
|
|
3174
3303
|
|
|
3304
|
+
[[package]]
|
|
3305
|
+
name = "wasm-bindgen-test-macro"
|
|
3306
|
+
version = "0.3.64"
|
|
3307
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3308
|
+
checksum = "67008cdde4769831958536b0f11b3bdd0380bde882be17fff9c2f34bb4549abd"
|
|
3309
|
+
dependencies = [
|
|
3310
|
+
"proc-macro2 1.0.106",
|
|
3311
|
+
"quote 1.0.45",
|
|
3312
|
+
"syn",
|
|
3313
|
+
]
|
|
3314
|
+
|
|
3315
|
+
[[package]]
|
|
3316
|
+
name = "wasm-bindgen-test-shared"
|
|
3317
|
+
version = "0.2.114"
|
|
3318
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3319
|
+
checksum = "cfe29135b180b72b04c74aa97b2b4a2ef275161eff9a6c7955ea9eaedc7e1d4e"
|
|
3320
|
+
|
|
3175
3321
|
[[package]]
|
|
3176
3322
|
name = "wasm-encoder"
|
|
3177
3323
|
version = "0.244.0"
|
|
@@ -3222,6 +3368,15 @@ version = "0.1.12"
|
|
|
3222
3368
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3223
3369
|
checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
|
|
3224
3370
|
|
|
3371
|
+
[[package]]
|
|
3372
|
+
name = "winapi-util"
|
|
3373
|
+
version = "0.1.11"
|
|
3374
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3375
|
+
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
3376
|
+
dependencies = [
|
|
3377
|
+
"windows-sys 0.61.2",
|
|
3378
|
+
]
|
|
3379
|
+
|
|
3225
3380
|
[[package]]
|
|
3226
3381
|
name = "windows-core"
|
|
3227
3382
|
version = "0.62.2"
|
|
@@ -3,7 +3,7 @@ resolver = "2"
|
|
|
3
3
|
members = ["crates/edgeparse-core", "crates/pdf-cos", "crates/edgeparse-python"]
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.2.1"
|
|
7
7
|
edition = "2021"
|
|
8
8
|
rust-version = "1.85"
|
|
9
9
|
license = "Apache-2.0"
|
|
@@ -13,7 +13,7 @@ description = "EdgeParse — High-performance PDF-to-structured-data extraction
|
|
|
13
13
|
[workspace.dependencies]
|
|
14
14
|
# PDF parsing (local fork of lopdf 0.39.0, renamed pdf-cos for clarity)
|
|
15
15
|
# Using package alias so all existing `use lopdf::...` code works unchanged.
|
|
16
|
-
lopdf = { package = "pdf-cos", path = "crates/pdf-cos", version = "0.39.0" }
|
|
16
|
+
lopdf = { package = "pdf-cos", path = "crates/pdf-cos", version = "0.39.0", default-features = false }
|
|
17
17
|
pdf-extract = "0.10.0"
|
|
18
18
|
|
|
19
19
|
# CLI
|
|
@@ -17,14 +17,14 @@ rustdoc-args = ["--cfg", "docsrs"]
|
|
|
17
17
|
all-features = false
|
|
18
18
|
|
|
19
19
|
[dependencies]
|
|
20
|
-
lopdf = { workspace = true }
|
|
20
|
+
lopdf = { workspace = true, default-features = false, features = ["chrono", "jiff", "time"] }
|
|
21
21
|
serde = { workspace = true }
|
|
22
22
|
serde_json = { workspace = true }
|
|
23
23
|
thiserror = { workspace = true }
|
|
24
24
|
anyhow = { workspace = true }
|
|
25
25
|
log = { workspace = true }
|
|
26
|
-
rayon = { workspace = true }
|
|
27
|
-
image = { workspace = true }
|
|
26
|
+
rayon = { workspace = true, optional = true }
|
|
27
|
+
image = { workspace = true, optional = true }
|
|
28
28
|
base64 = { workspace = true }
|
|
29
29
|
regex = { workspace = true }
|
|
30
30
|
unicode-normalization = { workspace = true }
|
|
@@ -32,12 +32,14 @@ indexmap = { workspace = true }
|
|
|
32
32
|
ordered-float = { workspace = true }
|
|
33
33
|
ttf-parser = { workspace = true }
|
|
34
34
|
euclid = { workspace = true }
|
|
35
|
-
zip = { workspace = true }
|
|
35
|
+
zip = { workspace = true, optional = true }
|
|
36
36
|
reqwest = { workspace = true, optional = true }
|
|
37
37
|
tokio = { workspace = true, optional = true }
|
|
38
38
|
|
|
39
39
|
[features]
|
|
40
|
-
default = []
|
|
40
|
+
default = ["native"]
|
|
41
|
+
native = ["rayon", "image", "zip", "lopdf/rayon"]
|
|
42
|
+
wasm = ["lopdf/wasm_js"]
|
|
41
43
|
hybrid = ["dep:reqwest", "dep:tokio"]
|
|
42
44
|
|
|
43
45
|
[dev-dependencies]
|
|
@@ -23,7 +23,10 @@ use crate::models::content::ContentElement;
|
|
|
23
23
|
use crate::models::document::PdfDocument;
|
|
24
24
|
use crate::pdf::chunk_parser::extract_page_chunks;
|
|
25
25
|
use crate::pdf::page_info;
|
|
26
|
-
|
|
26
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
27
|
+
use crate::pdf::raster_table_ocr::{
|
|
28
|
+
recover_page_raster_table_cell_text, recover_raster_table_borders,
|
|
29
|
+
};
|
|
27
30
|
use crate::pipeline::orchestrator::{run_pipeline, PipelineState};
|
|
28
31
|
use crate::tagged::struct_tree::build_mcid_map;
|
|
29
32
|
|
|
@@ -38,6 +41,7 @@ use crate::tagged::struct_tree::build_mcid_map;
|
|
|
38
41
|
///
|
|
39
42
|
/// # Errors
|
|
40
43
|
/// Returns an error if the PDF cannot be loaded or processed.
|
|
44
|
+
#[cfg(not(target_arch = "wasm32"))]
|
|
41
45
|
pub fn convert(
|
|
42
46
|
input_path: &std::path::Path,
|
|
43
47
|
config: &ProcessingConfig,
|
|
@@ -102,7 +106,7 @@ pub fn convert(
|
|
|
102
106
|
// Run the processing pipeline
|
|
103
107
|
let mcid_map = build_mcid_map(&raw_doc.document);
|
|
104
108
|
let mut pipeline_state = PipelineState::with_mcid_map(page_contents, config.clone(), mcid_map)
|
|
105
|
-
.with_page_info(page_info_list);
|
|
109
|
+
.with_page_info(page_info_list.clone());
|
|
106
110
|
run_pipeline(&mut pipeline_state)?;
|
|
107
111
|
|
|
108
112
|
// Build the output document
|
|
@@ -113,12 +117,24 @@ pub fn convert(
|
|
|
113
117
|
.to_string();
|
|
114
118
|
|
|
115
119
|
let mut doc = PdfDocument::new(file_name);
|
|
120
|
+
doc.source_path = Some(input_path.display().to_string());
|
|
116
121
|
doc.number_of_pages = pages_map.len() as u32;
|
|
117
122
|
doc.author = raw_doc.metadata.author;
|
|
118
123
|
doc.title = raw_doc.metadata.title;
|
|
119
124
|
doc.creation_date = raw_doc.metadata.creation_date;
|
|
120
125
|
doc.modification_date = raw_doc.metadata.modification_date;
|
|
121
126
|
|
|
127
|
+
for (page_idx, page) in pipeline_state.pages.iter_mut().enumerate() {
|
|
128
|
+
if let Some(page_info) = page_info_list.get(page_idx) {
|
|
129
|
+
recover_page_raster_table_cell_text(
|
|
130
|
+
input_path,
|
|
131
|
+
&page_info.crop_box,
|
|
132
|
+
page_info.page_number,
|
|
133
|
+
page,
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
122
138
|
// Flatten pipeline output into document kids
|
|
123
139
|
for page in pipeline_state.pages {
|
|
124
140
|
doc.kids.extend(page);
|
|
@@ -127,6 +143,91 @@ pub fn convert(
|
|
|
127
143
|
Ok(doc)
|
|
128
144
|
}
|
|
129
145
|
|
|
146
|
+
/// Convert a PDF from an in-memory byte slice to structured data.
|
|
147
|
+
///
|
|
148
|
+
/// This is the WASM-compatible entry point. It replaces all filesystem
|
|
149
|
+
/// operations with in-memory equivalents and skips raster table OCR.
|
|
150
|
+
///
|
|
151
|
+
/// # Arguments
|
|
152
|
+
/// * `data` — raw PDF bytes (e.g., from a `Uint8Array` in JavaScript)
|
|
153
|
+
/// * `file_name` — display name (used in `PdfDocument.file_name`)
|
|
154
|
+
/// * `config` — processing configuration
|
|
155
|
+
///
|
|
156
|
+
/// # Returns
|
|
157
|
+
/// Structured document or error.
|
|
158
|
+
///
|
|
159
|
+
/// # Errors
|
|
160
|
+
/// Returns an error if the PDF cannot be parsed or processed.
|
|
161
|
+
pub fn convert_bytes(
|
|
162
|
+
data: &[u8],
|
|
163
|
+
file_name: &str,
|
|
164
|
+
config: &ProcessingConfig,
|
|
165
|
+
) -> Result<PdfDocument, EdgePdfError> {
|
|
166
|
+
let raw_doc = pdf::loader::load_pdf_from_bytes(data, config.password.as_deref())?;
|
|
167
|
+
|
|
168
|
+
let page_info_list = page_info::extract_page_info(&raw_doc.document);
|
|
169
|
+
|
|
170
|
+
let pages_map = raw_doc.document.get_pages();
|
|
171
|
+
let mut page_contents = Vec::with_capacity(pages_map.len());
|
|
172
|
+
|
|
173
|
+
for (&page_num, &page_id) in &pages_map {
|
|
174
|
+
let page_chunks = extract_page_chunks(&raw_doc.document, page_num, page_id)?;
|
|
175
|
+
|
|
176
|
+
// Raster table OCR requires external pdfimages binary — skip in memory-only mode
|
|
177
|
+
let recovered_tables = Vec::new();
|
|
178
|
+
|
|
179
|
+
let mut elements: Vec<ContentElement> = page_chunks
|
|
180
|
+
.text_chunks
|
|
181
|
+
.into_iter()
|
|
182
|
+
.map(ContentElement::TextChunk)
|
|
183
|
+
.collect();
|
|
184
|
+
|
|
185
|
+
elements.extend(
|
|
186
|
+
page_chunks
|
|
187
|
+
.image_chunks
|
|
188
|
+
.into_iter()
|
|
189
|
+
.map(ContentElement::Image),
|
|
190
|
+
);
|
|
191
|
+
elements.extend(
|
|
192
|
+
page_chunks
|
|
193
|
+
.line_chunks
|
|
194
|
+
.into_iter()
|
|
195
|
+
.map(ContentElement::Line),
|
|
196
|
+
);
|
|
197
|
+
elements.extend(
|
|
198
|
+
page_chunks
|
|
199
|
+
.line_art_chunks
|
|
200
|
+
.into_iter()
|
|
201
|
+
.map(ContentElement::LineArt),
|
|
202
|
+
);
|
|
203
|
+
elements.extend(
|
|
204
|
+
recovered_tables
|
|
205
|
+
.into_iter()
|
|
206
|
+
.map(ContentElement::TableBorder),
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
page_contents.push(elements);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
let mcid_map = build_mcid_map(&raw_doc.document);
|
|
213
|
+
let mut pipeline_state = PipelineState::with_mcid_map(page_contents, config.clone(), mcid_map)
|
|
214
|
+
.with_page_info(page_info_list);
|
|
215
|
+
run_pipeline(&mut pipeline_state)?;
|
|
216
|
+
|
|
217
|
+
let mut doc = PdfDocument::new(file_name.to_string());
|
|
218
|
+
doc.number_of_pages = pages_map.len() as u32;
|
|
219
|
+
doc.author = raw_doc.metadata.author;
|
|
220
|
+
doc.title = raw_doc.metadata.title;
|
|
221
|
+
doc.creation_date = raw_doc.metadata.creation_date;
|
|
222
|
+
doc.modification_date = raw_doc.metadata.modification_date;
|
|
223
|
+
|
|
224
|
+
for page in pipeline_state.pages {
|
|
225
|
+
doc.kids.extend(page);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
Ok(doc)
|
|
229
|
+
}
|
|
230
|
+
|
|
130
231
|
/// Top-level error type for EdgeParse operations.
|
|
131
232
|
#[derive(Debug, thiserror::Error)]
|
|
132
233
|
pub enum EdgePdfError {
|
|
@@ -9,6 +9,9 @@ use super::content::ContentElement;
|
|
|
9
9
|
pub struct PdfDocument {
|
|
10
10
|
/// Original file name
|
|
11
11
|
pub file_name: String,
|
|
12
|
+
/// Original source path when available.
|
|
13
|
+
#[serde(skip_serializing_if = "Option::is_none")]
|
|
14
|
+
pub source_path: Option<String>,
|
|
12
15
|
/// Number of pages
|
|
13
16
|
pub number_of_pages: u32,
|
|
14
17
|
/// Document author
|
|
@@ -36,6 +39,7 @@ impl PdfDocument {
|
|
|
36
39
|
pub fn new(file_name: String) -> Self {
|
|
37
40
|
Self {
|
|
38
41
|
file_name,
|
|
42
|
+
source_path: None,
|
|
39
43
|
number_of_pages: 0,
|
|
40
44
|
author: None,
|
|
41
45
|
title: None,
|
|
@@ -89,6 +93,7 @@ mod tests {
|
|
|
89
93
|
fn test_new_document() {
|
|
90
94
|
let doc = PdfDocument::new("test.pdf".to_string());
|
|
91
95
|
assert_eq!(doc.file_name, "test.pdf");
|
|
96
|
+
assert_eq!(doc.source_path, None);
|
|
92
97
|
assert_eq!(doc.number_of_pages, 0);
|
|
93
98
|
assert!(doc.kids.is_empty());
|
|
94
99
|
}
|