/*
	Antenna House PDF Tool API V8.0
	Java Interface sample program

	概要：上付き文字列・下付き文字列・化学式

	Copyright 2025- Antenna House,Inc.
 */

package Sample;

import jp.co.antenna.ptl.*;

public class DrawTextBox_1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length < 2)
        {
            System.out.println("usage: java DrawTextBox_1 in-pdf-file out-pdf-file");
            return;
        }

        try (PtlParamInput inputFile = new PtlParamInput(args[0]);
             PtlParamOutput outputFile = new PtlParamOutput(args[1]);
             PtlPDFDocument doc = new PtlPDFDocument();)
        {

            doc.load(inputFile);

            try (PtlPages pages = doc.getPages();
                 PtlPage page0 = pages.get(0);     //1ページ目
                 PtlSize pageSize = page0.getSize();
                 PtlContent content = page0.getContent();
                 PtlParamFont fontNormal = new PtlParamFont("メイリオ", 36.0f, false, false, true);
                 PtlRect rect = new PtlRect(10, 10, pageSize.getWidth() - 10, pageSize.getHeight() - 50);
        		 PtlTextBox textBox = content.drawTextBox(rect, PtlContent.ALIGN.ALIGN_TOP_LEFT, 300, 400);)
            {
            	
                // 縁取りがテキストを囲むサイズに変わるよう指定しない
                textBox.fitToBBox(false);
            	
        		PtlParamWriteStringTextBox paramWriteString5 = new PtlParamWriteStringTextBox();
            	paramWriteString5.setFont(fontNormal);
                String text52 = ("上付き文字");
                paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUP);
                textBox.writeString(text52, paramWriteString5);	// 文字列を出力
                String text53 = ("と");
                paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_NORMAL);
                textBox.writeString(text53, paramWriteString5);	// 文字列を出力
                String text54 = ("下付き文字。");
                paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUB);
                textBox.writeString(text54, paramWriteString5);	// 文字列を出力
                String text55 = ("通常文字。");
                paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_NORMAL);
                textBox.writeStringNL(text55, paramWriteString5); 	// 文字列を出力して改行
                
        		textBox.writeNL();  // 改行

        		PtlParamWriteStringTextBox paramWriteString6 = new PtlParamWriteStringTextBox();
        		PtlParamWriteStringTextBox paramWriteStringSup6 = new PtlParamWriteStringTextBox();
        		paramWriteString6.setFont(fontNormal);
        		paramWriteStringSup6.setFont(fontNormal);
        		paramWriteStringSup6.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUP); // 上付き指定

        		String textabc = ("((a+b+c)");
        		textBox.writeString(textabc, paramWriteString6);     // 文字列を出力
        		String text2 = ("2");
        		textBox.writeString(text2, paramWriteStringSup6);    // 上付き文字列を出力
        		String texta = ("=a");
        		textBox.writeString(texta, paramWriteString6);       // 文字列を出力
        		textBox.writeString(text2, paramWriteStringSup6);    // 上付き文字列を出力
        		String textb = ("+b");
        		textBox.writeString(textb, paramWriteString6);       // 文字列を出力
        		textBox.writeString(text2, paramWriteStringSup6);    // 上付き文字列を出力
        		String textc = ("+c");
        		textBox.writeString(textc, paramWriteString6);       // 文字列を出力
        		textBox.writeString(text2, paramWriteStringSup6);    // 上付き文字列を出力
        		String text2abc = ("+2ab+2bc+2ca)");
        		textBox.writeStringNL(text2abc, paramWriteString6);  // 文字列を出力して改行

        		textBox.writeNL();  // 改行

        		PtlParamWriteStringTextBox paramWriteString7 = new PtlParamWriteStringTextBox();
        		paramWriteString7.setFont(fontNormal);
        		// 化学式
        		paramWriteString7.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_CHEM);

        		String text22 = ("(C4H8O2)");
        		textBox.writeStringNL(text22, paramWriteString7);// 文字列を出力して改行

        		textBox.writeNL();  // 改行

        		String text33 = ("H2SO4→2H++SO42-");
        		textBox.writeStringNL(text33, paramWriteString7);// 文字列を出力して改行
                    

                textBox.terminate();

                doc.save(outputFile);
            }

        }
        catch (PtlException pex) {
            System.out.println("PtlException : ErrorCode = " + pex.getErrorCode() + "\n  " + pex.getErrorMessage());
        }
        catch (Exception ex) {
            System.out.println(ex.getMessage());
            ex.printStackTrace();
        }
        catch (Error ex) {
            System.out.println(ex.getMessage());
            ex.printStackTrace();
        }
        finally {
            System.out.println("-- 完了 --");
        }
	}
}

