/*
	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 != 3)
	{
		printf("usage: DrawTextBox_5.exe in-pdf-file out-pdf-file \n");
		return 1;
	}

	try {
		PtlParamInput input(argv[1]);
		PtlParamOutput output(argv[2]);
		PtlPDFDocument doc;
		doc.load(input);

		PtlPages& pages = doc.getPages();
		PtlPage page0 = pages.get(0);
		PtlSize pageSize = page0.getSize();
		PtlContent& content = page0.getContent();
		PtlColorDeviceRGB colorRed = PtlColorDeviceRGB(1.0f, 0.0f, 0.0f);
		PtlParamFont fontNormal("メイリオ", 18.0f, false, false, true);
		PtlRect rect(10, 10, pageSize.getWidth() - 10, pageSize.getHeight() - 10);
		PtlTextBox& textBox = content.drawTextBox(rect, PtlContent::ALIGN::ALIGN_TOP_LEFT, pageSize.getWidth() - 20, pageSize.getHeight() - 20);

		// TextBoxの縁取りを付ける
		textBox.setOutlineColor(colorRed);

		PtlParamWriteStringTextBox paramWriteString;

		paramWriteString.setFont(fontNormal);

		const char* text50 = ("通常文字。");
		textBox.writeStringNL(text50, paramWriteString);
		const char* text51 = ("「これは、私が小さいときに、村の茂平というおじいさんからきいたお話です。むかしは、私たちの村のちかくの、中山というところに小さなお城があって、中山さまというおとのさまが、おられたそうです。その中山から、少しはなれた山の中に、「ごん狐」という狐がいました。」（新美南吉「ごん狐」）");
		textBox.writeStringNL(text51, paramWriteString);
		textBox.writeNL();

		paramWriteString.setLineSpacing(1.5f);
		const char* text60 = ("行間を広くします。");
		textBox.writeStringNL(text60, paramWriteString);
		const char* text61 = ("「これは、私が小さいときに、村の茂平というおじいさんからきいたお話です。むかしは、私たちの村のちかくの、中山というところに小さなお城があって、中山さまというおとのさまが、おられたそうです。その中山から、少しはなれた山の中に、「ごん狐」という狐がいました。」（新美南吉「ごん狐」）");
		textBox.writeStringNL(text61, paramWriteString);
		textBox.writeNL();

		paramWriteString.setLineSpacing(1.0f);
		const char* text40 = ("行間を狭くします。");
		textBox.writeStringNL(text40, paramWriteString);
		const char* text41 = ("「これは、私が小さいときに、村の茂平というおじいさんからきいたお話です。むかしは、私たちの村のちかくの、中山というところに小さなお城があって、中山さまというおとのさまが、おられたそうです。その中山から、少しはなれた山の中に、「ごん狐」という狐がいました。」（新美南吉「ごん狐」）");
		textBox.writeStringNL(text41, paramWriteString);

		textBox.writeNL();

		const char* text7 = ("文字間隔をかえてみます。");
		textBox.writeStringNL(text7, paramWriteString);

		const char* text72 = ("文字間隔狭い(-1)。");
		paramWriteString.setCharSpacing(-1);
		textBox.writeStringNL(text72, paramWriteString);

		const char* text73 = ("文字間隔広い(1)。");
		paramWriteString.setCharSpacing(1);
		textBox.writeStringNL(text73, paramWriteString);

		const char* text74 = ("文字間隔広い(2)。");
		paramWriteString.setCharSpacing(2);
		textBox.writeStringNL(text74, 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");
	}
}