보안

비밀번호로 보호된 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"),
)