文檔首頁(yè)>>Aspose.PDF使用教程>>Aspose.Pdf使用教程:獲取PDF文件中的所有附件
Aspose.Pdf使用教程:獲取PDF文件中的所有附件
要從PDF文件中獲取所有附件,需要查看文檔對(duì)象的EmbeddedFiles集合。EmbeddedFiles集合包含所有的附件。這個(gè)集合的每個(gè)元素代表一個(gè)FileSpecification對(duì)象。 每個(gè)EmbeddedFiles集合的循環(huán)計(jì)數(shù)器迭代將會(huì)返回一個(gè)FileSpecification對(duì)象。一旦這個(gè)對(duì)象是可用的,您可以檢索附件的所有屬性或附件本身。
下面是獲取PDF文件中的所有附件的代碼片段
C#
//open document Document pdfDocument = new Document("input.pdf"); //get embedded files collection EmbeddedFileCollection embeddedFiles = pdfDocument.EmbeddedFiles; //get count of the embedded files Console.WriteLine("Total files : {0}", embeddedFiles.Count); //loop through the collection to get all the attachments foreach (FileSpecification fileSpecification in embeddedFiles) { Console.WriteLine("Name: {0}", fileSpecification.Name); Console.WriteLine("Description: {0}", fileSpecification.Description); Console.WriteLine("Mime Type: {0}", fileSpecification.MIMEType); //check if parameter object contains the parameters if (fileSpecification.Params != null) { Console.WriteLine("CheckSum: {0}", fileSpecification.Params.CheckSum); Console.WriteLine("Creation Date: {0}", fileSpecification.Params.CreationDate); Console.WriteLine("Modification Date: {0}", fileSpecification.Params.ModDate); Console.WriteLine("Size: {0}", fileSpecification.Params.Size); } //get the attachment and write to file or stream byte[] fileContent = new byte[fileSpecification.Contents.Length]; fileSpecification.Contents.Read(fileContent, 0, fileContent.Length); FileStream fileStream = new FileStream(fileSpecification.Name, FileMode.Create); fileStream.Write(fileContent, 0, fileContent.Length); fileStream.Close(); }VB.NET
'open document Dim pdfDocument As New Document("input.pdf") 'get embedded files collection Dim embeddedFiles As EmbeddedFileCollection = pdfDocument.EmbeddedFiles 'get count of the embedded files Console.WriteLine("Total files : {0}", embeddedFiles.Count) 'loop through the collection to get all the attachments For Each fileSpecification As FileSpecification In embeddedFiles Console.WriteLine("Name: {0}", fileSpecification.Name) Console.WriteLine("Description: {0}", fileSpecification.Description) Console.WriteLine("Mime Type: {0}", fileSpecification.MIMEType) 'check if parameter object contains the parameters If fileSpecification.Params IsNot Nothing Then Console.WriteLine("CheckSum: {0}", fileSpecification.Params.CheckSum) Console.WriteLine("Creation Date: {0}", fileSpecification.Params.CreationDate) Console.WriteLine("Modification Date: {0}", fileSpecification.Params.ModDate) Console.WriteLine("Size: {0}", fileSpecification.Params.Size) End If 'get the attachment and write to file or stream Dim fileContent(fileSpecification.Contents.Length - 1) As Byte fileSpecification.Contents.Read(fileContent, 0, fileContent.Length) Dim fileStream As New FileStream(fileSpecification.Name, FileMode.Create) fileStream.Write(fileContent, 0, fileContent.Length) fileStream.Close() Next fileSpecification