类对象支持库。路径:支持库 → 扩展类库 → PDF类。
类型名写「PDF类」。声明时自动创建。
基于 PDFium 二次开发(推荐 bblanchon 无 V8 预编译,单架构约 7MB;勿用带 V8 的胖包)。
运行依赖
| 部分 | 说明 |
|---|---|
| 桥接代码 | 编进用户程序 |
pdfium.dll |
与 exe 同级,或 plugins/supportlib.pdf/bin/<arch>/ |
查找顺序:置库路径(若调用)→ 程序目录 pdfium.dll → plugins/supportlib.pdf/bin/<arch>/pdfium.dll。
预览请用 图片框:渲染为图片 → PNG/JPEG 字节集 → 图片框.图片(不要浏览器控件)。
快速开始
生成
PDF类 p
如果 (!p.新建()) {
输出(p.取错误())
返回()
}
整数 页 = p.加页()
p.画文本(页, 72, 750, "你好,Y++ PDF", 18, "#C41E3A")
p.画线(页, 72, 730, 520, 730, 1.5, "#C41E3A")
如果 (!p.保存(合并路径(取程序目录(), "out.pdf"))) {
输出(p.取错误())
}
p.关闭()
打开 / 渲染 / 抽文本
PDF类 p
如果 (!p.打开(合并路径(取程序目录(), "out.pdf"))) {
输出(p.取错误())
返回()
}
输出("页数=" + 到文本(p.取页数()))
输出("尺寸=" + 到文本(p.取页宽(1)) + "x" + 到文本(p.取页高(1)))
输出(p.取页文本(1, 200))
字节集 png = p.渲染为图片(1, 96)
图片预览.图片 = png
图片预览.置图片显示(1, 100)
p.关闭()
加密 PDF:打开(路径, "密码")。密码错或缺失时打开失败,看 取错误()。
打开后继续编辑
打开后可加页、画文本/线/矩形、嵌图、删页/移页、合并,再保存:
PDF类 p
p.打开("a.pdf")
p.画文本(1, 72, 100, "批注", 12, "#C41E3A")
p.加页()
p.保存("a_edited.pdf")
p.关闭()
说明:是在页面上叠加内容或增删页,不是 Word 式改原有段落文字。当前引擎不能写出加密 PDF(可读加密文档)。
合并
PDF类 p
p.新建()
p.加页()
p.合并文件("b.pdf", "", "1-2", 0) ' 页范围空=全部;插入页号 0=末尾
p.保存("merged.pdf")
方法摘要
页号对用户均为 从 1 起。颜色格式:#RRGGBB 或 #AARRGGBB;空=黑(或背景默认白)。
| 方法 | 说明 |
|---|---|
新建 |
空白可写文档 |
打开(路径, [密码]) |
打开已有 PDF;可继续编辑 |
关闭 / 是否已打开 / 重置 / 取错误 / 取页数 |
|
加页([宽点=595],[高点=842],[插入页号=0]) |
默认 A4;插入页号 0=末尾,≥1=插到该页前。返回页号,失败 -1 |
删页(页号) / 移页(源,目标) |
|
取页宽 / 取页高 |
单位点 |
画文本(页号, X, Y, 文本, [字号=12],[颜色],[字体路径]) |
原点左下(点)。字体路径空=系统中文。部分符号会归一化,减少 □ |
画线(页号, X1,Y1,X2,Y2, [线宽=1],[颜色]) |
|
画矩形(页号, X,Y,宽,高, [填充=0],[线宽=1],[填充色],[描边色]) |
填充非 0 时填充 |
嵌图片(页号, 路径, X, Y, 宽, 高, [保持比例=0],[不透明度=100]) |
WIC 读 PNG/JPEG 等 |
渲染为图片(页号, [DPI=96],[格式=0],[质量=90],[背景色]) |
格式 0=PNG、1=JPEG |
取页文本(页号, [最大字符数=0]) |
0=不限制 |
合并文件(路径, [密码],[页范围],[插入页号=0]) |
页范围如 "1,3,5-7" |
保存(路径, [标志=0]) |
标志 1=尽量增量 |
示例
仓库:examples/PDF演示(生成多页演示、图片框翻页、删当前页)。