Repository navigation
Library API zh
kudryavskiy_rv edited this page Jul 5, 2026
·
1 revision
use office_print::config::{ConvertOptions, Format, OutputFormat};
// 文件 → PDF
let result = office_print::convert("report.docx").unwrap();
std::fs::write("report.pdf", result.as_pdf_bytes().unwrap()).unwrap();
// 带选项的文件
let options = ConvertOptions {
output_format: OutputFormat::Png,
..Default::default()
};
let result = office_print::convert_with_options("input.pptx", &options).unwrap();
// 字节 → PDF
let result = office_print::convert_bytes(&data, Format::Xlsx, &options).unwrap();
// IR → PDF 直接渲染
let pdf = office_print::render_document(&ir_document).unwrap();match &result.output {
OutputData::Pdf(bytes) => {
std::fs::write("out.pdf", bytes).unwrap();
}
OutputData::Raster { pages, format } => {
for (i, page) in pages.iter().enumerate() {
let ext = match format { OutputFormat::Png => "png", OutputFormat::Jpeg => "jpg", _ => "bin" };
std::fs::write(format!("page-{}.{}", i + 1, ext), page).unwrap();
}
}
}| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
output_format |
OutputFormat |
Pdf |
Pdf、Png、Jpeg
|
jpeg_quality |
u8 |
92 |
JPEG 质量 1–100 |
paper_size |
Option<PaperSize> |
None |
A4、Letter、Legal、Custom
|
landscape |
Option<bool> |
None |
横向 |
pdf_standard |
Option<PdfStandard> |
None |
A2b 用于 PDF/A |
pdf_ua |
bool |
false |
PDF/UA-1 |
tagged |
bool |
false |
带标签的 PDF |
font_paths |
Vec<PathBuf> |
[] |
额外字体目录 |
sheets |
Option<Vec<String>> |
None |
XLSX 工作表筛选 |
slide_range |
Option<SlideRange> |
None |
幻灯片范围 |
streaming |
bool |
false |
XLSX 流模式 |
streaming_chunk_size |
Option<usize> |
None |
块大小 |
match office_print::convert("input.docx") {
Ok(result) => { /* 使用结果 */ }
Err(ConvertError::UnsupportedEncryption) => eprintln!("文件已加密"),
Err(ConvertError::UnsupportedFormat(f)) => eprintln!("未知格式:{f}"),
Err(e) => eprintln!("转换失败:{e}"),
}📖 English Docs