Ekstrak dan Simpan Lampiran

Dapatkan Semua Lampiran

Dengan Aspose.PDF, memungkinkan untuk mendapatkan semua lampiran dari dokumen PDF. Ini berguna baik ketika Anda ingin menyimpan dokumen secara terpisah dari PDF, atau jika Anda perlu menghilangkan lampiran dari PDF.

Untuk mendapatkan semua lampiran dari file PDF:

  1. Melakukan perulangan melalui koleksi EmbeddedFiles pada objek Document. Koleksi EmbeddedFiles berisi semua lampiran. Setiap elemen dari koleksi ini mewakili objek FileSpecification. Setiap iterasi dari perulangan foreach melalui koleksi EmbeddedFiles menghasilkan objek FileSpecification. Potongan kode berikut menunjukkan bagaimana mendapatkan semua lampiran dari dokumen PDF.

Potongan kode berikut juga bekerja dengan pustaka Aspose.PDF.Drawing.

// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_Attachments();

// Buka dokumen
Document pdfDocument = new Document(dataDir + "GetAlltheAttachments.pdf");

// Dapatkan koleksi file yang tertanam
EmbeddedFileCollection embeddedFiles = pdfDocument.EmbeddedFiles;

// Dapatkan jumlah file yang tertanam
Console.WriteLine("Total files : {0}", embeddedFiles.Count);

int count = 1;

// Loop melalui koleksi untuk mendapatkan semua lampiran
foreach (FileSpecification fileSpecification in embeddedFiles)
{
    Console.WriteLine("Name: {0}", fileSpecification.Name);
    Console.WriteLine("Description: {0}",
    fileSpecification.Description);
    Console.WriteLine("Mime Type: {0}", fileSpecification.MIMEType);

    // Periksa jika objek parameter mengandung parameter
    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);
    }

    // Dapatkan lampiran dan tulis ke file atau aliran
    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;
}

Dapatkan Lampiran Individu

Untuk mendapatkan lampiran individu, kita dapat menentukan indeks lampiran dalam objek EmbeddedFiles dari instansi Dokumen. Silakan coba menggunakan potongan kode berikut.

// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_Attachments();

// Buka dokumen
Document pdfDocument = new Document(dataDir + "GetIndividualAttachment.pdf");

// Dapatkan file tertanam tertentu
FileSpecification fileSpecification = pdfDocument.EmbeddedFiles[1];

// Dapatkan properti file
Console.WriteLine("Nama: {0}", fileSpecification.Name);
Console.WriteLine("Deskripsi: {0}", fileSpecification.Description);
Console.WriteLine("Tipe MIME: {0}", fileSpecification.MIMEType);

// Periksa apakah objek parameter berisi parameter
if (fileSpecification.Params != null)
{
    Console.WriteLine("Checksum: {0}",
    fileSpecification.Params.CheckSum);
    Console.WriteLine("Tanggal Pembuatan: {0}",
    fileSpecification.Params.CreationDate);
    Console.WriteLine("Tanggal Modifikasi: {0}",
    fileSpecification.Params.ModDate);
    Console.WriteLine("Ukuran: {0}", fileSpecification.Params.Size);
}


// Dapatkan lampiran dan tulis ke file atau stream
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();