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
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetAllAttachments ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
// Open PDF document
using ( var document = new Aspose . Pdf . Document ( dataDir + "GetAlltheAttachments.pdf" ))
{
// Get embedded files collection
Aspose . Pdf . EmbeddedFileCollection embeddedFiles = document . EmbeddedFiles ;
// Get count of the embedded files
Console . WriteLine ( "Total files : {0}" , embeddedFiles . Count );
int count = 1 ;
// Loop through the collection to get all the attachments
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 );
// 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
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
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetAllAttachments ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
// Open PDF document
using var document = new Aspose . Pdf . Document ( dataDir + "GetAlltheAttachments.pdf" );
// Get embedded files collection
Aspose . Pdf . EmbeddedFileCollection embeddedFiles = document . EmbeddedFiles ;
// Get count of the embedded files
Console . WriteLine ( "Total files : {0}" , embeddedFiles . Count );
int count = 1 ;
// Loop through the collection to get all the attachments
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 );
// 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
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
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetIndividualAttachment ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
// Open PDF document
using ( var document = new Aspose . Pdf . Document ( dataDir + "GetIndividualAttachment.pdf" ))
{
// Get particular embedded file
Aspose . Pdf . FileSpecification fileSpecification = document . EmbeddedFiles [ 1 ];
// Get the file properties
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
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
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetIndividualAttachment ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Attachments ();
// Open PDF document
using var document = new Aspose . Pdf . Document ( dataDir + "GetIndividualAttachment.pdf" );
// Get particular embedded file
Aspose . Pdf . FileSpecification fileSpecification = document . EmbeddedFiles [ 1 ];
// Get the file properties
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
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.