/*
	Antenna House PDF Tool API V8.0
	C++ Interface sample program

	概要：複数矩形テキスト抽出

	Copyright 2025 Antenna House, Inc.
*/

#include < PdfTk.h >
#include < stdio.h >
#include < fstream >
#include < string.h >
#if defined(_WIN64) || defined(_WIN32)
#include < atlstr.h >
#endif


using namespace PdfTk;
using namespace std;

int main(int argc, char* argv[])
{
	try {
		if (argc < 2) {
			printf("usage: MultiRectExtractText.exe in-pdf-file\n");
			return 1;
		}
		PtlParamInput input(argv[1]);
		PtlPDFDocument doc;

		// PDFファイルをロードします。
		doc.load(input);

		PtlParamExtractText paramExtractText;

		PtlPages& pages = doc.getPages();
		int pageCount = doc.getPageCount();

		PtlPage page = pages.get(0);

		// ページサイズ
		PtlSize pageSize = page.getSize();
		// テキスト抽出する範囲
		PtlRect rect(0.0f, 0.0f, pageSize.getWidth() / 2, pageSize.getHeight() / 2);
		PtlRect rect2(0.0f, pageSize.getHeight() / 2, pageSize.getWidth() / 2, pageSize.getHeight());

		paramExtractText.appendRect(rect);
		paramExtractText.appendRect(rect2);
		PtlContent& content = page.getContent();

		PtlExtractTextResults textList = content.extractTexts(paramExtractText);
		for (int i = 0; i < textList.getCount(); i++) {
			PtlExtractTextResult& result = textList.get(i);
			PtlParamString text = result.getText();
			printf(text.c_str());
		}
		printf("完了!\n");
		return 0;
	}
	catch (const PtlException &e)
	{
		fprintf(stderr, "Error code : %d\n %s\n", e.getErrorCode(), e.getErrorMessage().c_str());
		return 1;
	}
}