Extraire et Sauvegarder une Pièce Jointe
Contents
[
Hide
]
Obtenir Tous les Pièces Jointes
Avec Aspose.PDF, il est possible d’obtenir toutes les pièces jointes d’un document PDF. Cela est utile soit lorsque vous souhaitez enregistrer les documents séparément du PDF, soit si vous avez besoin de retirer les pièces jointes d’un PDF.
Pour obtenir toutes les pièces jointes d’un fichier PDF :
- Parcourir la collection EmbeddedFiles de l’objet Document. La collection EmbeddedFiles contient toutes les pièces jointes. Chaque élément de cette collection représente un objet FileSpecification. Chaque itération de la boucle foreach à travers la collection EmbeddedFiles retourne un objet FileSpecification. Les extraits de code suivants montrent comment obtenir toutes les pièces jointes d’un document PDF.
L’extrait de code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
// Pour des exemples complets et des fichiers de données, veuillez aller sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Attachments();
// Ouvrir le document
Document pdfDocument = new Document(dataDir + "GetAlltheAttachments.pdf");
// Obtenir la collection des fichiers intégrés
EmbeddedFileCollection embeddedFiles = pdfDocument.EmbeddedFiles;
// Obtenir le nombre de fichiers intégrés
Console.WriteLine("Nombre total de fichiers : {0}", embeddedFiles.Count);
int count = 1;
// Parcourir la collection pour obtenir toutes les pièces jointes
foreach (FileSpecification fileSpecification in embeddedFiles)
{
Console.WriteLine("Nom : {0}", fileSpecification.Name);
Console.WriteLine("Description : {0}",
fileSpecification.Description);
Console.WriteLine("Type MIME : {0}", fileSpecification.MIMEType);
// Vérifier si l'objet paramètre contient les paramètres
if (fileSpecification.Params != null)
{
Console.WriteLine("Somme de contrôle : {0}",
fileSpecification.Params.CheckSum);
Console.WriteLine("Date de création : {0}",
fileSpecification.Params.CreationDate);
Console.WriteLine("Date de modification : {0}",
fileSpecification.Params.ModDate);
Console.WriteLine("Taille : {0}", fileSpecification.Params.Size);
}
// Obtenir la pièce jointe et écrire dans un fichier ou un flux
byte[] fileContent = new byte[fileSpecification.Contents.Length];
fileSpecification.Contents.Read(fileContent, 0,
fileContent.Length);
FileStream fileStream = new FileStream(dataDir + count + "_out" + ".txt",
FileMode.Create);
fileStream.Write(fileContent, 0, fileContent.Length);
fileStream.Close();
count+=1;
}
Obtenir une pièce jointe individuelle
Pour obtenir une pièce jointe individuelle, nous pouvons spécifier l’index de la pièce jointe dans l’objet EmbeddedFiles
d’une instance de Document. Veuillez essayer d’utiliser le morceau de code suivant.
// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Attachments();
// Ouvrir le document
Document pdfDocument = new Document(dataDir + "GetIndividualAttachment.pdf");
// Obtenir un fichier embarqué particulier
FileSpecification fileSpecification = pdfDocument.EmbeddedFiles[1];
// Obtenir les propriétés du fichier
Console.WriteLine("Nom : {0}", fileSpecification.Name);
Console.WriteLine("Description : {0}", fileSpecification.Description);
Console.WriteLine("Type MIME : {0}", fileSpecification.MIMEType);
// Vérifier si l'objet paramètre contient les paramètres
if (fileSpecification.Params != null)
{
Console.WriteLine("Somme de contrôle : {0}",
fileSpecification.Params.CheckSum);
Console.WriteLine("Date de création : {0}",
fileSpecification.Params.CreationDate);
Console.WriteLine("Date de modification : {0}",
fileSpecification.Params.ModDate);
Console.WriteLine("Taille : {0}", fileSpecification.Params.Size);
}
// Obtenir la pièce jointe et écrire dans un fichier ou un flux
byte[] fileContent = new byte[fileSpecification.Contents.Length];
fileSpecification.Contents.Read(fileContent, 0, fileContent.Length);
FileStream fileStream = new FileStream(dataDir + "test_out" + ".txt", FileMode.Create);
fileStream.Write(fileContent, 0, fileContent.Length);
fileStream.Close();