Complete the Tera template scaffolding for all 8 subprocess-based SDKs
under templates/sdk-skeleton/<lang>/: node, go, java, dotnet, ruby,
php, swift, python-subprocess.
Each template directory contains:
- Package metadata template (package.json, go.mod, pom.xml, etc.)
- Method stubs template (methods.ts, client.go, Methods.java, etc.)
- Error stubs template (errors.ts, errors.go, Errors.java, etc.)
- Conformance runner template (conformance.test.ts, etc.)
- README template with {{ version }} variable substitution
- GENERATED.tera marker file
New files for python-subprocess:
- pdftract_subprocess/codegen/errors.py.tera
- tests/codegen/conformance_test.py.tera
- README.md.tera
- GENERATED.tera
All 8 language template directories are now complete and ready for
consumption by the `pdftract sdk codegen` subcommand.
Co-Authored-By: Claude Code <noreply@anthropic.com>
67 lines
1.4 KiB
Text
67 lines
1.4 KiB
Text
# pdftract-swift
|
|
|
|
Swift SDK for pdftract - PDF extraction and conformance testing.
|
|
|
|
## Installation
|
|
|
|
Add to your `Package.swift`:
|
|
|
|
```swift
|
|
dependencies: [
|
|
.package(url: "https://github.com/jedarden/pdftract-swift", from: "{{ version }}")
|
|
]
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Basic extract
|
|
|
|
```swift
|
|
import Pdftract
|
|
|
|
let client = Pdftract()
|
|
let doc = try client.extract(PathSource("document.pdf"))
|
|
print("Pages: \(doc.pages.count)")
|
|
```
|
|
|
|
### Extract with OCR
|
|
|
|
```swift
|
|
let options = ExtractOptions()
|
|
options.ocrLanguage = "eng"
|
|
options.ocrThreshold = 0.7
|
|
|
|
let doc = try client.extract(PathSource("scanned.pdf"), options: options)
|
|
```
|
|
|
|
### Search
|
|
|
|
```swift
|
|
for await match in client.search(PathSource("document.pdf"), "invoice") {
|
|
print("Found on page \(match.page): \(match.text)")
|
|
}
|
|
```
|
|
|
|
### Stream extraction
|
|
|
|
```swift
|
|
for await page in client.extractStream(PathSource("large.pdf")) {
|
|
print("Page \(page.page): \(page.blocks.count) 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.
|