PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
ComPDF SDK for Flutter 支持直接创建新的 PDF 文档,无需预先打开本地 PDF 文件。该功能适用于生成报告、票据、表单或其他由应用动态创建的 PDF 文件。
创建文档后,你可以插入页面、添加注释或表单域,并将文档保存到指定位置。
请先完成 SDK 初始化。有关初始化方式,请参阅应用许可证密钥。
调用 CPDFDocument.createDocument() 创建文档实例。新创建的文档不包含页面,因此请先插入页面,再保存为 PDF 文件。
import 'dart:io';
import 'package:compdfkit_flutter/compdfkit.dart';
import 'package:compdfkit_flutter/configuration/cpdf_configuration.dart';
import 'package:compdfkit_flutter/document/cpdf_document.dart';
import 'package:compdfkit_flutter/page/cpdf_page.dart';
Future<String> createPdfDocument() async {
CPDFDocument? document;
try {
document = await CPDFDocument.createDocument();
final inserted = await document.insertBlankPage(
pageIndex: 0,
pageSize: CPDFPageSize.a4,
);
if (!inserted) {
throw StateError('Failed to insert a blank page.');
}
final directory = await ComPDFKit.getTemporaryDirectory();
final savePath =
'${directory.path}${Platform.pathSeparator}new_document.pdf';
final saved = await document.saveAs(savePath);
if (!saved) {
throw StateError('Failed to save the PDF document.');
}
return savePath;
} finally {
await document?.close();
}
}createPdfDocument() 返回生成的 PDF 文件路径。保存成功后,你可以使用该路径在阅读器中打开文档:
final documentPath = await createPdfDocument();
ComPDFKit.openDocument(
documentPath,
configuration: CPDFConfiguration(),
);CPDFDocument.createDocument() 返回的文档实例可以使用 CPDFDocument 提供的其他接口。例如,你可以:
insertBlankPage() 或 insertPageWithImagePath() 添加页面。addAnnotations() 添加注释。addWidgets() 添加表单域。saveAs() 保存生成的 PDF 文件。上述示例将文件保存到应用临时目录,临时文件可能会被系统清理。如需长期保留文件,请将 saveAs() 的保存路径替换为应用的持久化目录或用户选择的位置。