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

	概要：ページの回転と色透かし挿入 

	Copyright 2026- Antenna House, Inc.
*/

#include < PdfTk.h >
#include < stdio.h >

using namespace PdfTk;

void appendWatermark(PtlPDFDocument& doc);

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

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

		//ページコンテナの取得
		PtlPages& pages = doc.getPages();

		if (pages.isEmpty()) {
			printf("ページコンテナが空\n");
			return 1;
		}

		// 3ページ目の取得
		PtlPage page_3 = pages.get(2);

		// 回転角度設定（0, 90, 180, 270）
		page_3.setRotate(90);

		// 8ページ目の取得
		PtlPage page_8 = pages.get(7);

		// 回転角度設定（0, 90, 180, 270）
		page_8.setRotate(180);

		// 透かしの設定
		appendWatermark(doc);

		// ファイルに保存します。
		doc.save(output);

		printf("完了!\n");
	}
	catch (const PtlException &e)
	{
		fprintf(stderr, "Error code : %d\n %s\n", e.getErrorCode(), e.getErrorMessage().c_str());
		return 1;
	}
	return 0;
}

void appendWatermark(PtlPDFDocument& doc)
{
	PtlParamWaterMarkColor watermarkcolor;

	//透かしの名前の設定
	watermarkcolor.setName("透かしの名前");

	//透かしを配置するマージンの設定
	watermarkcolor.setMargin(50.0f, 50.0f, 50.0f, 50.0f);

	//先頭ページに透かしを配置するかしないかの設定 trueなら配置しない
	watermarkcolor.setNotInFirst(true);

	//PDF印刷時に透かしを印刷する指定を設定 false印刷しない
	watermarkcolor.setPrintWaterMark(false);

	//透かしの不透明度の設定
	watermarkcolor.setOpacity(0.7f);

	//透かしの色の設定
	watermarkcolor.setColor(PtlColorDeviceRGB(0.0f, 1.0f, 0.0f));

	//透かしの設定
	doc.appendWaterMark(watermarkcolor);

}
