Ekstrak Lampiran dari PDF melalui C#

Cara Mengekstrak Lampiran dari PDF secara terprogram dengan C#

Cara Mengekstrak Lampiran Menggunakan .NET Library

Untuk mengekstrak Lampiran dalam file PDF, kita akan menggunakan Aspose.PDF for .NET API yang merupakan API manipulasi dokumen yang kaya fitur, kuat dan mudah digunakan untuk platform net. Buka manajer paket nuget, cari Aspose.pdf dan instal. Anda juga dapat menggunakan perintah berikut dari Konsol Manajer Paket.

Package Manager Console

PM > Install-Package Aspose.PDF

Ekstrak Lampiran dari PDF C#


Anda perlu Aspose.PDF untuk .NET untuk mencoba kode di lingkungan Anda.

  1. Dapatkan koleksi file tertanam.
  2. Dapatkan hitungan file yang disematkan.
  3. Loop melalui koleksi untuk mendapatkan semua lampiran.
  4. Periksa apakah objek parameter berisi parameter.
  5. Dapatkan Lampiran dan tulis ke file atau streaming.

Ekstrak Lampiran dari dokumen PDF

static void PrintFileDetails(Aspose.Pdf.FileSpecification fileSpecification)
{
    Console.WriteLine($"Name: {fileSpecification.Name}");
    Console.WriteLine($"Description: {fileSpecification.Description}");
    Console.WriteLine($"Mime Type: {fileSpecification.MIMEType}");

    if (fileSpecification.Params != null)
    {
        Console.WriteLine($"CheckSum: {fileSpecification.Params.CheckSum}");
        Console.WriteLine($"Creation Date: {fileSpecification.Params.CreationDate}");
        Console.WriteLine($"Modification Date: {fileSpecification.Params.ModDate}");
        Console.WriteLine($"Size: {fileSpecification.Params.Size}");
    }
}

var inputFile = Path.Combine(dataDir, "GetAlltheAttachments.pdf");
var pdfDocument = new Aspose.Pdf.Document(inputFile);
var embeddedFiles = pdfDocument.EmbeddedFiles;
Console.WriteLine($"Total files: {embeddedFiles.Count}");

foreach (var fileSpecification in embeddedFiles)
{
    PrintFileDetails(fileSpecification);

    var outputFilePath = Path.Combine(dataDir, fileSpecification.Name);
    using var fileStream = File.OpenWrite(outputFilePath);
    fileSpecification.Contents.CopyTo(fileStream);
}