/* Antenna House PDF Tool API V7.0 .NET Interface sample program 概要:テキストボックス Copyright 2021 Antenna House,Inc. */ using System; using PdfTkNet; namespace DrawTextBox { class DrawTextBox { static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("usage: drawTextBox.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()) using (PtlOption option = new PtlOption()) { option.setUnit(PtlOption.UNIT.UNIT_PT); doc.load(input); string fontName = "メイリオ"; float fontSize = 12.0f; using (PtlParamFont fontNormal = new PtlParamFont(fontName, fontSize, false, false, true)) using (PtlParamFont fontBoldItalic = new PtlParamFont(fontName, fontSize, true, true, true)) using (PtlColorDeviceRGB colorBlack = new PtlColorDeviceRGB(0.0f, 0.0f, 0.0f)) using (PtlColorDeviceRGB colorRed = new PtlColorDeviceRGB(1.0f, 0.0f, 0.0f)) using (PtlColorDeviceRGB colorBlue = new PtlColorDeviceRGB(0.0f, 0.0f, 1.0f)) using (PtlColorDeviceRGB colorBack = new PtlColorDeviceRGB(0.5f, 0.8f, 0.8f)) using (PtlColorDeviceRGB colorBack2 = new PtlColorDeviceRGB(0.8f, 0.5f, 0.8f)) { using (PtlPages pages = doc.getPages()) using (PtlPage page = pages.get(0)) //1ページ目 using (PtlSize pageSize = page.getSize()) using (PtlContent content = page.getContent()) using (PtlRect rect = new PtlRect(20, 20, pageSize.getWidth() - 20, pageSize.getHeight() - 20)) { using (PtlParamWriteStringTextBox paramWriteString = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteStringBoldItalic = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteStringColor = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteString5 = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteString6 = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteString7 = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteString8 = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteString8Sup = new PtlParamWriteStringTextBox()) using (PtlParamWriteStringTextBox paramWriteString8Sub = new PtlParamWriteStringTextBox()) using (PtlTextBox textBox = content.drawTextBox(rect, PtlContent.ALIGN.ALIGN_TOP_LEFT, 300, 400)) { // TextBoxの縁取りを付ける textBox.setOutlineColor(colorRed); // 縁取りがテキストを囲むサイズに変わるよう指定 textBox.fitToBBox(true); paramWriteString.setFont(fontNormal); paramWriteString.setTextColor(colorBlack); string text1 = "長いテキストは折り返されます。あああああいいいいいうううううえええええおおおおお。"; textBox.writeStringNL(text1, paramWriteString); string text2 = ("英字は途中で折り返されません。TextBoxはPtlParamWriteStringTextBoxを使います。"); textBox.writeStringNL(text2, paramWriteString); textBox.writeNL(); paramWriteString.setUnderline(true); paramWriteString.setStrikeOut(true); string text3 = ("下線と取り消し線はPtlParamWriteStringTextBoxで指定して書くことができます。"); textBox.writeString(text3, paramWriteString); paramWriteString.setUnderline(false); paramWriteString.setStrikeOut(false); paramWriteStringBoldItalic.setFont(fontBoldItalic); string text4 = ("太字、斜体のフォントスタイルはPtlParamFontで設定します。"); textBox.writeStringNL(text4, paramWriteStringBoldItalic); textBox.writeNL(); fontNormal.setFontSize(24); paramWriteStringColor.setFont(fontNormal); paramWriteStringColor.setTextColor(colorRed); paramWriteStringColor.setBackColor(colorBack); string text41 = ("フォントサイズを24にして文字の色をかえてみます。"); textBox.writeStringNL(text41, paramWriteStringColor); paramWriteStringColor.setTextColor(colorBack); paramWriteStringColor.setOutlineColor(colorBlack); paramWriteStringColor.setBackColor(colorBack2); string text42 = ("文字の縁取りの色をかえてみます。"); textBox.writeStringNL(text42, paramWriteStringColor); fontNormal.setFontSize(12); textBox.writeNL(12); // そのまま改行すると、24で改行されるので12にする string text52 = ("上付き文字"); paramWriteString5.setFont(fontNormal); paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUP); paramWriteString5.setBackColor(colorBack2); paramWriteString5.setUnderline(true); paramWriteString5.setStrikeOut(true); textBox.writeString(text52, paramWriteString5); string text53 = ("と"); paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_NORMAL); paramWriteString5.setBackColor(colorBack); textBox.writeString(text53, paramWriteString5); string text54 = ("下付き文字。"); paramWriteString5.setBackColor(colorBack2); paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUB); textBox.writeString(text54, paramWriteString5); string text55 = ("通常文字。"); paramWriteString5.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_NORMAL); paramWriteString5.setBackColor(colorBack); textBox.writeString(text55, paramWriteString5); string text6 = ("行間を広くして書いてみます。"); paramWriteString6.setFont(fontNormal); paramWriteString6.setBackColor(colorBack2); paramWriteString6.setLineSpacing(1.5f); textBox.writeStringNL(text6, paramWriteString6); textBox.writeNL(); string text7 = ("文字間隔をかえてみます。"); paramWriteString7.setFont(fontNormal); paramWriteString7.setBackColor(colorBack); textBox.writeStringNL(text7, paramWriteString7); string text72 = ("文字間隔狭い(-1)。"); paramWriteString7.setCharSpacing(-1); textBox.writeStringNL(text72, paramWriteString7); string text73 = ("文字間隔広い(1)。"); paramWriteString7.setCharSpacing(1); textBox.writeStringNL(text73, paramWriteString7); string text74 = ("文字間隔広い(2)。"); paramWriteString7.setCharSpacing(2); paramWriteString7.setUnderline(true); paramWriteString7.setStrikeOut(true); textBox.writeStringNL(text74, paramWriteString7); textBox.writeNL(); paramWriteString8.setFont(fontNormal); string text8 = ("化学式を上付き文字と下付き文字を使って書いてみます。"); textBox.writeStringNL(text8, paramWriteString8); paramWriteString8Sup.setFont(fontNormal); paramWriteString8Sup.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUP); paramWriteString8Sub.setFont(fontNormal); paramWriteString8Sub.setFormat(PtlParamWriteStringTextBox.FORMAT_TYPE.FORM_SUB); // C4H8O2 string C4H8O2_C = ("C"); textBox.writeString(C4H8O2_C, paramWriteString8); string C4H8O2_4 = ("4"); textBox.writeString(C4H8O2_4, paramWriteString8Sub); string C4H8O2_H = ("H"); textBox.writeString(C4H8O2_H, paramWriteString8); string C4H8O2_8 = ("8"); textBox.writeString(C4H8O2_8, paramWriteString8Sub); string C4H8O2_O = ("O"); textBox.writeString(C4H8O2_O, paramWriteString8); string C4H8O2_2 = ("2"); textBox.writeStringNL(C4H8O2_2, paramWriteString8Sub); // SO42- string SO42__SO = ("SO"); textBox.writeString(SO42__SO, paramWriteString8); string SO42__4 = ("4"); textBox.writeString(SO42__4, paramWriteString8Sub); string SO42__2_ = ("2-"); textBox.writeString(SO42__2_, paramWriteString8Sup); 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); } } } }