3个版本 (破坏性更新)
0.3.0 | 2024年8月6日 |
---|---|
0.2.0 | 2024年8月1日 |
0.1.0 | 2024年7月31日 |
#327 in 图像
每月381次下载
24KB
455 行
pdf2image
提供渲染单页和渲染多页的功能
Python的 pdf2image
的简化端口,包装 pdftoppm
和 pdftocairo
(Poppler的一部分),将PDF转换为 image::DynamicImage
。
这个库是基于 https://github.com/styrowolf/pdf2image 的分支,用tokio异步渲染代替了阻塞多线程(rayon)的使用。它本身是python pdf2image 库的端口。
它底层包装了 pdftoppm
和 pdftocairo
(Poppler的一部分),使用poppler的 "pdfinfo" 确定PDF的基本信息(页数和是否加密)
此分支使用异步渲染,并允许使用单独的函数渲染单页或多页。
[!INFO] 您必须在您的系统上安装Poppler才能使用此程序,它依赖于pdfinfo和
安装
pdf2image
需要已安装 poppler
。
cargo add pdf2image_alt
Windows
Windows用户将必须为Windows构建或下载 poppler
。Python的 pdf2image
维护者推荐 @oschwartz10612 版本。然后您必须将 bin/
文件夹添加到 PATH 或使用环境变量 PDF2IMAGE_POPPLER_PATH
。
macOS
使用 homebrew
brew安装poppler
Linux
大多数发行版都预装了 pdftoppm
和 pdftocairo
。如果未安装,请参考您的包管理器安装 poppler-utils
平台独立(使用 conda
)
- 安装
poppler
:conda install -c conda-forge poppler
- 安装
pdf2image
:pip install pdf2image
快速开始
use pdf2image_alt::{render_pdf_multi_page, PDF2ImageError, PdfInfo, RenderOptionsBuilder};
#[tokio::main]
async fn main() -> Result<(), PDF2ImageError> {
let data = std::fs::read("examples/pdfs/ropes.pdf").unwrap();
let pdf_info = PdfInfo::read(data.as_slice()).await.unwrap();
let options = RenderOptionsBuilder::default().pdftocairo(true).build()?;
let pages = render_pdf_multi_page(
&data,
&pdf_info,
pdf2image_alt::Pages::Range(1..=8),
&options,
)
.await
.unwrap();
println!("{:?}", pages.len());
Ok(())
}
许可证
pdf2image
包含从 Edouard Belval 的 pdf2image
Python 模块中衍生出来的代码,该模块采用 MIT 许可。同样,pdf2image
也采用 MIT 许可。
依赖
~7–16MB
~193K SLoC