dxpdf 0.5.0

Fast DOCX-to-PDF converter powered by Skia
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "dxpdf"
version = "0.5.0"
build = false
exclude = [
    "test-cases/",
    "test-files/",
    "scripts/",
    "output/",
    "plans/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Fast DOCX-to-PDF converter powered by Skia"
homepage = "https://nerdy.pro"
documentation = "https://docs.rs/dxpdf"
readme = "README.md"
keywords = [
    "docx",
    "pdf",
    "converter",
    "word",
    "ooxml",
]
categories = [
    "command-line-utilities",
    "text-processing",
]
license = "MIT"
repository = "https://github.com/nerdy-pro/dxpdf"

[package.metadata.deb]
maintainer = "Ilya Nixan <nixan@nerdy.pro>"
copyright = "2025-2026 Ilya Nixan <nixan@nerdy.pro>"
license-file = [
    "LICENSE",
    "0",
]
section = "text"
priority = "optional"
depends = "$auto"
recommends = "fonts-liberation2 | fonts-liberation, fonts-dejavu-core"
changelog = "debian/changelog"
extended-description = """
dxpdf converts Word documents in Office Open XML format (.docx) to PDF. Layout is performed by dxpdf itself and rendering by Skia, so no office suite is required and nothing is sent over the network.

Fonts are resolved through fontconfig from those installed on the machine, together with any fonts embedded in the document."""
assets = [
    [
    "target/release/dxpdf",
    "usr/bin/",
    "755",
],
    [
    "man/dxpdf.1",
    "usr/share/man/man1/",
    "644",
],
    [
    "README.md",
    "usr/share/doc/dxpdf/README.md",
    "644",
],
    [
    "debian/dxpdf.lintian-overrides",
    "usr/share/lintian/overrides/dxpdf",
    "644",
],
]

[features]
default = ["subset-fonts"]
python = ["pyo3"]
subset-fonts = ["dep:fontcull"]

[lib]
name = "dxpdf"
crate-type = [
    "rlib",
    "cdylib",
]
path = "src/lib.rs"

[[bin]]
name = "dxpdf"
path = "src/main.rs"

[[test]]
name = "bidi"
path = "tests/bidi.rs"

[[test]]
name = "continuous_sections"
path = "tests/continuous_sections.rs"

[[test]]
name = "document_date_fields"
path = "tests/document_date_fields.rs"

[[test]]
name = "document_locale"
path = "tests/document_locale.rs"

[[test]]
name = "document_outline"
path = "tests/document_outline.rs"

[[test]]
name = "emoji_e2e"
path = "tests/emoji_e2e.rs"

[[test]]
name = "floating_table_pagination"
path = "tests/floating_table_pagination.rs"

[[test]]
name = "font_resolution"
path = "tests/font_resolution.rs"

[[test]]
name = "footer_path_wrap"
path = "tests/footer_path_wrap.rs"

[[test]]
name = "header_footer_selection"
path = "tests/header_footer_selection.rs"

[[test]]
name = "header_part_rels"
path = "tests/header_part_rels.rs"

[[test]]
name = "integration"
path = "tests/integration.rs"

[[test]]
name = "line_breaking"
path = "tests/line_breaking.rs"

[[test]]
name = "mce_branch_selection"
path = "tests/mce_branch_selection.rs"

[[test]]
name = "packaging"
path = "tests/packaging.rs"

[[test]]
name = "parse_test_files"
path = "tests/parse_test_files.rs"

[[test]]
name = "render_integration"
path = "tests/render_integration.rs"

[[test]]
name = "serde_spike"
path = "tests/serde_spike.rs"

[[test]]
name = "shape_text_anchor"
path = "tests/shape_text_anchor.rs"

[[test]]
name = "shape_text_autofit"
path = "tests/shape_text_autofit.rs"

[[test]]
name = "shape_text_overflow"
path = "tests/shape_text_overflow.rs"

[[test]]
name = "shaping"
path = "tests/shaping.rs"

[[test]]
name = "tab_alignment"
path = "tests/tab_alignment.rs"

[[test]]
name = "table_border_conflict"
path = "tests/table_border_conflict.rs"

[[test]]
name = "table_row_height"
path = "tests/table_row_height.rs"

[[test]]
name = "table_style_whole_table"
path = "tests/table_style_whole_table.rs"

[[bench]]
name = "convert_bench"
path = "benches/convert_bench.rs"
harness = false

[[bench]]
name = "parse_bench"
path = "benches/parse_bench.rs"
harness = false

[dependencies.bitflags]
version = "2"

[dependencies.clap]
version = "4"
features = ["derive"]

[dependencies.env_logger]
version = "0.11"

[dependencies.fixed_decimal]
version = "0.7.2"

[dependencies.fontcull]
version = "2"
optional = true

[dependencies.fontcull-font-types]
version = "0.10"

[dependencies.fontcull-read-fonts]
version = "0.38"

[dependencies.fontcull-skrifa]
version = "0.39"

[dependencies.fontcull-write-fonts]
version = "0.44"

[dependencies.icu_calendar]
version = "2.2.1"
features = [
    "alloc",
    "serde",
]
default-features = false

[dependencies.icu_datetime]
version = "2.2.0"
features = ["serde"]
default-features = false

[dependencies.icu_decimal]
version = "2.2.0"
features = [
    "alloc",
    "serde",
]
default-features = false

[dependencies.icu_locale_core]
version = "2.2.0"

[dependencies.icu_provider]
version = "2.2.0"

[dependencies.icu_provider_blob]
version = "2.2.0"
features = ["alloc"]
default-features = false

[dependencies.icu_segmenter]
version = "2.2.0"
features = [
    "auto",
    "serde",
]
default-features = false

[dependencies.kurbo]
version = "0.12"

[dependencies.log]
version = "0.4"

[dependencies.pyo3]
version = "0.29"
features = [
    "extension-module",
    "abi3-py38",
]
optional = true

[dependencies.quick-xml]
version = "0.41"
features = ["serialize"]

[dependencies.rustc-hash]
version = "2"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.skia-safe]
version = "0.99"
features = [
    "embed-freetype",
    "textlayout",
]

[dependencies.thiserror]
version = "2"

[dependencies.unicode-bidi]
version = "0.3.18"

[dependencies.unicode-bidi-mirroring]
version = "0.4"

[dependencies.unicode-joining-type]
version = "1"

[dependencies.unicode-normalization]
version = "0.1.25"

[dependencies.unicode-properties]
version = "0.1.4"

[dependencies.unicode-segmentation]
version = "1.13.2"

[dependencies.writeable]
version = "0.6.3"

[dependencies.zip]
version = "8"
features = ["deflate"]
default-features = false

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.lopdf]
version = "0.44"
default-features = false

[dev-dependencies.tempfile]
version = "3"

[dev-dependencies.toml]
version = "1"