#低内存 #图像压缩 #PDF #足迹 #大纲 #Unicode #大小

scannedpdf

一个快速、内存占用低、简单将图像转换为PDF的crate

1个不稳定版本

0.1.0 2023年2月5日

#8 in #足迹

MIT 许可证

22KB
438 代码行

Scanned PDF - rs

一个快速、内存占用低、简单将图像转换为PDF的crate。

特性

  • 快速 将1000张A4大小的图像在1分钟内合并成一个压缩的PDF。
  • 低内存占用 scannedpdf 不会在RAM中存储整个文件。通常,内存占用取决于单个图像的大小,不会超过100Mb。
  • 简单 仅关注将图像转换为PDF,scannedpdf 提供了极其简单的API。
  • 高压缩率 将总计800Mb的图像合并成一个70Mb的PDF。 (注意:压缩率取决于图像。测试中使用了768张A4大小的漫画图像,黑白和彩色各占50/50)
  • 支持Unicode大纲(书签) 大纲标题使用UTF-16BE编码。包括emoji在内的所有有效Unicode字符都能正确显示。

用法

  1. 通过 scannedpdfcargo add scannedpdf 添加到你的项目依赖中 注意:默认启用flate压缩。通过 cargo add scannedpdf --no-default-features 禁用它
  2. 查看示例或文档并开始使用。

资源

为什么还需要另一个PDF库?

我开始这个项目之前一直在使用 printpdf。我正在做一个漫画下载器,它涉及到合并大量的图像。 printpdf 在内存、性能和压缩方面表现不佳。此外,printpdf 无法处理书签中的Unicode文本,这在许多设备上会显示为乱码。

依赖项

~5MB
~60K SLoC