#矢量图形 #PDF #图形 #PDF文件 #矢量 #文本

pdf-canvas

使用纯Rust生成PDF文件。目前支持简单的矢量图形和14种内置字体中的文本设置。

4个版本 (2个破坏性更新)

0.7.0 2022年2月7日
0.6.0 2018年7月15日
0.5.4 2017年2月14日
0.5.2 2017年2月14日

#465图像

Download history 71/week @ 2024-03-13 68/week @ 2024-03-20 95/week @ 2024-03-27 128/week @ 2024-04-03 37/week @ 2024-04-10 79/week @ 2024-04-17 120/week @ 2024-04-24 110/week @ 2024-05-01 99/week @ 2024-05-08 169/week @ 2024-05-15 142/week @ 2024-05-22 201/week @ 2024-05-29 187/week @ 2024-06-05 159/week @ 2024-06-12 164/week @ 2024-06-19 139/week @ 2024-06-26

每月711次下载
4 crate中使用

MIT许可证

150KB
1.5K SLoC

pdf-canvas

一个用于生成PDF文件的纯Rust库。目前支持简单的矢量图形和14种内置字体中的文本设置。

Build Status Build status

要使用此库,请将其添加到您的Cargo.toml依赖中

[dependencies]
pdf-canvas = "*"

API仍处于非常初级的阶段,使用可能发生变化。一些示例(应与包含它们的版本一起工作)可以在examples目录中找到。请阅读pdf-canvas crate的API文档。一个使用此crate的更大型程序的示例是chord3,一个chopro格式化工具


lib.rs:

一个用于创建PDF文件的库。

目前支持简单的矢量图形和14种内置字体中的文本设置。此crate的主要入口点是struct Pdf,表示正在编写的PDF文件。

示例

use pdf_canvas::{Pdf, BuiltinFont, FontSource};
use pdf_canvas::graphicsstate::Color;

let mut document = Pdf::create("example.pdf")
    .expect("Create pdf file");
// The 14 builtin fonts are available
let font = BuiltinFont::Times_Roman;

// Add a page to the document.  This page will be 180 by 240 pt large.
document.render_page(180.0, 240.0, |canvas| {
    // This closure defines the content of the page
    let hello = "Hello World!";
    let w = font.get_width(24.0, hello) + 8.0;

    // Some simple graphics
    canvas.set_stroke_color(Color::rgb(0, 0, 248))?;
    canvas.rectangle(90.0 - w / 2.0, 194.0, w, 26.0)?;
    canvas.stroke()?;

    // Some text
    canvas.center_text(90.0, 200.0, font, 24.0, hello)
}).expect("Write page");
// Write all pending content, including the trailer and index
document.finish().expect("Finish pdf document");

要使用此库,您需要将其添加到您的Cargo.toml依赖中

[dependencies]
pdf-canvas = "*"

一些更多的工作示例存在于[示例目录]中(https://github.com/kaj/rust-pdf/tree/master/examples)。

依赖项

~1MB
~18K SLoC