mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-02 22:17:06 +08:00
Merge pull request #355 from adrg/appender-acroforms
Fix appender AcroForm loading
This commit is contained in:
commit
793e64a99d
@ -129,6 +129,12 @@ func NewPdfAppender(reader *PdfReader) (*PdfAppender, error) {
|
|||||||
for _, p := range a.roReader.PageList {
|
for _, p := range a.roReader.PageList {
|
||||||
a.pages = append(a.pages, p)
|
a.pages = append(a.pages, p)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Load interactive forms and fields.
|
||||||
|
a.roReader.AcroForm, err = a.roReader.loadForms()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
a.acroForm = a.roReader.AcroForm
|
a.acroForm = a.roReader.AcroForm
|
||||||
|
|
||||||
return a, nil
|
return a, nil
|
||||||
@ -412,9 +418,12 @@ func (a *PdfAppender) Sign(pageNum int, field *PdfFieldSignature) error {
|
|||||||
page.Annotations = append(page.Annotations, field.PdfAnnotationWidget.PdfAnnotation)
|
page.Annotations = append(page.Annotations, field.PdfAnnotationWidget.PdfAnnotation)
|
||||||
|
|
||||||
// Add signature field to the form.
|
// Add signature field to the form.
|
||||||
acroForm := a.Reader.AcroForm
|
acroForm := a.acroForm
|
||||||
if acroForm == nil {
|
if acroForm == nil {
|
||||||
acroForm = NewPdfAcroForm()
|
acroForm = a.Reader.AcroForm
|
||||||
|
if acroForm == nil {
|
||||||
|
acroForm = NewPdfAcroForm()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
acroForm.SigFlags = core.MakeInteger(3)
|
acroForm.SigFlags = core.MakeInteger(3)
|
||||||
|
|
||||||
@ -526,7 +535,7 @@ func (a *PdfAppender) Write(w io.Writer) error {
|
|||||||
a.addNewObjects(obj)
|
a.addNewObjects(obj)
|
||||||
kids.Append(obj)
|
kids.Append(obj)
|
||||||
}
|
}
|
||||||
if a.acroForm != nil && a.acroForm != a.roReader.AcroForm {
|
if a.acroForm != nil {
|
||||||
writer.SetForms(a.acroForm)
|
writer.SetForms(a.acroForm)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user