Extracting text from images
In modern business operations, converting image-based text into searchable, editable digital content is a critical step in workflow automation. Organizations often face the challenge of manually transcribing information from scanned documents and photographs — a process that is time-consuming and prone to human error.
This sample demonstrates the technical foundation for automated text extraction from images using Nutrient Java SDK. It showcases how businesses can transform static visual content into actionable digital text. This capability supports complex document processing workflows, including:
- Search functionality — Making scanned documents searchable.
- Accessibility compliance — Supporting screen readers and text-to-speech.
- Automated data entry — Eliminating manual transcription in form processing.
Whether you’re digitizing historical archives or processing high volumes of form submissions, the ability to reliably extract text from images enables automation strategies that maintain accuracy and efficiency across diverse operational contexts.
Streamlining document workflows with our Java SDK
Developers can implement this feature by adding just a few lines of code to their applications. Nutrient Java SDK integrates OCR-based text extraction directly, eliminating the requirement for external tools or complex setups. Whether you’re building a document processing pipeline or adding extraction functionality to a web application, the SDK provides a reliable and efficient solution right out of the box.
Preparing the project
Specify a package name and create a new class for the task:
package io.nutrient.Sample;Import the required modules from Nutrient Java SDK. It’s recommended to specify the actual classes, though wildcards are supported:
import io.nutrient.sdk.Document;import io.nutrient.sdk.Vision;import io.nutrient.sdk.enums.VisionEngine;import io.nutrient.sdk.exceptions.NutrientException;
import java.io.FileWriter;import java.io.IOException;
public class ReadTextFromImage {Create the main function and specify the potential exceptions. In a production environment, you may choose to wrap these in a try-catch block for custom error handling:
public static void main(String[] args) throws NutrientException, IOException {With the Java environment ready, you can now focus on the SDK-specific implementation.
Loading and processing the image
Open the image file and configure the vision API to use the OCR engine for text extraction:
try (Document document = Document.open("input.png")) { // Configure OCR engine for text extraction document.getSettings().getVisionSettings().setEngine(VisionEngine.Ocr);The Document.open method loads the image into memory and prepares it for OCR processing. Nutrient Java SDK automatically detects the image format and applies appropriate preprocessing steps — such as deskewing or noise reduction — to improve recognition accuracy.
Executing text recognition
Create a vision instance and extract the text content. The vision API analyzes the image structure, identifies text regions, and converts visual characters into structured digital text:
Vision vision = Vision.set(document); String contentJson = vision.extractContent();The extractContent method performs the actual text recognition, returning a JSON structure containing all recognized text with positioning information.
Saving extracted results
Write the extracted content to a JSON file for use in downstream applications:
try (FileWriter writer = new FileWriter("output.json")) { writer.write(contentJson); } } }}This creates a JSON file containing all recognized text from the image. The structured output includes word-level bounding boxes and text content ready for:
- Search indexing
- Database storage
- Content management workflows
Understanding the output
The extractContent method returns a JSON structure that provides comprehensive metadata for the processed document. This structure includes:
- Text content — The full string of extracted text from the document.
- Bounding boxes — The precise (x, y) coordinates and dimensions (width/height) of text regions on the page.
- Word-level data — Detailed information for individual words, including their specific coordinates and confidence scores.
Error handling
Nutrient Java SDK handles errors with exception handling. The methods presented in this guide throw a NutrientException in case of failure. This helps with troubleshooting and implementing error handling logic within your Java application.
Conclusion
That’s all it takes to extract text from an image using OCR. The extracted content is ready for integration with search systems, accessibility tools, or automated data processing workflows. You can also download this ready-to-use sample package, fully configured to help you dive into Nutrient Java SDK and explore seamless text extraction capabilities.