项目基本信息
toml
[package]
name = "printpdf"
version = "0.8.2"
edition = "2021"
- 项目名称: printpdf
- 版本: 0.8.2
- Rust版本: 2021 edition
- 许可证: MIT
- 描述: 用于读写PDF文件的Rust库
项目链接
分类与关键词
- 关键词: pdf, gui, graphics, wkhtmltopdf
- 分类: gui
构建配置
toml
[lib]
crate-type = ["cdylib", "rlib"]
项目同时编译为动态库(cdylib)和Rust库(rlib),支持多种集成方式。
核心依赖分析
PDF处理核心
lopdf = "0.35.0"- PDF文档处理库,使用nom解析器time = "0.3.25"- 时间处理,支持序列化
字体处理
allsorts-subset-browser = "0.16"- 字体子集化处理rust-fontconfig- 字体配置(可选)
图形图像处理
image = "0.25"- 图像解码支持svg2pdf = "0.13.0"- SVG转PDF功能weezl = "0.1.8"- LZW压缩解码
数据编码
base64 = "0.22.1"- Base64编码flate2 = "1.0.35"- 内置字体解压缩
序列化
serde = "1"- 序列化框架serde_derive = "1"- 派生宏serde_json = "1"- JSON支持
WebAssembly支持
项目提供了完整的WASM支持:
toml
[target.'cfg(target_family = "wasm")'.dependencies]
wasm-bindgen = { version = "0.2" }
[target.'cfg(all(target_arch="wasm32",target_os="unknown"))'.dependencies]
js-sys = { version = "0.3.40", optional = true }
功能特性(Features)
默认特性
default = ["html"]- 默认启用HTML支持
主要功能模块
text_layout- 文本布局功能html- HTML渲染支持js-sys- WASM浏览器环境支持
图像格式支持
项目支持多种图像格式,通过特性开关启用:
gif,jpeg,png,pnm,tiffbmp,ico,tga,hdr,dds,webprayon- 图像解码多线程支持
示例程序
项目包含12个示例程序,涵盖各种功能:
advanced- 高级功能html- HTML渲染(需要html特性)image- 图像处理(需要png特性)svg- SVG支持text- 文本处理- 等等...
开发依赖
pretty_assertions = "1.4.1"- 测试断言美化text-diff = "0.4.0"- 文本差异比较
文档配置
toml
[package.metadata.docs.rs]
all-features = true
文档构建时启用所有特性,确保完整的功能展示。
项目特点总结
- 跨平台支持: 支持原生和WASM目标
- 模块化设计: 通过特性开关控制功能
- 完整PDF生态: 从基础PDF操作到高级渲染
- 丰富的图像支持: 支持多种图像格式
- 现代化架构: 使用2021 edition,依赖管理清晰
- 文档完善: 自动生成完整文档