pdftract/templates/sdk-skeleton/java
jedarden e3c7b2eec0 fix(pdftract-l993m): fix Tera template syntax in Methods templates
Fix incorrect Tera template syntax in per-language Methods templates:
- Change `elsif` to `elif` (correct Tera conditional syntax)
- Fix inline ternary-like syntax to use proper `{% if %}...{% else %}...{% endif %}`
- Fix truncated package name in Java template (codegen → codegen)

Affected templates:
- PHP: Methods.php.tera
- Python: methods.py.tera
- Ruby: methods.rb.tera
- Swift: Methods.swift.tera
- Java: Methods.java.tera

All 8 subprocess SDK templates now render correctly with the codegen
command. Verified via `pdftract sdk codegen --lang <lang> --out /tmp/sdk-<lang>`.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Bead-Id: pdftract-l993m
2026-05-18 02:29:21 -04:00
..
src fix(pdftract-l993m): fix Tera template syntax in Methods templates 2026-05-18 02:29:21 -04:00
GENERATED.tera feat(pdftract-l993m): complete per-language Tera template scaffolding 2026-05-18 02:01:46 -04:00
pom.xml.tera feat(pdftract-l993m): complete per-language Tera template scaffolding 2026-05-18 02:01:46 -04:00
README.md.tera feat(pdftract-l993m): complete per-language Tera template scaffolding 2026-05-18 02:01:46 -04:00

# pdftract-java

Java SDK for pdftract - PDF extraction and conformance testing.

## Installation

```xml
<dependency>
    <groupId>com.jedarden</groupId>
    <artifactId>pdftract</artifactId>
    <version>{{ version }}</version>
</dependency>
```

## Usage

### Basic extract

```java
import com.jedarden.pdftract.Pdftract;
import com.jedarden.pdftract.codegen.PathSource;

try (Pdftract client = new Pdftract()) {
    Document doc = client.extract(new PathSource("document.pdf"));
    System.out.println("Pages: " + doc.pages().size());
}
```

### Extract with OCR

```java
ExtractOptions options = new ExtractOptions();
options.setOcrLanguage("eng");
options.setOcrThreshold(0.7);

Document doc = client.extract(new PathSource("scanned.pdf"), options);
```

### Search

```java
import java.util.concurrent.Flow;

client.search(new PathSource("document.pdf"), "invoice", null)
    .subscribe(match -> {
        System.out.println("Found on page " + match.page() + ": " + match.text());
    });
```

### Stream extraction

```java
client.extractStream(new PathSource("large.pdf"), null)
    .subscribe(page -> {
        System.out.println("Page " + page.page() + ": " + page.blocks().size() + " blocks");
    });
```

## Binary version compatibility

This SDK requires pdftract {{ version }}. Download from:
https://github.com/jedarden/pdftract/releases/tag/v{{ version }}

## Troubleshooting

### Binary not found
Ensure `pdftract` is on your PATH. The SDK probes PATH for the executable.

### Version mismatch
The SDK will refuse to invoke mismatched binary versions. Install the correct version.

### Network failure
For remote URLs, check your network connection and TLS certificate chain.