Guides
创建文本与图片
ComPDF Flutter SDK 提供了便捷的 API 来创建文本和图片内容。
创建文本
此方法在指定页面插入一个新的文本区域。它在页面坐标系统内创建一个新的文本框,并将给定的文本内容写入其中。坐标原点 (0, 0) 位于页面的左下角。
参数说明:
pageIndex:目标页面的索引,将在该页面插入文本,从 0 开始。content:要插入的文本内容。offset:文本区域左下角在 PDF 页面坐标系中的位置(单位:点)。maxWidth:文本区域的最大宽度。文本将在超过此宽度时自动换行。如果为null,则宽度不受限制。attr:文本属性,如字体大小、颜色、对齐方式等。默认使用标准的CPDFEditorTextAttr配置。
示例:
dart
bool result = await document.createNewTextArea(
pageIndex: 0,
content: 'ComPDF 插入文本 这是测试创建文本区域...',
offset: const Offset(50, 800),
maxWidth: 300,
attr: const CPDFEditorTextAttr(
fontSize: 18,
fontColor: Colors.red,
alignment: CPDFAlignment.left,
),
);注意:目前2.6.0版本暂时仅支持在Android平台中使用,会在后续版本支持iOS平台。
创建图片
此方法在指定页面插入一个新的图片区域。它在页面坐标系统内创建一个新的图片框。坐标原点 (0, 0) 位于页面的左下角。
参数说明:
pageIndex:目标页面的索引,将在该页面插入图片,从 0 开始。imageData:要插入的图片数据。支持多种格式:- 文件路径:
CPDFImageData.fromPath('/path/to/image.png') - Base64:
CPDFImageData.fromBase64('iVBORw0KGgo...') - 资源文件:
CPDFImageData.fromAsset('assets/images/logo.png') - Uri(Android):
CPDFImageData.fromUri('content://...')
- 文件路径:
offset:图片区域左下角在 PDF 页面坐标系中的位置(单位:点)。width:图片区域的宽度。高度会根据图片的宽高比自动计算。如果为null,则使用图片的原始宽度。
示例:
dart
// 从文件路径创建
bool result1 = await document.createNewImageArea(
pageIndex: 0,
imageData: CPDFImageData.fromPath('/path/to/image.png'),
offset: const Offset(50, 700),
width: 200,
);
// 从 Base64 创建
bool result2 = await document.createNewImageArea(
pageIndex: 1,
imageData: CPDFImageData.fromBase64('iVBORw0KGgoAAAANSUhEUgAAAAUA...'),
offset: const Offset(100, 600),
width: 150,
);
// 从资源文件创建
bool result3 = await document.createNewImageArea(
pageIndex: 2,
imageData: CPDFImageData.fromAsset('logo.png'),
offset: const Offset(200, 500),
width: null, // 使用原始宽度
);注意:目前 2.6.0 版本仅支持 Android 平台,后续版本将支持 iOS 平台。
编辑模式内容插入
在内容编辑模式下,当点击 PDF 页面区域时,会自动创建文本输入框或弹出图片选择器,以便快速插入内容。在 2.6.0 版本中,您可以通过以下配置选项关闭此功能:
dart
CPDFConfiguration(
readerViewConfig: CPDFReaderViewConfig(
enableCreateImagePickerDialog: false,
enableCreateEditTextInput: false
)
);