보안
비밀번호로 보호된 PDF
열기 위해 비밀번호가 필요한 PDF를 생성합니다.
doc := gpdf.NewDocument(
gpdf.WithPageSize(gpdf.A4),
gpdf.WithMargins(document.UniformEdges(document.Mm(20))),
gpdf.WithEncryption(
encrypt.WithOwnerPassword("owner-pass"),
encrypt.WithUserPassword("user-pass"),
),
)
page := doc.AddPage()
page.AutoRow(func(r *template.RowBuilder) {
r.Col(12, func(c *template.ColBuilder) {
c.Text("This document is password protected", template.FontSize(18))
})
})
data, _ := doc.Generate()
제한된 권한
인쇄와 복사만 허용하고 편집은 허용하지 않습니다.
doc := gpdf.NewDocument(
gpdf.WithPageSize(gpdf.A4),
gpdf.WithEncryption(
encrypt.WithOwnerPassword("owner"),
encrypt.WithUserPassword("user"),
encrypt.WithPermissions(encrypt.PermPrint|encrypt.PermCopy|encrypt.PermPrintHighRes),
),
)
PDF/A 아카이브 문서
장기 보관용 PDF/A-2b 준수 문서를 생성합니다.
doc := gpdf.NewDocument(
gpdf.WithPageSize(gpdf.A4),
gpdf.WithMargins(document.UniformEdges(document.Mm(20))),
gpdf.WithPDFA(
pdfa.WithLevel(pdfa.LevelA2b),
pdfa.WithMetadata(pdfa.MetadataInfo{
Title: "Archived Report",
Author: "ACME Corp",
}),
),
)
page := doc.AddPage()
page.AutoRow(func(r *template.RowBuilder) {
r.Col(12, func(c *template.ColBuilder) {
c.Text("This document conforms to PDF/A-2b", template.FontSize(18))
})
})
data, _ := doc.Generate()
디지털 서명된 PDF
PDF에 디지털 서명을 추가합니다.
// 1. Generate the PDF
doc := gpdf.NewDocument(
gpdf.WithPageSize(gpdf.A4),
gpdf.WithMargins(document.UniformEdges(document.Mm(20))),
)
page := doc.AddPage()
page.AutoRow(func(r *template.RowBuilder) {
r.Col(12, func(c *template.ColBuilder) {
c.Text("Signed Document", template.FontSize(24), template.Bold())
})
})
data, _ := doc.Generate()
// 2. Sign it
signed, err := gpdf.SignDocument(data, signature.Signer{
Certificate: cert,
PrivateKey: key,
},
signature.WithReason("Document approved"),
signature.WithLocation("Tokyo"),
)