#pdf #api-bindings #encoding

sys itext

Java 编写的 iText 7 PDF 生成库的 Rust 安全绑定

3 个不稳定版本

0.2.2 2024年2月20日
0.2.0 2023年6月19日
0.1.0 2023年6月15日

#101多媒体

MIT/Apache

70KB
1.5K SLoC

包含 (JAR 文件, 61KB) bundle/gradle/wrapper/gradle-wrapper.jar

itext-rs

Rust 对 Java 库 iText-PDF 的绑定。

目的

Rust 中生成 PDF 处于早期阶段。Java 的 PDF 世界已经相当成熟。此库允许 Rust 程序使用 iText PDF 创建 PDF。

编译

如果启用了 bundled 功能

  • 应该已安装 JVM。
  • 应设置环境变量 JAVA_HOME

使用

如果启用了 bundled 功能
当使用 JNI 的调用 API 时,应将此 crate 中嵌入的 JAR 文件添加到类路径

  1. 将 jarfile (const bundle::DEPENDENCIES) 保存到磁盘
  2. 将选项 -Djava.class.path=<PATH TO JARFILE> 添加到 JVM 的启动参数中。

如果没有启用 bundled 功能,则您需要为 JVM 提供itext-pdf库。


lib.rs:

iText-rs

Rust 对 iText 7.1.18 库的绑定。

绑定

此库为以下 iText 类提供(部分)绑定

  • com.itextpdf.io
    • ImageData
  • com.itextpdf.kernel
    • PdfDocument
    • PdfWriter
    • SolidLine
    • PageSize
    • ColorConstant
  • com.itextpdf.layout
    • Document
    • Table
    • Cell
    • Paragraph
    • LineSeparator
    • Image

为了支持 iText-PDF 类型,还包括了一些其他绑定

  • java.io.ByteArrayOutputStream
  • java.io.ByteArrayInputStream
  • java.awt.image.BufferedImage
  • javax.imageio.ImageIO
  • javax.imageio.stream.ImageInputStream

欢迎提交补丁以添加缺少的绑定或完善不完整的绑定。

为了运行,此 crate 显然需要一个 JVM。此外,它还需要 iText 内核、布局和 io 库。这些库通过 bundled 功能包含在此 crate 中;一个包含所有依赖项的 JAR 文件随后包含在 itext::bundle::DEPENDENCIES;

如果您使用JVM的调用API从代码中启动它,请将选项 -Djava.class.path=<路径到JAR文件> 添加到JVM的启动选项中。当然,为了使此功能正常工作,必须将依赖的jar文件保存到磁盘上。

许可证

此库根据您的选择,提供MIT或Apache 2.0许可证。

依赖项

~3–14MB
~127K SLoC