Extracting data from specific pages
Long documents often carry the data you need on just a few pages — a cover sheet, a single invoice page, or one appendix. Restricting extraction to those pages skips the rest of the document, which cuts processing time and keeps the output focused on the content you care about.
The Nutrient Java SDK selects pages through the pageRange setting on the document’s open settings. Extraction then runs only on the pages you list.
How Nutrient supports this workflow
pageRange is a 1-based range string applied before extraction. The SDK reads it once, resolves it to the matching pages, and processes only those — there’s no need to split the document or post-filter the result.
The string accepts single pages and ranges, separated by commas or semicolons:
"5"— page 5 only."1-3,5"— pages 1, 2, 3, and 5."2;4;6"— pages 2, 4, and 6.""(the default) or"*"— every page.
Parsing is lenient: it never throws. Page numbers outside the document are ignored rather than clamped, so a range that overshoots the last page selects only the pages that exist, and a value that matches no page extracts nothing.
Complete implementation
This example extracts content from a chosen set of pages and writes it to JSON.
Specify a package name and create a new class:
package io.nutrient.Sample;Import the required classes from the SDK:
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 ExtractDataFromSpecificPages {Create the main method and declare thrown exceptions:
public static void main(String[] args) throws NutrientException, IOException {Open the PDF with try-with-resources so the document closes automatically:
try (Document document = Document.open("input.pdf")) {Set pageRange on the open settings to choose the pages to process. This example selects pages 1 through 3 and page 5:
document.getSettings().getOpenSettings().setPageRange("1-3,5");Configure the Adaptive OCR engine, extract the selected pages as JSON, and write the result to output.json:
document.getSettings().getVisionSettings().setEngine(VisionEngine.AdaptiveOcr);
Vision vision = Vision.set(document); String contentJson = vision.extractContent();
try (FileWriter writer = new FileWriter("output.json")) { writer.write(contentJson); } } }}Only the pages named in pageRange reach the extraction pipeline. The page numbers in the result keep their original values, so a value extracted from page 5 still reports page 5 — selection narrows the work without renumbering the document.
Handle errors
The Nutrient Java SDK uses exception handling for errors. The methods in this guide throw a NutrientException if a failure occurs. Use this exception to troubleshoot issues and implement error handling logic.
Summary
The extraction flow has four steps:
- Open the PDF document.
- Set
pageRangeon the open settings to choose the pages. - Configure the Adaptive OCR engine and extract content as JSON with
Vision. - Write the JSON output to a file.
You can download this sample package to run the example locally.