Κοινά περιπτώσεις χρήσης για Aspose.PDF FOSS for Go
Aspose.PDF FOSS for Go is a pure-Go module for PDF document management. This article καλύπτει τις πιο συχνά απαιτούμενες λειτουργίες με τη χρήση των Document, Form, EncryptionOptions, Table,και OutlineItemCollection Εισαγωγή: Εγκαταστήστε με go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.
Βήμα προς βήμα οδηγός
Βήμα 1: Εγκατάσταση του πακέτου
Προσθέστε την εξάρτηση του module Go:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goΒήμα 2: Εισαγωγή του πακέτου
Χρησιμοποιήστε ένα alias για να διατηρήσετε τις αναφορές εισαγωγής σύντομες:
import (
"fmt"
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)Βήμα 3: Διαχωρίστε ένα PDF σε αρχεία ανά σελίδα
Document.Split Διαχωρίζουμε ένα πολυεπίπεδη έγγραφο σε ένα *Document ανά σελίδα.
doc, err := pdf.Open("report.pdf")
if err != nil {
panic(err)
}
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("report_page_%03d.pdf", i+1))
}
fmt.Printf("Split %d pages\n", len(pages))Βήμα 4: Συνδυάστε πολλά PDF σε ένα
Document.Append συγχωνεύει σελίδες από ένα δεύτερο έγγραφο στο χώρο πριν αποθηκεύσετε.
base, _ := pdf.Open("intro.pdf")
chapter1, _ := pdf.Open("chapter1.pdf")
chapter2, _ := pdf.Open("chapter2.pdf")
appendix, _ := pdf.Open("appendix.pdf")
base.Append(chapter1)
base.Append(chapter2)
base.Append(appendix)
base.Save("full_document.pdf")Βήμα 5: Εφαρμόστε κωδικό πρόσβασης κρυπτογράφηση
EncryptionOptions διαμορφώνει τον κωδικό πρόσβασης του χρήστη, τον ιδιοκτήτη, το αλγόριθμο και Περ-Εργασία Permissions Σε μία μόνο κλήση:
doc, _ := pdf.Open("contract.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "clientpass",
OwnerPassword: "adminpass",
Permissions: &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("contract_protected.pdf")Για να δημιουργήσετε ένα αντίγραφο κειμένου από έναν κωδικοποιημένο αρχείο:
doc, _ := pdf.OpenWithPassword("contract_protected.pdf", "clientpass")
doc.RemoveEncryption()
doc.Save("contract_decrypted.pdf")Βήμα 6: Συμπληρώστε ένα AcroForm
Αξιολογήστε το όνομα του πεδίου ή το πεδία στο στόχο (TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField).
doc, _ := pdf.Open("application_form.pdf")
name := doc.Form().Field("applicant_name").(*pdf.TextBoxField)
name.SetValue("Jane Doe")
agree := doc.Form().Field("terms_accepted").(*pdf.CheckboxField)
agree.SetChecked(true)
country := doc.Form().Field("country").(*pdf.ComboBoxField)
country.SetSelected(0)
doc.Save("application_filled.pdf")Βήμα 7: Δημιουργήστε μια διακόσμηση πίνακα
Προσθέστε A Table Με Row και Cell εισέρχονται σε μια σελίδα για τη γενιά τιμολογίου ή αναφοράς:
doc, _ := pdf.Open("invoice_template.pdf")
page, _ := doc.Page(1)
tbl := pdf.NewTable()
tbl.SetColumnWidths([]float64{200, 80, 100})
header := tbl.AddRow()
header.AddCell("Description")
header.AddCell("Qty")
header.AddCell("Amount")
row := tbl.AddRow()
row.AddCell("PDF Processing Service")
row.AddCell("1")
row.AddCell("$500.00")
page.AddTable(tbl, pdf.Rectangle{LLX: 72, LLY: 100, URX: 540, URY: 700})
doc.Save("invoice.pdf")Βήμα 8: Προσθέστε ένα δέντρο σημείου
OutlineItemCollection δημιουργεί βιβλιογραφίες με κεφάλαιο/συνέδριο και DestinationXYZ Στόχοι σελίδας:
doc, _ := pdf.Open("manual.pdf")
page1, _ := doc.Page(1)
page2, _ := doc.Page(2)
ch1 := pdf.NewOutlineItemCollection(doc)
ch1.SetTitle("Introduction")
ch1.SetBold(true)
ch1.SetDestination(pdf.NewDestinationXYZ(page1, 0, 792, 1.0))
doc.Outlines().Add(ch1)
ch2 := pdf.NewOutlineItemCollection(doc)
ch2.SetTitle("Configuration")
ch2.SetDestination(pdf.NewDestinationFit(page2))
doc.Outlines().Add(ch2)
doc.Save("manual_bookmarked.pdf")Κοινά προβλήματα και τακτοποιήσεις
pdf.Open Επιστρέφει ένα σφάλμα για τα έγκυρα αρχεία PDF Βεβαιωθείτε ότι το αρχείο είναι σωστό και ότι δεν ανοίγει το file σε άλλο. Στο Windows, το κλειδί αρχείων μπορεί να αποτρέψει την ανάγνωση.
Τύπος ισχυρισμού πανικός κατά την πρόσβαση σε πεδία φόρμας Χρησιμοποιήστε pdf.FieldType(f) ή ένα μετασχηματιστή τύπου για να ελέγξετε τον τύπο πεδίου πριν από Α. Παρουσιάζει A *pdf.TextBoxField Η δήλωση για το A CheckboxField Θα πανικοβληθεί.
go get «Δεν βρέθηκε το μοντέλο» Ασφάλεια GOPROXY Η προσέγγιση είναι διαθέσιμη σε ένα προξενικό (π.χ. GOPROXY=directκαι αυτό το Το δίκτυο σας μπορεί να φτάσει github.com.Σε ατμοσφαιρικά περιβάλλοντα, χρησιμοποιώντας GONOSUMCHECK ή τοπικό καθρέφτη.
Η αποτυχία μετά την αποτυχία OpenWithPassword Αν καλέσεις Save Μετά από OpenWithPassword Χωρίς κλήση RemoveEncryption, Η έκδοση είναι επανεκρυπτογραφημένη με το αρχικό κωδικό πρόσβασης.Αυτό είναι το αναμενόμενο Κλήση - Call RemoveEncryption Να δημιουργήσουμε ένα αντίγραφο του κειμένου.
Ο αριθμός σελίδων του κειμένου είναι λάθος Append μετατρέπουν τον παραλήπτη στο χώρο. βεβαιωθείτε ότι δεν καλείτε Append Ο ΣΕ Έγγραφο που έχει ήδη αποθηκευτεί. ανοίξτε ξανά το βασικό έγγραφο εάν χρειαστεί Να δημιουργήσουν πολλαπλές συνδυασμένες αποσπάσεις.
Συχνές ερωτήσεις
Μπορώ να επεξεργαστώ τα PDF χωρίς να γράφω σε δίσκο;?
Document.WriteTo Αποδέχεται ένα io.Writer, έτσι μπορείτε να γράψετε σε ένα buffer, το δίκτυο stream ή ανταπόκριση συγγραφέας χωρίς να δημιουργήσει ένα προσωρινό αρχείο.
Είναι ασφαλές να χρησιμοποιείτε το Aspose.PDF FOSS για Go ταυτόχρονα;?
Κάθε ένα *Document Η κούρσα δεν είναι ασφαλής. χρησιμοποιήστε ένα Document από το γοροτίνιο, ή προστατεύουν κοινές παραδείξεις με ένα mutex.
Πώς μπορώ να αναγνωρίσω τις τιμές πεδίου από μια φόρμα γεμάτη;?
Χρησιμοποιήστε Field.Value() σε οποιοδήποτε πεδίο ή σήμα τύπου για πρόσβαση σε ειδικά είδη αξεσουάρ Όπως και CheckboxField.Checked() ή ComboBoxField.SelectedIndex().
Μπορώ να δημιουργήσω ένα PDF από το scratch χωρίς υπάρχον πρότυπο;?
Ναι . pdf.NewDocument() Δημιουργεί ένα κενό έγγραφο. κάλεσε AddBlankPageFromFormat(pdf.PageFormatA4) για να προσθέσετε μια άδειη σελίδα, στη συνέχεια προσθήκη περιεχομένου (τέμβολα, σημειώσεις κλπ.) πριν από την αποθήκευση.
Ποια είναι η διαφορά μεταξύ Document.Save και Document.WriteTo?
Save(path string) Γράφει σε ένα αρχείο. WriteTo(w io.Writer) Γράφει σε οποιονδήποτε io.Writer — χρήσιμο για απαντήσεις HTTP, buffers ή ρεύματα.