Comment charger un document en Go

Comment charger un document en Go

Aspose.PDF FOSS pour Go charge un PDF à partir d’un chemin de fichier, d’un io.Reader, ou de l’une ou l’autre source protégée par un mot de passe, renvoyant toujours une valeur *Document sur laquelle travailler. La bibliothèque est un module Go installé avec go get.

Guide étape par étape

Étape 1: installer le package

Ajoutez le module à votre projet:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

Vérifiez que le module se résout:

import asposepdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"

Étape 2: Importer les classes requises

import (
	pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)

Étape 3: Charger un PDF à partir d’un chemin de fichier

pdf.Open charge un fichier PDF et renvoie un *Document ainsi qu’une erreur:

doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
	panic(err)
}
fmt.Println(doc.PageCount(), "pages")

Étape 4: Charger un PDF protégé par mot de passe

pdf.OpenWithPassword ouvre un fichier qui est chiffré avec un mot de passe utilisateur:

doc, err := pdf.OpenWithPassword("locked.pdf", "secret")
if err != nil {
	panic(err)
}
fmt.Println("opened:", doc.PageCount(), "pages")

Étape 5: Charger un PDF depuis un flux

pdf.OpenStream lit un PDF depuis n’importe quel io.Reader — une réponse réseau, un tampon en mémoire ou un fichier ouvert séparément. pdf.OpenStreamWithPassword est l’équivalent protégé par mot de passe pour les flux:

f, err := os.Open("input.pdf")
if err != nil {
	panic(err)
}
defer f.Close()

doc, err := pdf.OpenStream(f)
if err != nil {
	panic(err)
}
fmt.Println(doc.PageCount(), "pages")

// For an encrypted stream, open a separate reader and pass a password:
f2, _ := os.Open("locked.pdf")
defer f2.Close()
doc2, err := pdf.OpenStreamWithPassword(f2, "secret")
if err != nil {
	panic(err)
}
fmt.Println(doc2.PageCount(), "pages (encrypted)")

Étape 6: Inspecter le document chargé

Une fois chargé, Document.PageCount indique le nombre total de pages et Document.Page(n) récupère une page unique selon son indice basé sur 1:

doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
	panic(err)
}
fmt.Printf("Page count: %d\n", doc.PageCount())

page, err := doc.Page(1)
if err != nil {
	panic(err)
}
size, err := page.Size()
if err != nil {
	panic(err)
}
fmt.Printf("Page 1 size: %.0f x %.0f pt\n", size.Width, size.Height)

Problèmes courants et solutions

OpenWithPassword échoue toujours après que j’ai entré ce que je crois être le mot de passe correct

Fournir un mot de passe incorrect à OpenWithPassword entraîne une erreur non nulle. Les mots de passe sont sensibles à la casse — vérifiez le mot de passe exact de l’utilisateur défini sur le PDF source.

OpenStream renvoie une erreur sur un PDF chiffré

OpenStream ne peut pas ouvrir les PDF chiffrés. Utilisez OpenStreamWithPassword pour les flux protégés par mot de passe à la place.

Ai-je besoin OpenWithPassword pour un PDF qui s’avère ne pas être chiffré ?

Non — l’ouverture d’un fichier non chiffré via OpenWithPassword est autorisée et se comporte de la même façon qu’un appel Open simple, il est donc sûr d’utiliser OpenWithPassword lorsque vous n’êtes pas certain qu’un fichier soit chiffré.

Document.Page(n) renvoie une erreur après une opération réussie Open

Le numéro de page est hors limites. Page utilise un index basé sur 1 compris entre 1 et Document.PageCount(); appelez PageCount() d’abord pour valider la plage.


Foire aux questions

Quels formats de fichiers puis-je charger avec Open?

Open, OpenWithPassword, OpenStream et OpenStreamWithPassword n’acceptent que des entrées PDF.

Comment charger un PDF déjà en mémoire plutôt que sur le disque?

Enveloppez la tranche d’octets dans un bytes.Reader (qui satisfait io.Reader) et transmettez-le à pdf.OpenStream, ou à pdf.OpenStreamWithPassword si les octets représentent un PDF chiffré.

Comment charger un PDF protégé par mot de passe ?

Appelez pdf.OpenWithPassword(path, password) pour un chemin de fichier, ou pdf.OpenStreamWithPassword(r, password) pour un flux.

Comment vérifier combien de pages ont été chargées ?

Appelez Document.PageCount() sur le *Document renvoyé.

Voir aussi

 Français