[package]
name = "pdf-engine"
version = "1.2.0"
edition = "2021"
license = "AGPL-3.0-only OR LicenseRef-PDFluent-Commercial"
readme = "README.md"
description = "Unified PDF rendering engine — page rendering, text extraction, thumbnails."
exclude = ["tests/", "examples/"]
repository = "https://github.com/pdfluent/pdfluent-sdk"
homepage = "https://pdfluent.com"
documentation = "https://pdfluent.com/docs"
keywords = ["pdf", "rendering", "text-extraction", "forms"]
categories = ["rendering", "text-processing"]
[lib]
crate-type = ["rlib", "cdylib"]
[dependencies]
pdf-syntax = { path = "../pdf-syntax", version = "=0.6.1" }
pdf-interpret = { path = "../pdf-interpret", version = "=0.6.1" }
pdf-compliance = { path = "../pdf-compliance", version = "=1.2.0" }
lopdf = { package = "pdfluent-lopdf", path = "../lopdf", default-features = false, version = "=0.39.7" }
pdf-render = { path = "../pdf-render", version = "=1.2.0" }
pdf-forms = { package = "pdfluent-forms", path = "../pdf-forms", version = "=1.2.0" }
pdf-xfa = { path = "../pdf-xfa", optional = true, version = "=1.2.0" }
xfa-layout-engine = { path = "../xfa-layout-engine", optional = true, version = "=1.2.0" }
formcalc-interpreter = { path = "../formcalc-interpreter", optional = true, version = "=1.1.0" }
xfa-json = { path = "../xfa-json", optional = true, version = "=1.2.0" }
thiserror = { workspace = true }
kurbo = "0.13.0"
rayon = { version = "1", optional = true }
ocrs = { version = "0.12", optional = true }
rten = { version = "0.24", optional = true }
dirs-sys = { version = "0.3", optional = true }
pdf-ocr = { workspace = true }
reqwest = { workspace = true, optional = true }
base64 = { workspace = true }
image = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
hmac = { version = "0.12", optional = true }
sha2 = { version = "0.10", optional = true }
rsa = { version = "0.9", default-features = false, features = ["sha2"], optional = true }
pkcs8 = { version = "0.10", features = ["pem"], optional = true }
time = { version = "0.3", features = ["formatting", "macros"], optional = true }
tract-onnx = { version = "0.23", optional = true, default-features = false }
ort = { version = "=2.0.0-rc.13", optional = true, default-features = false, features = ["std", "ndarray", "load-dynamic", "api-23"] }
ndarray = { version = "0.17", optional = true }
[features]
default = []
parallel = ["dep:rayon"]
serde = ["dep:serde"]
xfa = ["dep:pdf-xfa", "dep:xfa-layout-engine", "dep:formcalc-interpreter", "dep:xfa-json"]
xfa-js-sandboxed = ["xfa", "pdf-xfa/xfa-js-sandboxed"]
ocr = ["dep:ocrs", "dep:rten", "dep:dirs-sys"]
ocr-mistral = ["dep:reqwest", "dep:image", "dep:serde", "dep:serde_json"]
ocr-google = ["dep:reqwest", "dep:image", "dep:serde", "dep:serde_json", "dep:rsa", "dep:pkcs8", "dep:sha2", "dep:time"]
ocr-aws = ["dep:reqwest", "dep:image", "dep:serde", "dep:serde_json", "dep:hmac", "dep:sha2", "dep:time"]
ocr-azure = ["dep:reqwest", "dep:image", "dep:serde", "dep:serde_json"]
ocr-cloud = ["ocr-mistral", "ocr-google", "ocr-aws", "ocr-azure"]
ocr-onnx = ["pdf-ocr/paddle"]
ort = ["pdf-ocr/onnx-runtime", "dep:ort", "dep:ndarray"]
ort-layout = ["ort"]
ort-tables = ["ort"]
ocr-cli = ["pdf-ocr/tesseract-cli"]
vision = ["dep:tract-onnx"]
full = ["parallel", "xfa", "ocr", "ocr-onnx", "ocr-cloud"]
spike = []
corridor-grid = []
[[example]]
name = "chunk_dump"
required-features = ["spike"]
[[example]]
name = "logical_compare"
required-features = ["spike"]
[[example]]
name = "structtree_measure"
required-features = ["spike"]
[[example]]
name = "structtree_spike"
required-features = ["spike"]
[[example]]
name = "structtree_table"
required-features = ["spike"]
[[example]]
name = "structured_demo"
required-features = ["spike"]
[[example]]
name = "table_audit"
required-features = ["spike"]
[[example]]
name = "table_dump"
required-features = ["spike"]
[dev-dependencies]
test-skip = { path = "../test-skip" }
png = "0.18"
docx-extract = { path = "../docx-extract" }
pptx-extract = { path = "../pptx-extract" }
xlsx-extract = { path = "../xlsx-extract" }
markup-extract = { path = "../markup-extract" }
epub-extract = { path = "../epub-extract" }
zip = { version = "9", default-features = false, features = ["deflate"] }
image = { workspace = true }
lopdf = { workspace = true }
serde_json = { workspace = true, features = ["float_roundtrip"] }
base64 = { workspace = true }
pdfium-render = "0.8"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]