gitextract_cwg3t_9k/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── feature_request.md │ │ └── question.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── SECURITY.md │ └── workflows/ │ ├── release.yml │ ├── sync-docs.yml │ └── test-benchmark.yml ├── .gitignore ├── CHANGELOG.md ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE_TEMPLATE/ │ └── license.txt ├── NOTICE ├── README.md ├── SUPPORT.md ├── THIRD_PARTY/ │ ├── THIRD_PARTY_LICENSES.md │ ├── THIRD_PARTY_NOTICES.md │ └── licenses/ │ ├── BSD-2-Clause.txt │ ├── BSD-3-Clause.txt │ ├── Blue-Oak-1.0.0.txt │ ├── CDDL-1.1.txt │ ├── EDL-1.0.txt │ ├── EPL-1.0.txt │ ├── EPL-2.0.txt │ ├── ISC.txt │ ├── LICENSE-JJ2000.txt │ ├── MIT.txt │ ├── MPL-2.0.txt │ ├── PSF-2.0.txt │ └── Plexus Classworlds License.txt ├── build-scripts/ │ ├── fetch_shaded_jar.py │ └── set_version.py ├── content/ │ └── docs/ │ ├── _generated/ │ │ ├── node-convert-options.mdx │ │ └── python-convert-options.mdx │ ├── accessibility-compliance.mdx │ ├── accessibility-glossary.mdx │ ├── ai-safety.mdx │ ├── benchmark/ │ │ ├── index.mdx │ │ ├── meta.json │ │ ├── mhs.mdx │ │ ├── nid.mdx │ │ ├── speed.mdx │ │ └── teds.mdx │ ├── cli-options-reference.mdx │ ├── community.mdx │ ├── contributing.mdx │ ├── development-workflow.mdx │ ├── faq.mdx │ ├── hybrid-mode.mdx │ ├── index.mdx │ ├── json-schema.mdx │ ├── license.mdx │ ├── meta.json │ ├── quick-start-java.mdx │ ├── quick-start-nodejs.mdx │ ├── quick-start-python.mdx │ ├── rag-integration.mdx │ ├── reading-order.mdx │ ├── tagged-pdf-collaboration.mdx │ ├── tagged-pdf-rag.mdx │ ├── tagged-pdf.mdx │ ├── upcoming-roadmap.mdx │ └── whats-new-v2.mdx ├── docs/ │ ├── hybrid/ │ │ ├── docling-speed-optimization-plan.md │ │ ├── experiments/ │ │ │ ├── chunking_strategy/ │ │ │ │ ├── conclusion.json │ │ │ │ ├── docling_benchmark_report.json │ │ │ │ └── docling_page_range_benchmark.py │ │ │ ├── speed/ │ │ │ │ ├── baseline_results.json │ │ │ │ ├── fastapi_results.json │ │ │ │ ├── speed-experiment-2026-01-03.md │ │ │ │ └── subprocess_results.json │ │ │ └── triage/ │ │ │ └── triage-experiments.md │ │ ├── hybrid-mode-design.md │ │ ├── hybrid-mode-tasks.md │ │ └── research/ │ │ ├── comparison-summary.md │ │ ├── docling-openapi.json │ │ ├── docling-sample-response-lorem.json │ │ ├── docling-sample-response.json │ │ ├── documents-with-tables.txt │ │ ├── iobject-structure.md │ │ ├── opendataloader-sample-response.json │ │ └── opendataloader-sample-response.md │ └── superpowers/ │ ├── plans/ │ │ └── 2026-03-16-cid-font-detection.md │ └── specs/ │ └── 2026-03-16-cid-font-detection-design.md ├── examples/ │ └── python/ │ ├── batch/ │ │ ├── README.md │ │ ├── batch_processing.py │ │ └── requirements.txt │ └── rag/ │ ├── README.md │ ├── basic_chunking.py │ ├── langchain_example.py │ └── requirements.txt ├── java/ │ ├── .run/ │ │ └── OpenDataLoaderCli.run.xml │ ├── checkstyle.xml │ ├── opendataloader-pdf-cli/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── opendataloader/ │ │ │ └── pdf/ │ │ │ └── cli/ │ │ │ ├── CLIMain.java │ │ │ └── CLIOptions.java │ │ └── test/ │ │ └── java/ │ │ └── org/ │ │ └── opendataloader/ │ │ └── pdf/ │ │ └── cli/ │ │ ├── CLIMainTest.java │ │ ├── CLIOptionsContentSafetyTest.java │ │ └── CLIOptionsTest.java │ ├── opendataloader-pdf-core/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── opendataloader/ │ │ │ └── pdf/ │ │ │ ├── api/ │ │ │ │ ├── Config.java │ │ │ │ ├── FilterConfig.java │ │ │ │ └── OpenDataLoaderPDF.java │ │ │ ├── containers/ │ │ │ │ └── StaticLayoutContainers.java │ │ │ ├── entities/ │ │ │ │ ├── SemanticFormula.java │ │ │ │ └── SemanticPicture.java │ │ │ ├── html/ │ │ │ │ ├── HtmlGenerator.java │ │ │ │ ├── HtmlGeneratorFactory.java │ │ │ │ └── HtmlSyntax.java │ │ │ ├── hybrid/ │ │ │ │ ├── DoclingFastServerClient.java │ │ │ │ ├── DoclingSchemaTransformer.java │ │ │ │ ├── HancomClient.java │ │ │ │ ├── HancomSchemaTransformer.java │ │ │ │ ├── HybridClient.java │ │ │ │ ├── HybridClientFactory.java │ │ │ │ ├── HybridConfig.java │ │ │ │ ├── HybridSchemaTransformer.java │ │ │ │ ├── TriageLogger.java │ │ │ │ └── TriageProcessor.java │ │ │ ├── json/ │ │ │ │ ├── JsonName.java │ │ │ │ ├── JsonWriter.java │ │ │ │ ├── ObjectMapperHolder.java │ │ │ │ └── serializers/ │ │ │ │ ├── CaptionSerializer.java │ │ │ │ ├── DoubleSerializer.java │ │ │ │ ├── FormulaSerializer.java │ │ │ │ ├── HeaderFooterSerializer.java │ │ │ │ ├── HeadingSerializer.java │ │ │ │ ├── ImageSerializer.java │ │ │ │ ├── LineChunkSerializer.java │ │ │ │ ├── ListItemSerializer.java │ │ │ │ ├── ListSerializer.java │ │ │ │ ├── ParagraphSerializer.java │ │ │ │ ├── PictureSerializer.java │ │ │ │ ├── SemanticTextNodeSerializer.java │ │ │ │ ├── SerializerUtil.java │ │ │ │ ├── TableCellSerializer.java │ │ │ │ ├── TableRowSerializer.java │ │ │ │ ├── TableSerializer.java │ │ │ │ ├── TextChunkSerializer.java │ │ │ │ └── TextLineSerializer.java │ │ │ ├── markdown/ │ │ │ │ ├── MarkdownGenerator.java │ │ │ │ ├── MarkdownGeneratorFactory.java │ │ │ │ ├── MarkdownHTMLGenerator.java │ │ │ │ └── MarkdownSyntax.java │ │ │ ├── pdf/ │ │ │ │ ├── PDFLayer.java │ │ │ │ └── PDFWriter.java │ │ │ ├── processors/ │ │ │ │ ├── AbstractTableProcessor.java │ │ │ │ ├── CaptionProcessor.java │ │ │ │ ├── ClusterTableProcessor.java │ │ │ │ ├── ContentFilterProcessor.java │ │ │ │ ├── DocumentProcessor.java │ │ │ │ ├── HeaderFooterProcessor.java │ │ │ │ ├── HeadingProcessor.java │ │ │ │ ├── HiddenTextProcessor.java │ │ │ │ ├── HybridDocumentProcessor.java │ │ │ │ ├── LevelProcessor.java │ │ │ │ ├── ListProcessor.java │ │ │ │ ├── ParagraphProcessor.java │ │ │ │ ├── SpecialTableProcessor.java │ │ │ │ ├── StrikethroughProcessor.java │ │ │ │ ├── TableBorderProcessor.java │ │ │ │ ├── TableStructureNormalizer.java │ │ │ │ ├── TaggedDocumentProcessor.java │ │ │ │ ├── TextLineProcessor.java │ │ │ │ ├── TextProcessor.java │ │ │ │ └── readingorder/ │ │ │ │ └── XYCutPlusPlusSorter.java │ │ │ ├── text/ │ │ │ │ └── TextGenerator.java │ │ │ └── utils/ │ │ │ ├── Base64ImageUtils.java │ │ │ ├── BulletedParagraphUtils.java │ │ │ ├── ContentSanitizer.java │ │ │ ├── ImagesUtils.java │ │ │ ├── ModeWeightStatistics.java │ │ │ ├── SanitizationRule.java │ │ │ ├── TextNodeStatistics.java │ │ │ ├── TextNodeStatisticsConfig.java │ │ │ ├── TextNodeUtils.java │ │ │ └── levels/ │ │ │ ├── LevelInfo.java │ │ │ ├── LineArtBulletParagraphLevelInfo.java │ │ │ ├── ListLevelInfo.java │ │ │ ├── TableLevelInfo.java │ │ │ └── TextBulletParagraphLevelInfo.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── opendataloader/ │ │ │ └── pdf/ │ │ │ ├── EmbedImagesIntegrationTest.java │ │ │ ├── ImageDirIntegrationTest.java │ │ │ ├── IntegrationTest.java │ │ │ ├── Issue336IntegrationTest.java │ │ │ ├── PageSeparatorIntegrationTest.java │ │ │ ├── PagesOptionIntegrationTest.java │ │ │ ├── api/ │ │ │ │ ├── ConfigTest.java │ │ │ │ └── FilterConfigTest.java │ │ │ ├── containers/ │ │ │ │ └── StaticLayoutContainersTest.java │ │ │ ├── hybrid/ │ │ │ │ ├── DoclingFastServerClientTest.java │ │ │ │ ├── DoclingSchemaTransformerTest.java │ │ │ │ ├── HancomClientTest.java │ │ │ │ ├── HancomSchemaTransformerTest.java │ │ │ │ ├── HealthCheckTest.java │ │ │ │ ├── HybridClientFactoryTest.java │ │ │ │ ├── TriageLoggerTest.java │ │ │ │ ├── TriageProcessorIntegrationTest.java │ │ │ │ └── TriageProcessorTest.java │ │ │ ├── json/ │ │ │ │ └── serializers/ │ │ │ │ ├── ImageSerializerTest.java │ │ │ │ └── LineArtSerializerTest.java │ │ │ ├── markdown/ │ │ │ │ ├── MarkdownGeneratorTest.java │ │ │ │ └── MarkdownTableTest.java │ │ │ ├── processors/ │ │ │ │ ├── CaptionProcessorTest.java │ │ │ │ ├── CidFontDetectionTest.java │ │ │ │ ├── ContentFilterProcessorTest.java │ │ │ │ ├── HeaderFooterProcessorTest.java │ │ │ │ ├── HeadingProcessorTest.java │ │ │ │ ├── HybridDocumentProcessorTest.java │ │ │ │ ├── LevelProcessorTest.java │ │ │ │ ├── ListProcessorTest.java │ │ │ │ ├── ParagraphProcessorTest.java │ │ │ │ ├── SpecialTableProcessorTest.java │ │ │ │ ├── StrikethroughProcessorTest.java │ │ │ │ ├── TableBorderProcessorTest.java │ │ │ │ ├── TextLineProcessorTest.java │ │ │ │ ├── TextProcessorTest.java │ │ │ │ └── readingorder/ │ │ │ │ └── XYCutPlusPlusSorterTest.java │ │ │ ├── regression/ │ │ │ │ └── ToUnicodeRegressionTest.java │ │ │ └── utils/ │ │ │ ├── Base64ImageUtilsTest.java │ │ │ ├── ContentSanitizerTest.java │ │ │ ├── ImageFormatSupportTest.java │ │ │ ├── ImagesUtilsTest.java │ │ │ ├── ModeWeightStatisticsTest.java │ │ │ └── TextNodeStatisticsTest.java │ │ └── resources/ │ │ └── generate-cid-test-pdf.py │ └── pom.xml ├── node/ │ └── opendataloader-pdf/ │ ├── .gitignore │ ├── .npmrc │ ├── .prettierrc.json │ ├── eslint.config.js │ ├── package.json │ ├── scripts/ │ │ └── setup.cjs │ ├── src/ │ │ ├── cli-options.generated.ts │ │ ├── cli.ts │ │ ├── convert-options.generated.ts │ │ └── index.ts │ ├── test/ │ │ ├── convert-options.test.ts │ │ ├── convert.integration.test.ts │ │ └── run.integration.test.ts │ ├── tsconfig.json │ ├── tsup.config.ts │ └── vitest.config.ts ├── options.json ├── package.json ├── python/ │ └── opendataloader-pdf/ │ ├── .gitignore │ ├── hatch_build.py │ ├── pyproject.toml │ ├── src/ │ │ └── opendataloader_pdf/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── cli_options_generated.py │ │ ├── convert_generated.py │ │ ├── hybrid_server.py │ │ ├── runner.py │ │ └── wrapper.py │ └── tests/ │ ├── conftest.py │ ├── test_cli_options.py │ ├── test_convert_integration.py │ ├── test_hybrid_server.py │ ├── test_hybrid_server_nonblocking.py │ ├── test_hybrid_server_partial_success.py │ └── test_hybrid_server_unicode.py ├── samples/ │ └── json/ │ └── lorem.json ├── schema.json └── scripts/ ├── bench.sh ├── build-all.sh ├── build-java.sh ├── build-node.sh ├── build-python.sh ├── experiments/ │ ├── docling_baseline_bench.py │ ├── docling_fastapi_bench.py │ ├── docling_speed_report.py │ └── docling_subprocess_bench.py ├── generate-options.mjs ├── generate-schema.mjs ├── run-cli.sh ├── test-java.sh ├── test-node.sh ├── test-python.sh └── utils.mjs