edgeparse 0.2.0__tar.gz → 0.2.2__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.
Files changed (227) hide show
  1. {edgeparse-0.2.0 → edgeparse-0.2.2}/Cargo.lock +7 -7
  2. {edgeparse-0.2.0 → edgeparse-0.2.2}/Cargo.toml +1 -1
  3. {edgeparse-0.2.0 → edgeparse-0.2.2}/PKG-INFO +1 -1
  4. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/api/config.rs +4 -0
  5. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/lib.rs +31 -13
  6. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/document.rs +5 -0
  7. edgeparse-0.2.2/crates/edgeparse-core/src/output/markdown.rs +13719 -0
  8. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/loader.rs +2 -3
  9. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/raster_table_ocr.rs +797 -0
  10. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/cluster_table_detector.rs +1046 -0
  11. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/heading_detector.rs +8 -3
  12. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/paragraph_detector.rs +47 -3
  13. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/text_block_grouper.rs +34 -4
  14. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/xycut.rs +172 -27
  15. edgeparse-0.2.2/crates/pdf-cos/.gitignore +12 -0
  16. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/Cargo.toml +1 -1
  17. edgeparse-0.2.2/crates/pdf-cos/assets/AnnotationDemo.pdf +0 -0
  18. edgeparse-0.2.2/crates/pdf-cos/assets/Incremental.pdf +0 -0
  19. edgeparse-0.2.2/crates/pdf-cos/assets/encrypted.pdf +0 -0
  20. edgeparse-0.2.2/crates/pdf-cos/assets/example.pdf +27 -0
  21. edgeparse-0.2.2/crates/pdf-cos/assets/unicode.pdf +0 -0
  22. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/parser/mod.rs +4 -1
  23. edgeparse-0.2.0/crates/edgeparse-core/src/output/markdown.rs +0 -3183
  24. edgeparse-0.2.0/crates/pdf-cos/.gitignore +0 -9
  25. {edgeparse-0.2.0 → edgeparse-0.2.2}/README.md +0 -0
  26. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/Cargo.toml +0 -0
  27. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/README.md +0 -0
  28. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/api/batch.rs +0 -0
  29. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/api/config_loader.rs +0 -0
  30. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/api/filter.rs +0 -0
  31. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/api/mod.rs +0 -0
  32. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/hybrid.rs +0 -0
  33. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/bbox.rs +0 -0
  34. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/chunks.rs +0 -0
  35. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/content.rs +0 -0
  36. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/enums.rs +0 -0
  37. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/list.rs +0 -0
  38. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/mod.rs +0 -0
  39. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/semantic.rs +0 -0
  40. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/table.rs +0 -0
  41. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/models/text.rs +0 -0
  42. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/csv.rs +0 -0
  43. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/docx.rs +0 -0
  44. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/html.rs +0 -0
  45. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/json.rs +0 -0
  46. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/legacy_json.rs +0 -0
  47. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/mod.rs +0 -0
  48. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/text.rs +0 -0
  49. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/output/toc_builder.rs +0 -0
  50. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/annotation_enrichment.rs +0 -0
  51. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/annotation_extractor.rs +0 -0
  52. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/bookmark_extractor.rs +0 -0
  53. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/chunk_parser.rs +0 -0
  54. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/data/glyphlist.txt +0 -0
  55. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/encryption.rs +0 -0
  56. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/font.rs +0 -0
  57. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/form_extractor.rs +0 -0
  58. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/graphics_state.rs +0 -0
  59. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/hyperlink_extractor.rs +0 -0
  60. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/image_extractor.rs +0 -0
  61. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/line_extractor.rs +0 -0
  62. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/metadata_writer.rs +0 -0
  63. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/mod.rs +0 -0
  64. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/page_info.rs +0 -0
  65. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pdf/text_extractor.rs +0 -0
  66. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/error_recovery.rs +0 -0
  67. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/logging.rs +0 -0
  68. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/mod.rs +0 -0
  69. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/orchestrator.rs +0 -0
  70. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/parallel.rs +0 -0
  71. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/boxed_heading_promoter.rs +0 -0
  72. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/caption_linker.rs +0 -0
  73. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/column_detector.rs +0 -0
  74. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/content_filter.rs +0 -0
  75. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/content_sanitizer.rs +0 -0
  76. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/cross_page_linker.rs +0 -0
  77. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/figure_detector.rs +0 -0
  78. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/footnote_detector.rs +0 -0
  79. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/footnote_linker.rs +0 -0
  80. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/header_footer.rs +0 -0
  81. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/id_assignment.rs +0 -0
  82. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/list_detector.rs +0 -0
  83. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/list_pass2.rs +0 -0
  84. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/mod.rs +0 -0
  85. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/nesting_level.rs +0 -0
  86. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/output_builder.rs +0 -0
  87. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/reading_order.rs +0 -0
  88. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/table_content_assigner.rs +0 -0
  89. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/table_detector.rs +0 -0
  90. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/text_line_grouper.rs +0 -0
  91. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/toc_detector.rs +0 -0
  92. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/pipeline/stages/watermark_detector.rs +0 -0
  93. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/tagged/mod.rs +0 -0
  94. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/tagged/processor.rs +0 -0
  95. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/tagged/struct_tree.rs +0 -0
  96. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/diff.rs +0 -0
  97. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/font_metrics_cache.rs +0 -0
  98. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/image_dedup.rs +0 -0
  99. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/language_detector.rs +0 -0
  100. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/layout_analysis.rs +0 -0
  101. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/mod.rs +0 -0
  102. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/page_range.rs +0 -0
  103. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/sanitizer.rs +0 -0
  104. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/statistics.rs +0 -0
  105. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/text_normalizer.rs +0 -0
  106. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/src/utils/xref_index.rs +0 -0
  107. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/tests/integration_tests.rs +0 -0
  108. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-core/tests/perf_benchmarks.rs +0 -0
  109. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-python/Cargo.toml +0 -0
  110. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/edgeparse-python/src/lib.rs +0 -0
  111. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.cargo_vcs_info.json +0 -0
  112. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.chglog/CHANGELOG.tpl.md +0 -0
  113. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.chglog/config.yml +0 -0
  114. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.editorconfig +0 -0
  115. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.gitattributes +0 -0
  116. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.github/workflows/ci.yml +0 -0
  117. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.vscode/launch.json +0 -0
  118. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/.vscode/settings.json +0 -0
  119. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/CHANGELOG.md +0 -0
  120. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/LICENSE +0 -0
  121. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/README.md +0 -0
  122. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/pdf_icon.jpg +0 -0
  123. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/L16.png +0 -0
  124. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/L8.jpg +0 -0
  125. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/La16.png +0 -0
  126. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/La8.png +0 -0
  127. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/Rgb16.png +0 -0
  128. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/Rgb8.jpg +0 -0
  129. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/Rgba16.png +0 -0
  130. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/assets/supported_color_type/Rgba8.png +0 -0
  131. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/benches/datetime.rs +0 -0
  132. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/benches/parse.rs +0 -0
  133. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/add_barcode.rs +0 -0
  134. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/analyze_object_streams.rs +0 -0
  135. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/analyze_page_contents.rs +0 -0
  136. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/analyze_pdf.rs +0 -0
  137. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/analyze_references.rs +0 -0
  138. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/check_raw_objstream.rs +0 -0
  139. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/compress_existing_pdf.rs +0 -0
  140. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/create.rs +0 -0
  141. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/create_text_heavy_pdf.rs +0 -0
  142. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/debug_compression_detailed.rs +0 -0
  143. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/debug_compression_full.rs +0 -0
  144. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/debug_object_stream.rs +0 -0
  145. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/debug_save_with_objstreams.rs +0 -0
  146. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/decrypt.rs +0 -0
  147. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/encrypt.rs +0 -0
  148. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/extract_text.rs +0 -0
  149. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/extract_toc.rs +0 -0
  150. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/final_compression_test.rs +0 -0
  151. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/inspect_object_stream.rs +0 -0
  152. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/merge.rs +0 -0
  153. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/object_streams.rs +0 -0
  154. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/print_annotations.rs +0 -0
  155. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/replace_partial_text.rs +0 -0
  156. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/rotate.rs +0 -0
  157. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_better_compression.rs +0 -0
  158. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_decryption.rs +0 -0
  159. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_direct_objstream.rs +0 -0
  160. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_filter_roundtrip.rs +0 -0
  161. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_metadata.rs +0 -0
  162. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_object_stream_creation.rs +0 -0
  163. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_object_stream_roundtrip.rs +0 -0
  164. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_real_pdf_compression_with_fix.rs +0 -0
  165. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/test_structural_compression.rs +0 -0
  166. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/verify_decryption.rs +0 -0
  167. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/verify_page_compression.rs +0 -0
  168. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/verify_pdf.rs +0 -0
  169. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/examples/verify_trailer_compression_fix.rs +0 -0
  170. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/rustfmt.toml +0 -0
  171. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/bookmarks.rs +0 -0
  172. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/cmap_section.rs +0 -0
  173. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/common_data_structures/mod.rs +0 -0
  174. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/content.rs +0 -0
  175. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/creator.rs +0 -0
  176. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/datetime.rs +0 -0
  177. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/destinations.rs +0 -0
  178. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/document.rs +0 -0
  179. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encodings/cmap.rs +0 -0
  180. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encodings/glyphnames.rs +0 -0
  181. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encodings/mappings.rs +0 -0
  182. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encodings/mod.rs +0 -0
  183. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encryption/algorithms.rs +0 -0
  184. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encryption/crypt_filters.rs +0 -0
  185. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encryption/pkcs5.rs +0 -0
  186. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encryption/rc4.rs +0 -0
  187. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/encryption.rs +0 -0
  188. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/error.rs +0 -0
  189. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/filters/mod.rs +0 -0
  190. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/filters/png.rs +0 -0
  191. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/font.rs +0 -0
  192. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/incremental_document.rs +0 -0
  193. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/lib.rs +0 -0
  194. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/object.rs +0 -0
  195. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/object_stream.rs +0 -0
  196. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/outlines.rs +0 -0
  197. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/parser/cmap_parser.rs +0 -0
  198. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/parser_aux.rs +0 -0
  199. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/processor.rs +0 -0
  200. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/reader.rs +0 -0
  201. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/save_options.rs +0 -0
  202. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/toc.rs +0 -0
  203. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/writer.rs +0 -0
  204. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/xobject.rs +0 -0
  205. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/src/xref.rs +0 -0
  206. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/annotation.rs +0 -0
  207. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/catalog_compression_integration_test.rs +0 -0
  208. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/decryption.rs +0 -0
  209. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/extract_test.rs +0 -0
  210. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/font_test.rs +0 -0
  211. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/incremental_document.rs +0 -0
  212. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/metadata_test.rs +0 -0
  213. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/modify.rs +0 -0
  214. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/object_stream_comprehensive_test.rs +0 -0
  215. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/object_stream_edge_cases_test.rs +0 -0
  216. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/object_stream_methods_test.rs +0 -0
  217. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/object_stream_performance_test.rs +0 -0
  218. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/resources/fonts/Montserrat-Regular.ttf +0 -0
  219. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/simple_object_stream_test.rs +0 -0
  220. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/trailer_reference_compression_test.rs +0 -0
  221. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/unicode.rs +0 -0
  222. {edgeparse-0.2.0 → edgeparse-0.2.2}/crates/pdf-cos/tests/utils.rs +0 -0
  223. {edgeparse-0.2.0 → edgeparse-0.2.2}/edgeparse/__init__.py +0 -0
  224. {edgeparse-0.2.0 → edgeparse-0.2.2}/edgeparse/_types.py +0 -0
  225. {edgeparse-0.2.0 → edgeparse-0.2.2}/edgeparse/cli.py +0 -0
  226. {edgeparse-0.2.0 → edgeparse-0.2.2}/edgeparse/py.typed +0 -0
  227. {edgeparse-0.2.0 → edgeparse-0.2.2}/pyproject.toml +0 -0
@@ -636,7 +636,7 @@ dependencies = [
636
636
 
637
637
  [[package]]
638
638
  name = "edgeparse-cli"
639
- version = "0.2.0"
639
+ version = "0.2.2"
640
640
  dependencies = [
641
641
  "anyhow",
642
642
  "clap",
@@ -650,7 +650,7 @@ dependencies = [
650
650
 
651
651
  [[package]]
652
652
  name = "edgeparse-core"
653
- version = "0.2.0"
653
+ version = "0.2.2"
654
654
  dependencies = [
655
655
  "anyhow",
656
656
  "base64",
@@ -674,7 +674,7 @@ dependencies = [
674
674
 
675
675
  [[package]]
676
676
  name = "edgeparse-node"
677
- version = "0.2.0"
677
+ version = "0.2.2"
678
678
  dependencies = [
679
679
  "edgeparse-core",
680
680
  "napi",
@@ -686,7 +686,7 @@ dependencies = [
686
686
 
687
687
  [[package]]
688
688
  name = "edgeparse-python"
689
- version = "0.2.0"
689
+ version = "0.2.2"
690
690
  dependencies = [
691
691
  "edgeparse-core",
692
692
  "pyo3",
@@ -695,7 +695,7 @@ dependencies = [
695
695
 
696
696
  [[package]]
697
697
  name = "edgeparse-wasm"
698
- version = "0.2.0"
698
+ version = "0.2.2"
699
699
  dependencies = [
700
700
  "console_error_panic_hook",
701
701
  "console_log",
@@ -2482,9 +2482,9 @@ dependencies = [
2482
2482
 
2483
2483
  [[package]]
2484
2484
  name = "rustls-webpki"
2485
- version = "0.103.9"
2485
+ version = "0.103.10"
2486
2486
  source = "registry+https://github.com/rust-lang/crates.io-index"
2487
- checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53"
2487
+ checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef"
2488
2488
  dependencies = [
2489
2489
  "ring",
2490
2490
  "rustls-pki-types",
@@ -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.2.0"
6
+ version = "0.2.2"
7
7
  edition = "2021"
8
8
  rust-version = "1.85"
9
9
  license = "Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: edgeparse
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: Apache Software License
@@ -114,6 +114,8 @@ pub struct ProcessingConfig {
114
114
  pub image_format: ImageFormat,
115
115
  /// Directory for extracted images
116
116
  pub image_dir: Option<String>,
117
+ /// Enable raster table OCR recovery on image-based tables
118
+ pub raster_table_ocr: bool,
117
119
  /// Pages to extract (e.g., "1,3,5-7")
118
120
  pub pages: Option<String>,
119
121
  /// Include headers/footers in output
@@ -150,6 +152,7 @@ impl Default for ProcessingConfig {
150
152
  image_output: ImageOutput::External,
151
153
  image_format: ImageFormat::Png,
152
154
  image_dir: None,
155
+ raster_table_ocr: true,
153
156
  pages: None,
154
157
  include_header_footer: false,
155
158
  hybrid: HybridBackend::Off,
@@ -175,6 +178,7 @@ mod tests {
175
178
  assert_eq!(config.table_method, TableMethod::Default);
176
179
  assert_eq!(config.image_output, ImageOutput::External);
177
180
  assert_eq!(config.image_format, ImageFormat::Png);
181
+ assert!(config.raster_table_ocr);
178
182
  assert_eq!(config.hybrid, HybridBackend::Off);
179
183
  assert_eq!(config.hybrid_timeout, 30000);
180
184
  }
@@ -24,7 +24,9 @@ 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::recover_raster_table_borders;
27
+ use crate::pdf::raster_table_ocr::{
28
+ recover_page_raster_table_cell_text, recover_raster_table_borders,
29
+ };
28
30
  use crate::pipeline::orchestrator::{run_pipeline, PipelineState};
29
31
  use crate::tagged::struct_tree::build_mcid_map;
30
32
 
@@ -56,17 +58,19 @@ pub fn convert(
56
58
  for (&page_num, &page_id) in &pages_map {
57
59
  let page_chunks = extract_page_chunks(&raw_doc.document, page_num, page_id)?;
58
60
  let mut recovered_tables = Vec::new();
59
- if let Some(page_info) = page_info_list
60
- .iter()
61
- .find(|info| info.page_number == page_num)
62
- {
63
- recovered_tables = recover_raster_table_borders(
64
- input_path,
65
- &page_info.crop_box,
66
- page_num,
67
- &page_chunks.text_chunks,
68
- &page_chunks.image_chunks,
69
- );
61
+ if config.raster_table_ocr {
62
+ if let Some(page_info) = page_info_list
63
+ .iter()
64
+ .find(|info| info.page_number == page_num)
65
+ {
66
+ recovered_tables = recover_raster_table_borders(
67
+ input_path,
68
+ &page_info.crop_box,
69
+ page_num,
70
+ &page_chunks.text_chunks,
71
+ &page_chunks.image_chunks,
72
+ );
73
+ }
70
74
  }
71
75
  let mut elements: Vec<ContentElement> = page_chunks
72
76
  .text_chunks
@@ -104,7 +108,7 @@ pub fn convert(
104
108
  // Run the processing pipeline
105
109
  let mcid_map = build_mcid_map(&raw_doc.document);
106
110
  let mut pipeline_state = PipelineState::with_mcid_map(page_contents, config.clone(), mcid_map)
107
- .with_page_info(page_info_list);
111
+ .with_page_info(page_info_list.clone());
108
112
  run_pipeline(&mut pipeline_state)?;
109
113
 
110
114
  // Build the output document
@@ -115,12 +119,26 @@ pub fn convert(
115
119
  .to_string();
116
120
 
117
121
  let mut doc = PdfDocument::new(file_name);
122
+ doc.source_path = Some(input_path.display().to_string());
118
123
  doc.number_of_pages = pages_map.len() as u32;
119
124
  doc.author = raw_doc.metadata.author;
120
125
  doc.title = raw_doc.metadata.title;
121
126
  doc.creation_date = raw_doc.metadata.creation_date;
122
127
  doc.modification_date = raw_doc.metadata.modification_date;
123
128
 
129
+ if config.raster_table_ocr {
130
+ for (page_idx, page) in pipeline_state.pages.iter_mut().enumerate() {
131
+ if let Some(page_info) = page_info_list.get(page_idx) {
132
+ recover_page_raster_table_cell_text(
133
+ input_path,
134
+ &page_info.crop_box,
135
+ page_info.page_number,
136
+ page,
137
+ );
138
+ }
139
+ }
140
+ }
141
+
124
142
  // Flatten pipeline output into document kids
125
143
  for page in pipeline_state.pages {
126
144
  doc.kids.extend(page);
@@ -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
  }