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

	概要：ページサイズに合わせて折り返す文字列（新規のページを作成）

	Copyright 2025- Antenna House, Inc.
*/

#include < PdfTk.h >

using namespace std;
using namespace PdfTk;

int main(int argc, char* argv[])
{
	if (argc != 2)
	{
		printf("usage: DrawTextBox_4.exe out-pdf-file \n");
		return 1;
	}

	try {
		PtlParamOutput output(argv[1]);
		PtlPDFDocument doc;

		PtlOption option;
		option.setUnit(PtlOption::UNIT_PT);

		PtlParamString fontname = "メイリオ";
		float fontSize = 24.0f;

		PtlParamFont fontNormal(fontname, fontSize, false, false, true);
		PtlColorDeviceRGB colorBlack = PtlColorDeviceRGB(0.0f, 0.0f, 0.0f);
		PtlPages& pages = doc.getPages();
		PtlPage newpage;
		PtlSize pageSize = newpage.getSize();

		pages.append(newpage, PtlPages::INSERT_OPTION::OPTION_NONE);

		PtlContent& content = newpage.getContent();
		// TextBoxを書き込む領域矩形
		PtlRect rect(0, 0, pageSize.getWidth(), pageSize.getHeight());

		// rectにページと同じサイズのTextBoxを左上に書く
		PtlTextBox& textBox = content.drawTextBox(rect, PtlContent::ALIGN_TOP_LEFT, pageSize.getWidth(), pageSize.getHeight());
		PtlParamWriteStringTextBox paramWriteString;
		paramWriteString.setFont(fontNormal);
		paramWriteString.setTextColor(colorBlack);

		const char*  text1("そのあくる日もごんは、栗をもって、兵十の家へ出かけました。兵十は物置で縄《なわ》をなっていました。それでごんは家の裏口から、こっそり中へはいりました。そのとき兵十は、ふと顔をあげました。と狐が家の中へはいったではありませんか。こないだうなぎをぬすみやがったあのごん狐めが、またいたずらをしに来たな。「ようし。」兵十は立ちあがって、納屋《なや》にかけてある火縄銃《ひなわじゅう》をとって、火薬をつめました。そして足音をしのばせてちかよって、今戸口を出ようとするごんを、ドンと、うちました。ごんは、ばたりとたおれました。兵十はかけよって来ました。家の中を見ると、土間《どま》に栗が、かためておいてあるのが目につきました。「おや」と兵十は、びっくりしてごんに目を落しました。「ごん、お前だったのか。いつも栗をくれたのは」ごんは、ぐったりと目をつぶったまま、うなずきました。兵十は火縄銃をばたりと、とり落しました。青い煙が、まだ筒口から細く出ていました。（新美南吉「ごん狐」）");
		textBox.writeStringNL(PtlParamString(text1), paramWriteString);

		textBox.terminate();

		doc.save(output);
		printf("-- 完了 --\n");

	} catch (PtlException e) {
		fprintf(stderr, "Error code : %d\n %s\n", e.getErrorCode(), e.getErrorMessage().c_str());

	} catch (...) {
		printf("Exception\n");
	}
}