扁平化

基本扁平化

打开已填写的表单 PDF 并将所有字段扁平化为静态内容。

doc, _ := gpdf.Open(filledFormPDF)

if err := doc.FlattenForms(); err != nil {
    log.Fatal(err)
}

result, _ := doc.Save()

扁平化 + 水印

扁平化表单字段并添加 "FINAL" 水印。

doc, _ := gpdf.Open(filledFormPDF)

// 扁平化表单
doc.FlattenForms()

// 添加水印
doc.EachPage(func(_ int, p *template.PageBuilder) {
    p.Absolute(document.Mm(50), document.Mm(140), func(c *template.ColBuilder) {
        c.Text("FINAL",
            template.FontSize(72),
            template.TextColor(pdf.Gray(0.9)),
        )
    })
})

result, _ := doc.Save()

扁平化 + 页码

扁平化表单字段并在每页添加页码。

doc, _ := gpdf.Open(filledFormPDF)

// 扁平化表单
doc.FlattenForms()

// 添加页码
count, _ := doc.PageCount()
doc.EachPage(func(i int, p *template.PageBuilder) {
    p.Absolute(document.Mm(170), document.Mm(285), func(c *template.ColBuilder) {
        c.Text(fmt.Sprintf("%d / %d", i+1, count),
            template.FontSize(10),
            template.AlignRight(),
        )
    }, template.AbsoluteWidth(document.Mm(20)))
})

result, _ := doc.Save()

安全扁平化(无表单)

FlattenForms() 可在任何 PDF 上安全调用——如果没有表单字段则不执行任何操作。

// 适用于任何 PDF,无论是否包含表单
doc, _ := gpdf.Open(anyPDF)
doc.FlattenForms() // 无 AcroForm 时不执行任何操作
result, _ := doc.Save()