/* Antenna House PDF Tool API V8.0 .NET Interface sample program 概要:上付き文字列・下付き文字列・化学式 Copyright 2025- Antenna House,Inc. */ using System; using PdfTkNet; namespace DrawTextBox { class DrawTextBox { static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("usage: drawTextBox_1.exe in-pdf-file out-pdf-file\n"); return; } try { using (PtlParamInput input = new PtlParamInput(args[0])) using (PtlParamOutput output = new PtlParamOutput(args[1])) using (PtlPDFDocument doc = new PtlPDFDocument()) { doc.load(input); using (PtlPages pages = doc.getPages()) using (PtlPage page0 = pages.get(0)) using (PtlSize pageSize = page0.getSize()) using (PtlContent content = page0.getContent()) using (PtlParamFont fontNormal = new PtlParamFont("メイリオ", 36.0f, false, false, true)) using (PtlRect rect = new PtlRect(10, 10, pageSize.getWidth() - 10, pageSize.getHeight() - 50)) using (PtlTextBox textBox = content.drawTextBox(rect, PtlContent.ALIGN.ALIGN_TOP_LEFT, pageSize.getWidth() - 20, pageSize.getHeight() - 60)) { // 縁取りがテキストを囲むサイズに変わるよう指定しない textBox.fitToBBox(false); using (PtlParamWriteStringTextBox paramWriteString = new PtlParamWriteStringTextBox()) { paramWriteString.setFont(fontNormal); string text52 = ("上付き文字"); paramWriteString.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUP); // 上付き指定 textBox.writeString(text52, paramWriteString); // 文字列を出力 string text53 = ("と"); paramWriteString.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_NORMAL); // ノーマル指定 textBox.writeString(text53, paramWriteString); // 文字列を出力 string text54 = ("下付き文字。"); paramWriteString.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUB); // 下付き指定 textBox.writeString(text54, paramWriteString); // 文字列を出力 string text55 = ("通常文字。"); paramWriteString.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_NORMAL); // ノーマル指定 textBox.writeStringNL(text55, paramWriteString); // 文字列を出力して改行 } textBox.writeNL(); // 改行 using (PtlParamWriteStringTextBox paramWriteString = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteStringSup = new PtlParamWriteStringTextBox()) { paramWriteString.setFont(fontNormal); paramWriteStringSup.setFont(fontNormal); paramWriteStringSup.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUP); // 上付き指定 string textabc = ("((a+b+c)"); textBox.writeString(textabc, paramWriteString); // 文字列を出力 string text2 = ("2"); textBox.writeString(text2, paramWriteStringSup); // 上付き文字列を出力 string texta = ("=a"); textBox.writeString(texta, paramWriteString); // 文字列を出力 textBox.writeString(text2, paramWriteStringSup); // 上付き文字列を出力 string textb = ("+b"); textBox.writeString(textb, paramWriteString); // 文字列を出力 textBox.writeString(text2, paramWriteStringSup); // 上付き文字列を出力 string textc = ("+c"); textBox.writeString(textc, paramWriteString); // 文字列を出力 textBox.writeString(text2, paramWriteStringSup); // 上付き文字列を出力 string text2abc = ("+2ab+2bc+2ca)"); textBox.writeStringNL(text2abc, paramWriteString); // 文字列を出力して改行 } textBox.writeNL(); // 改行 using (PtlParamWriteStringTextBox paramWriteString = new PtlParamWriteStringTextBox()) { paramWriteString.setFont(fontNormal); // 化学式 paramWriteString.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_CHEM); string text22 = ("(C4H8O2)"); textBox.writeStringNL(text22, paramWriteString);// 文字列を出力して改行 textBox.writeNL(); // 改行 string text33 = ("H2SO4→2H++SO42-"); textBox.writeStringNL(text33, paramWriteString);// 文字列を出力して改行 } textBox.terminate(); } doc.save(output); Console.WriteLine("-- 完了 --"); } } catch (PtlException pex) { Console.WriteLine(pex.getErrorCode() + " : " + pex.getErrorMessageJP()); pex.Dispose(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }