File PDF adalah format standar untuk bertukar dokumen melalui internet. Dokumen seperti faktur dan panduan produk biasanya dibagikan dalam bentuk PDF. Mungkin ada situasi di mana Anda memiliki beberapa faktur yang berisi data tabular yang perlu Anda ekstrak dan proses lebih lanjut. Akan lebih efisien untuk mengekstrak data ini secara terprogram. Untuk itu, artikel ini akan mengajarkan Anda cara mengekstrak data dari tabel PDF menggunakan C++.

C++ API untuk Mengekstraksi Data dari Tabel di File PDF

Aspose.PDF for C++ adalah pustaka C++ yang memungkinkan Anda membuat, membaca, dan memperbarui file PDF. Selain itu, API mendukung penggalian data dari tabel dalam file PDF. Anda dapat menginstal API melalui NuGet atau mengunduhnya langsung dari bagian unduhan.

PM> Install-Package Aspose.PDF.Cpp

Ekstrak Data dari Tabel PDF menggunakan C++

Berikut ini adalah langkah-langkah untuk mengekstrak data dari tabel PDF.

Kode contoh berikut menunjukkan cara mengekstrak data dari tabel PDF menggunakan C++.

// Muat dokumen PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Table_input3.pdf");

// Ulangi halaman-halaman dokumen
for (auto page : pdfDocument->get_Pages())
{
	// Buat instance dari kelas TableAbsorber
	auto absorber = MakeObject<TableAbsorber>();
	absorber->Visit(page);

	// Iterasi melalui tabel
	for (auto table : absorber->get_TableList())
	{
		Console::WriteLine(u"Table");

		// Iterasi melalui baris
		for (auto row : table->get_RowList())
		{
			// Ulangi melalui sel
			for (auto cell : row->get_CellList())
			{
				// Ulangi melalui fragmen teks
				for (auto fragment : cell->get_TextFragments())
				{
					String string = u"";

					// Ulangi melalui segmen teks
					for (auto seg : fragment->get_Segments())
					{
						// Dapatkan teksnya
						string = String::Concat(string, seg->get_Text());
					}

					// Cetak teks
					Console::WriteLine(string);
				}
			}
			Console::WriteLine();
		}
	}
}

Ekstrak Data dari Tabel di Area Tertentu Halaman PDF

Untuk mengekstrak data dari tabel di area tertentu pada halaman PDF, ikuti langkah-langkah di bawah ini.

Kode contoh berikut menunjukkan cara mengekstrak data dari tabel di area tertentu halaman PDF menggunakan C++.

// Muat dokumen PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Table_input4.pdf");

// Dapatkan halaman pertama dokumen
auto page = pdfDocument->get_Pages()->idx_get(1);

// Iterasi melalui anotasi pada halaman
for (auto annotation : page->get_Annotations())
{
	// Periksa jenis anotasi
	if (annotation->get_AnnotationType() == Annotations::AnnotationType::Square)
	{
		System::SharedPtr<SquareAnnotation> squareAnnotation = DynamicCast<SquareAnnotation>(annotation);

		// Buat instance dari kelas TableAbsorber
		auto absorber = MakeObject<TableAbsorber>();
		absorber->Visit(page);

		// Iterasi melalui tabel
		for (auto table : absorber->get_TableList())
		{
			// Periksa apakah tabel ada di wilayah tersebut
			if ((squareAnnotation->get_Rect()->get_LLX() < table->get_Rectangle()->get_LLX()) &&
				(squareAnnotation->get_Rect()->get_LLY() < table->get_Rectangle()->get_LLY()) &&
				(squareAnnotation->get_Rect()->get_URX() > table->get_Rectangle()->get_URX()) &&
				(squareAnnotation->get_Rect()->get_URY() > table->get_Rectangle()->get_URY())
				)
			{
				// Iterasi melalui baris
				for (auto row : table->get_RowList())
				{
					// Ulangi melalui sel
					for (auto cell : row->get_CellList())
					{
						// Ulangi melalui fragmen teks
						for (auto fragment : cell->get_TextFragments())
						{
							String string = u"";

							// Ulangi melalui segmen teks
							for (auto seg : fragment->get_Segments())
							{
								// Dapatkan teksnya
								string = String::Concat(string, seg->get_Text());
							}

							// Cetak teks
							Console::WriteLine(string);
						}
					}
					Console::WriteLine();
				}
			}
		}
		break;
	}
}

Dapatkan Lisensi Gratis

Untuk mencoba API tanpa batasan evaluasi, Anda dapat meminta lisensi sementara gratis.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mengekstrak data dari tabel PDF menggunakan C++. Selain itu, Anda telah mempelajari cara mengekstrak data dari tabel di wilayah tertentu pada halaman PDF. Aspose.PDF for C++ API menyediakan banyak fitur tambahan untuk bekerja dengan file PDF. Anda dapat menjelajahi API secara mendetail dengan mengunjungi dokumentasi resmi. Jika ada pertanyaan, jangan ragu untuk menghubungi kami di forum dukungan gratis.

Lihat juga