Ekstrak dan Simpan Lampiran
Dapatkan Semua Lampiran
Dengan Aspose.PDF, dimungkinkan untuk mendapatkan semua lampiran dari dokumen PDF. Ini berguna baik ketika Anda ingin menyimpan dokumen secara terpisah dari PDF, atau jika Anda perlu menghapus lampiran dari PDF.
Untuk mendapatkan semua lampiran dari file PDF:
Loop melalui koleksi EmbeddedFiles objek Document . Koleksi EmbeddedFiles berisi semua lampiran. Setiap elemen dari koleksi ini mewakili objek FileSpecification . Setiap iterasi dari loop foreach melalui koleksi EmbeddedFiles mengembalikan objek FileSpecification .
Setelah objek tersedia, ambil baik semua properti file yang terlampir atau file itu sendiri.
Potongan kode berikut menunjukkan cara mendapatkan semua lampiran dari dokumen PDF.
Potongan kode berikut juga bekerja dengan pustaka Aspose.PDF.Drawing .
.NET Core 3.1
Copy
private static void GetAllAttachments ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
using ( var document = new Aspose . Pdf . Document ( dataDir + "GetAlltheAttachments.pdf" ))
{
Aspose . Pdf . EmbeddedFileCollection embeddedFiles = document . EmbeddedFiles ;
Console . WriteLine ( "Total files : {0}" , embeddedFiles . Count );
int count = 1 ;
foreach ( Aspose . Pdf . FileSpecification fileSpecification in embeddedFiles )
{
Console . WriteLine ( "Name: {0}" , fileSpecification . Name );
Console . WriteLine ( "Description: {0}" ,
fileSpecification . Description );
Console . WriteLine ( "Mime Type: {0}" , fileSpecification . MIMEType );
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 );
}
var fileContent = new byte [ fileSpecification . Contents . Length ];
fileSpecification . Contents . Read ( fileContent , 0 , fileContent . Length );
using ( var fileStream = new FileStream ( dataDir + count + "_out" + ".txt" , FileMode . Create ))
{
fileStream . Write ( fileContent , 0 , fileContent . Length );
}
count += 1 ;
}
}
}
.NET 8
Copy
private static void GetAllAttachments ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
using var document = new Aspose . Pdf . Document ( dataDir + "GetAlltheAttachments.pdf" );
Aspose . Pdf . EmbeddedFileCollection embeddedFiles = document . EmbeddedFiles ;
Console . WriteLine ( "Total files : {0}" , embeddedFiles . Count );
int count = 1 ;
foreach ( Aspose . Pdf . FileSpecification fileSpecification in embeddedFiles )
{
Console . WriteLine ( "Name: {0}" , fileSpecification . Name );
Console . WriteLine ( "Description: {0}" ,
fileSpecification . Description );
Console . WriteLine ( "Mime Type: {0}" , fileSpecification . MIMEType );
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 );
}
var fileContent = new byte [ fileSpecification . Contents . Length ];
fileSpecification . Contents . Read ( fileContent , 0 , fileContent . Length );
using var fileStream = new FileStream ( dataDir + count + "_out" + ".txt" , FileMode . Create );
fileStream . Write ( fileContent , 0 , fileContent . Length );
count += 1 ;
}
}
Dapatkan Lampiran Individu
Untuk mendapatkan lampiran individu, kita dapat menentukan indeks lampiran dalam objek EmbeddedFiles
dari instance Dokumen. Silakan coba menggunakan potongan kode berikut.
.NET Core 3.1
Copy
private static void GetIndividualAttachment ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
using ( var document = new Aspose . Pdf . Document ( dataDir + "GetIndividualAttachment.pdf" ))
{
Aspose . Pdf . FileSpecification fileSpecification = document . EmbeddedFiles [ 1 ];
Console . WriteLine ( "Name: {0}" , fileSpecification . Name );
Console . WriteLine ( "Description: {0}" , fileSpecification . Description );
Console . WriteLine ( "Mime Type: {0}" , fileSpecification . MIMEType );
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 );
}
var fileContent = new byte [ fileSpecification . Contents . Length ];
fileSpecification . Contents . Read ( fileContent , 0 , fileContent . Length );
using ( var fileStream = new FileStream ( dataDir + "test_out" + ".txt" , FileMode . Create ))
{
fileStream . Write ( fileContent , 0 , fileContent . Length );
}
}
}
.NET 8
Copy
private static void GetIndividualAttachment ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
using var document = new Aspose . Pdf . Document ( dataDir + "GetIndividualAttachment.pdf" );
Aspose . Pdf . FileSpecification fileSpecification = document . EmbeddedFiles [ 1 ];
Console . WriteLine ( "Name: {0}" , fileSpecification . Name );
Console . WriteLine ( "Description: {0}" , fileSpecification . Description );
Console . WriteLine ( "Mime Type: {0}" , fileSpecification . MIMEType );
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 );
}
var fileContent = new byte [ fileSpecification . Contents . Length ];
fileSpecification . Contents . Read ( fileContent , 0 , fileContent . Length );
using var fileStream = new FileStream ( dataDir + "test_out" + ".txt" , FileMode . Create );
fileStream . Write ( fileContent , 0 , fileContent . Length );
}
Dapatkan Lampiran yang terdapat dalam objek FileAttachmentAnnotation
Selain koleksi EmbeddedFiles dari objek Document, Lampiran juga dapat terdapat dalam objek FileAttachmentAnnotation. Di bawah ini adalah kode untuk melihat jumlah dan detail dari Lampiran tersebut.