VOOZH about

URL: https://dev.to/aairom/update-on-docling-java-1bp1

⇱ Update on Docling Java - DEV Community


News and updates on Docling Java!

👁

Introduction

It’s been over a year since I last dove into the Docling Java implementation — and since I’m not a native Java developer, it’s admittedly slipped under my radar more than it should. That’s a blind spot I’m ready to fix (or not 🤓).

For anyone following the project, we’ve seen Docling’s meteoric rise since the begining and now being donated to the Linux Foundation by IBM Research. The pace is relentless; it feels like we’re seeing major enhancements or fresh features almost every other day.

The Java side of the house is no exception. With a fresh update landing just last week, it’s the perfect time to give it a second look. If you’re building in Java, here’s why this deserves a spot in your stack.


Docling-Java (direct from GitHub Excerpt)

Docling simplifies document processing, parsing diverse formats, including advanced PDF understanding, and providing seamless integrations with the Generative AI ecosystem.

Features

  • 🗂️ Parsing of multiple document formats incl. PDF, DOCX, PPTX, XLSX, HTML, WAV, MP3, VTT, images (PNG, TIFF, JPEG, …), and more
  • 📑 Advanced PDF understanding incl. page layout, reading order, table structure, code, formulas, image classification, and more
  • 🧬 Unified, expressive DoclingDocument representation format
  • ↪️ Various export formats and options, including Markdown, HTML, DocTags and lossless JSON
  • 🔒 Local execution capabilities for sensitive data and air-gapped environments
  • 🤖 Plug-and-play integrations including LangChain4j
  • 🔍 Extensive OCR support for scanned PDFs and images
  • 👓 Support of several Visual Language Models (GraniteDocling)
  • 🎙️ Audio support with Automatic Speech Recognition (ASR) models

Hands-on Docling Java

If you’ve been hesitant to dive into the Python ecosystem, now is the perfect time to get your hands dirty. The latest Java implementation makes entry incredibly smooth: the samples are well-documented, the artifact guides are thorough, and the actual integration is surprisingly straightforward. No more excuses — it’s time to build.

Artifacts (Excerpt of GitHub)

This project provides the following artifacts:


Getting started

Use DoclingServeApi.convertSource() to convert individual documents (make sure both docling-serve-api and docling-serve-clientare on your classpath).

import ai.docling.serve.api.DoclingServeApi;
import ai.docling.serve.api.convert.request.ConvertDocumentRequest;
import ai.docling.serve.api.convert.request.source.HttpSource;
import ai.docling.serve.api.convert.response.InBodyConvertDocumentResponse;

DoclingServeApi doclingServeApi = DoclingServeApi.builder()
 .baseUrl("<location of docling serve instance>")
 .build();

ConvertDocumentRequest request = ConvertDocumentRequest.builder()
 .source(
 HttpSource.builder()
 .url(URI.create("https://arxiv.org/pdf/2408.09869"))
 .build()
 )
 .build();

InBodyConvertDocumentResponse response = (InBodyConvertDocumentResponse) doclingServeApi.convertSource(request);
System.out.println(response.getDocument().getMarkdownContent());

If you’re unsure of the concrete type returned by the convert API, you can handle it dynamically using the getResponseType() method:

import ai.docling.serve.api.convert.response.ResponseType;

// ... your code to create and configure the request ...

var result = doclingServeApi.convertSource(request);

switch(result.getResponseType()) {
 case ResponseType.IN_BODY -> // Response is InBodyConvertDocumentResponse
 case ResponseType.ZIP_ARCHIVE -> // Response is ZipArchiveConvertDocumentResponse
 case ResponseType.PRE_SIGNED_URL -> // Response is PreSignedUrlConvertDocumentResponse
}

Integration with SDLC / ADLC

If you’re a fan of using Claude for coding, there’s a specific Markdown format available that provides clear implementation guidelines. It’s a perfect fit for an assistant like IBM Bob to ingest also — in fact, putting that to the test is at the top of my “next steps” list.

👁


Conclusion

Ultimately, whether you’re a Java purist or looking to expand your AI toolkit beyond Python, the momentum behind Docling is impossible to ignore. Between the refreshed Java implementation and the specialized tooling for Claude and Bob, the barriers to entry have never been lower. It’s a fast-moving ecosystem, and with the latest updates making high-performance document parsing more accessible than ever, there’s no better time to jump in and start building.

And last but not least… a great thank to the Docling-Java project contributors 👏

👁

>>> Thanks for reading <<<

Links