Go API για Δημιουργία και Επεξεργασία εγγράφου PDF
Open Source Go Library που δίνει στους προγραμματιστές τη δυνατότητα να δημιουργούν, να επεξεργάζονται, να χειρίζονται και να μετατρέπουν έγγραφα PDF.
Το unipdf είναι μια βιβλιοθήκη ανοιχτού κώδικα Go που μπορεί εύκολα να χειριστεί όλα τα ερωτήματά σας που σχετίζονται με τη δημιουργία και τη διαχείριση εγγράφων PDF. Η βιβλιοθήκη είναι διαθέσιμη με διπλή άδεια όπου η άδεια AGPL μπορεί να χρησιμοποιηθεί για ανάπτυξη λογισμικού ανοιχτού κώδικα. Η βιβλιοθήκη παρέχει πλήρη υποστήριξη για τη δημιουργία εγγράφων PDF με υψηλό επίπεδο κειμένου, σχεδίων και εικόνων.
Η ανοιχτού κώδικα βιβλιοθήκη unipdf υποστηρίζει πολλές κοινές και προηγμένες λειτουργίες για την επεξεργασία και τη βελτιστοποίηση εγγράφων PDF, όπως δημιουργία αναφορών PDF, δημιουργία αναφορών PDF, δημιουργία τιμολογίων, δημιουργία και χειρισμός παραγράφων, συγχώνευση και διαίρεση σελίδων PDF, περιστροφή σελίδων, εξαγωγή κειμένου από Αρχεία PDF, εξαγωγή PDF σε CSV, μετατροπή εικόνων σε PDF, συμπίεση και βελτιστοποίηση PDF, υδατογράφημα αρχείων PDF, υποστήριξη σύνθετων γραμματοσειρών (χαρακτήρες Unicode), ψηφιακές υπογραφές και πολλά άλλα.
.
Ξεκινώντας με το unipdf
Για να εγκαταστήσετε το unipdf στο σύστημά σας, εκτελέστε την ακόλουθη εντολή.
Εγκαταστήστε το gofpdf μέσω GitHub
go get github.com/unidoc/unipdf/v3
Για την πιο πρόσφατη ενημέρωση, επισκεφτείτε τη σελίδα εκδόσεων του προϊόντος.
Δημιουργία αναφοράς PDF μέσω Go API
Το ανοιχτού κώδικα unipdf API παρέχει στους προγραμματιστές τη δυνατότητα να δημιουργούν αναφορές PDF μέσα στις δικές τους εφαρμογές Go. Η βιβλιοθήκη επιτρέπει στους προγραμματιστές να εργάζονται αποτελεσματικά με έγγραφα PDF και έχει συμπεριλάβει υποστήριξη για την εύκολη προσθήκη εικόνων, πινάκων, κεφαλίδων, υποσέλιδων και πολλών άλλων στις αναφορές PDF σας. Μπορείτε επίσης να τοποθετήσετε δυναμικό περιεχόμενο στις αναφορές PDF σας με μερικές μόνο γραμμές κώδικα.
Μετατροπή αρχείου PDF σε CSV μέσω Go API
Η βιβλιοθήκη unipdf επιτρέπει στους προγραμματιστές λογισμικού να μετατρέπουν αρχεία PDF σε μορφές αρχείων CSV μέσα στις δικές τους εφαρμογές Go. Οι μετατροπείς PDF σε Excel είναι ένα πολύ χρήσιμο εργαλείο για επιχειρήσεις και ερευνητικά ιδρύματα. Είναι πολύ εύκολο στη χρήση και παρέχει τη δυνατότητα εξαγωγής TextMarks από PDF και ομαδοποίησης τους σε λέξεις, σειρές και στήλες για εξαγωγή δεδομένων CSV.
Εισαγάγετε εικόνες σε PDF
Το ανοιχτού κώδικα unipdf API δίνει στους προγραμματιστές λογισμικού τη δυνατότητα να προσθέτουν εικόνες της επιλογής τους σε έγγραφα PDF εντός των εφαρμογών GO. Διευκολύνει τις εργασίες του προγραμματιστή κατά την τοποθέτηση εικόνων στο έγγραφο PDF, χωρίς να χρειάζεται να ανησυχείτε για τις συντεταγμένες. Απλά πρέπει να δώσετε τη διαδρομή και το μέγεθος της εικόνας χωρίς να ανησυχείτε για τις συντεταγμένες. Η βιβλιοθήκη περιλαμβάνει υποστήριξη για δημοφιλείς μορφές εικόνας όπως JPEG, PNG, GIF, TIFF και άλλα.
// Images to PDF.
func imagesToPdf(inputPaths []string, outputPath string) error {
c := creator.New()
for _, imgPath := range inputPaths {
common.Log.Debug("Image: %s", imgPath)
img, err := c.NewImageFromFile(imgPath)
if err != nil {
common.Log.Debug("Error loading image: %v", err)
return err
}
img.ScaleToWidth(612.0)
// Use page width of 612 points, and calculate the height proportionally based on the image.
// Standard PPI is 72 points per inch, thus a width of 8.5"
height := 612.0 * img.Height() / img.Width()
c.SetPageSize(creator.PageSize{612, height})
c.NewPage()
img.SetPos(0, 0)
_ = c.Draw(img)
}
err := c.WriteToFile(outputPath)
return err
}
Προσθήκη κωδικού πρόσβασης σε έγγραφα PDF
Το δωρεάν unipdf API δίνει στους προγραμματιστές τη δύναμη να προστατεύουν τα έγγραφα PDF τους εφαρμόζοντας έναν κωδικό πρόσβασης σε αυτά χρησιμοποιώντας εντολές Go. Μπορείτε να περιορίσετε τους χρήστες από το άνοιγμα και την ανάγνωση εγγράφων PDF. Μπορείτε επίσης να ορίσετε τον κωδικό πρόσβασης κατόχου για να παραχωρήσετε πλήρη πρόσβαση στο αρχείο PDF. Επιπλέον, μπορείτε επίσης να περιορίσετε τους χρήστες από την πραγματοποίηση οποιουδήποτε είδους αλλαγών σε ορισμένα μέρη των εγγράφων PDF.
func protectPdf(inputPath string, outputPath string, userPassword, ownerPassword string) error {
permissions := security.PermPrinting | // Allow printing with low quality
security.PermFullPrintQuality |
security.PermModify | // Allow modifications.
security.PermAnnotate | // Allow annotations.
security.PermFillForms |
security.PermRotateInsert | // Allow modifying page order, rotating pages etc.
security.PermExtractGraphics | // Allow extracting graphics.
security.PermDisabilityExtract // Allow extracting graphics (accessibility)
encryptOptions := &model.EncryptOptions{
Permissions: permissions,
}
f, err := os.Open(inputPath)
if err != nil {
return err
}
defer f.Close()
pdfReader, err := model.NewPdfReader(f)
if err != nil {
return err
}
isEncrypted, err := pdfReader.IsEncrypted()
if err != nil {
return err
}
if isEncrypted {
return fmt.Errorf("The PDF is already locked (need to unlock first)")
}
// Generate a PdfWriter instance from existing PdfReader.
pdfWriter, err := pdfReader.ToWriter(nil)
if err != nil {
return err
}
// Encrypt document before writing to file.
err = pdfWriter.Encrypt([]byte(userPassword), []byte(ownerPassword), encryptOptions)
if err != nil {
return err
}
// Write to file.
err = pdfWriter.WriteToFile(outputPath)
return err
}