Go API pour la création et le traitement de documents PDF
Bibliothèque Go Open Source qui donne aux développeurs la possibilité de créer, modifier, manipuler et convertir des documents PDF.
L'unipdf est une bibliothèque Open Source Go qui peut facilement gérer toutes vos requêtes liées à la création et à la manipulation de documents PDF. La bibliothèque est disponible sous double licence où la licence AGPL peut être utilisée pour le développement de logiciels open source. La bibliothèque fournit une prise en charge complète pour la génération de documents PDF avec un niveau élevé de texte, de dessins et d'images.
La bibliothèque open source unipdf prend en charge plusieurs fonctionnalités communes et avancées pour le traitement et l'optimisation des documents PDF, telles que la création de rapports PDF, la génération de rapports PDF, la création de factures, la création et la gestion de paragraphes, la fusion et la division de pages PDF, la rotation de pages, l'extraction de texte à partir de Fichiers PDF, exportation de PDF vers CSV, conversion d'images en PDF, compression et optimisation de PDF, filigrane de fichiers PDF, prise en charge des polices composites (caractères Unicode), signatures numériques et bien d'autres.
.
Premiers pas avec unipdf
Pour installer unipdf sur votre système, veuillez exécuter la commande suivante.
Installer gofpdf via GitHub
go get github.com/unidoc/unipdf/v3
Pour la dernière mise à jour, veuillez visiter la page des versions du produit.
Générer un rapport PDF via Go API
L'API unipdf open source offre aux développeurs la possibilité de créer des rapports PDF dans leurs propres applications Go. La bibliothèque permet aux développeurs de travailler efficacement avec des documents PDF et prend en charge l'ajout d'images, de tableaux, d'en-têtes, de pieds de page et bien plus encore dans vos rapports PDF en toute simplicité. Vous pouvez également placer du contenu dynamique dans vos rapports PDF avec seulement quelques lignes de code.
Convertir un fichier PDF en CSV via Go API
La bibliothèque unipdf permet aux développeurs de logiciels de convertir des fichiers PDF en formats de fichier CSV dans leurs propres applications Go. Les convertisseurs PDF vers Excel sont un outil très utile pour les entreprises et les instituts de recherche. Il est très facile à utiliser et offre la possibilité d'extraire des TextMarks à partir de PDF et de les regrouper en mots, lignes et colonnes pour l'extraction de données CSV.
Insérer des images dans un PDF
L'API unipdf open source donne aux programmeurs de logiciels la possibilité d'ajouter des images de leur choix dans des documents PDF à l'intérieur des applications GO. Il facilite le travail des développeurs lors du placement d'images dans le document PDF, sans avoir à se soucier des coordonnées. Il vous suffit de fournir le chemin et la taille de l'image sans vous soucier des coordonnées. La bibliothèque prend en charge les formats d'image populaires tels que JPEG, PNG, GIF, TIFF, etc.
// 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
}
Ajouter un mot de passe aux documents PDF
L'API unipdf gratuite donne aux développeurs le pouvoir de protéger leurs documents PDF en leur appliquant un mot de passe à l'aide des commandes Go. Vous pouvez empêcher les utilisateurs d'ouvrir et de lire des documents PDF. Vous pouvez également définir le mot de passe du propriétaire pour accorder un accès complet au fichier PDF. De plus, vous pouvez également empêcher les utilisateurs d'apporter des modifications à certaines parties des documents 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
}