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 在 图像
每月711次下载
在 4 crate中使用
150KB
1.5K SLoC
pdf-canvas
一个用于生成PDF文件的纯Rust库。目前支持简单的矢量图形和14种内置字体中的文本设置。
要使用此库,请将其添加到您的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