فایل‌ها PDF فرمت استانداردی برای تبادل اسناد از طریق اینترنت هستند. اسنادی مانند فاکتورها و راهنمای محصول معمولاً در قالب PDF به اشتراک گذاشته می شوند. ممکن است شرایطی وجود داشته باشد که چندین فاکتور حاوی داده های جدولی داشته باشید که باید آنها را استخراج و پردازش کنید. استخراج این داده ها به صورت برنامه نویسی کارآمدتر خواهد بود. برای این منظور، این مقاله به شما آموزش می دهد که چگونه داده ها را از جداول PDF با استفاده از C++ استخراج کنید.

C++ API برای استخراج داده ها از جداول در فایل های PDF

Aspose.PDF for C++ یک کتابخانه C++ است که به شما امکان می دهد فایل های PDF را ایجاد، بخوانید و به روز کنید. علاوه بر این، API از استخراج داده ها از جداول در فایل های PDF پشتیبانی می کند. می‌توانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش دانلودها دانلود کنید.

PM> Install-Package Aspose.PDF.Cpp

استخراج داده ها از جداول PDF با استفاده از ++C

در زیر مراحل استخراج داده ها از جداول PDF آمده است.

کد نمونه زیر نحوه استخراج داده ها از جداول PDF را با استفاده از C++ نشان می دهد.

// سند PDF را بارگیری کنید
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Table_input3.pdf");

// از طریق صفحات سند تکرار کنید
for (auto page : pdfDocument->get_Pages())
{
	// یک نمونه از کلاس TableAbsorber ایجاد کنید
	auto absorber = MakeObject<TableAbsorber>();
	absorber->Visit(page);

	// از طریق جداول تکرار کنید
	for (auto table : absorber->get_TableList())
	{
		Console::WriteLine(u"Table");

		// در ردیف ها تکرار کنید
		for (auto row : table->get_RowList())
		{
			// در سلول ها تکرار کنید
			for (auto cell : row->get_CellList())
			{
				// در قطعات متن تکرار کنید
				for (auto fragment : cell->get_TextFragments())
				{
					String string = u"";

					// در بخش های متنی تکرار کنید
					for (auto seg : fragment->get_Segments())
					{
						// متن را دریافت کنید
						string = String::Concat(string, seg->get_Text());
					}

					// متن را چاپ کنید
					Console::WriteLine(string);
				}
			}
			Console::WriteLine();
		}
	}
}

استخراج داده ها از یک جدول در یک منطقه خاص از یک صفحه PDF

برای استخراج داده ها از یک جدول در یک منطقه خاص از صفحه PDF، لطفاً مراحل زیر را دنبال کنید.

کد نمونه زیر نحوه استخراج داده ها از یک جدول در یک منطقه خاص از صفحه PDF را با استفاده از C++ نشان می دهد.

// سند PDF را بارگیری کنید
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Table_input4.pdf");

// صفحه اول سند را دریافت کنید
auto page = pdfDocument->get_Pages()->idx_get(1);

// از طریق حاشیه نویسی در صفحه تکرار کنید
for (auto annotation : page->get_Annotations())
{
	// نوع حاشیه نویسی را بررسی کنید
	if (annotation->get_AnnotationType() == Annotations::AnnotationType::Square)
	{
		System::SharedPtr<SquareAnnotation> squareAnnotation = DynamicCast<SquareAnnotation>(annotation);

		// یک نمونه از کلاس TableAbsorber ایجاد کنید
		auto absorber = MakeObject<TableAbsorber>();
		absorber->Visit(page);

		// از طریق جداول تکرار کنید
		for (auto table : absorber->get_TableList())
		{
			// بررسی کنید که آیا جدول در منطقه است
			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())
				)
			{
				// در ردیف ها تکرار کنید
				for (auto row : table->get_RowList())
				{
					// در سلول ها تکرار کنید
					for (auto cell : row->get_CellList())
					{
						// در قطعات متن تکرار کنید
						for (auto fragment : cell->get_TextFragments())
						{
							String string = u"";

							// در بخش های متنی تکرار کنید
							for (auto seg : fragment->get_Segments())
							{
								// متن را دریافت کنید
								string = String::Concat(string, seg->get_Text());
							}

							// متن را چاپ کنید
							Console::WriteLine(string);
						}
					}
					Console::WriteLine();
				}
			}
		}
		break;
	}
}

مجوز رایگان دریافت کنید

برای امتحان کردن API بدون محدودیت ارزیابی، می توانید [مجوز موقت رایگان] را درخواست کنید.

نتیجه

در این مقاله نحوه استخراج داده ها از جداول PDF با استفاده از C++ را آموختید. علاوه بر این، شما یاد گرفته اید که چگونه داده ها را از یک جدول در یک منطقه خاص از صفحه PDF استخراج کنید. Aspose.PDF for C++ API بسیاری از ویژگی های اضافی را برای کار با فایل های PDF فراهم می کند. می‌توانید با مراجعه به مستندات رسمی API را با جزئیات بررسی کنید. در صورت وجود هرگونه سوال، لطفاً در [تالار گفتمان پشتیبانی رایگان39 ما با ما تماس بگیرید.

همچنین ببینید