Ekstrak Lampiran dari PDF melalui C++

Cara Mengekstrak Lampiran dari PDF secara terprogram dengan C++

Cara Mengekstrak Lampiran Menggunakan C++ Library

Untuk mengekstrak Lampiran dalam file PDF, kita akan menggunakan Aspose.PDF untuk C++ API yang merupakan API manipulasi dokumen yang kaya fitur, kuat dan mudah digunakan untuk platform cpp. 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.Cpp

Ekstrak Lampiran dari PDF C++


Anda perlu Aspose.PDF untuk C++ 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

// Open document
auto pdfDocument = new Document(_dataDir + u"GetAlltheAttachments.pdf");

// Get embedded files collection
auto embeddedFiles = pdfDocument->get_EmbeddedFiles();

// Get count of the embedded files
Console::WriteLine(u"Total files : {0}", embeddedFiles->get_Count());

int count = 1;

// Loop through the collection to get all the attachments
for (auto fileSpecification : embeddedFiles)
{
	Console::WriteLine(u"Name: {0}", 
		fileSpecification->get_Name());
	Console::WriteLine(u"Description: {0}", 
		fileSpecification->get_Description());
	Console::WriteLine(u"Mime Type: {0}", 
		fileSpecification->get_MIMEType());

	// Check if parameter object contains the parameters
	if (fileSpecification->get_Params() != nullptr)
	{
	Console::WriteLine(u"CheckSum: {0}",
		fileSpecification->get_Params()->get_CheckSum());
	Console::WriteLine(u"Creation Date: {0}",
		fileSpecification->get_Params()->get_CreationDate());
	Console::WriteLine(u"Modification Date: {0}",
		fileSpecification->get_Params()->get_ModDate());
	Console::WriteLine(u"Size: {0}", 
		fileSpecification->get_Params()->get_Size());
}

// Get the attachment and write to file or stream
auto fileContent = MakeArray<uint8_t>(fileSpecification->get_Contents()->get_Length());
fileSpecification->get_Contents()->Read(fileContent, 0, fileContent->get_Length());
auto fileStream = System::IO::File::OpenWrite(_dataDir + u"test" + count + u"_out.txt");
fileStream->Write(fileContent, 0, fileContent->get_Length());
fileStream->Close();
count += 1;
}