PDF Tool APIサンプル集:上付き文字列・下付き文字列・化学式
PDF出力する元ファイル(入力ファイル)パス、PDFの出力先となるファイルパスを指定して
上付き文字と下付き文字の混在する文字列や数式、化学式を書きこんだPDFを出力するコンソールアプリケーションです。
概要
コマンドラインでの実行例
sample.exe c:\test\test.pdf c:\sav\out.pdf
ダウンロード
出力結果イメージ
サンプルコード
/* Antenna House PDF Tool API V7.0 C# Interface sample program 概要:上付き文字と下付き文字の描画のサンプル Copyright 2021 Antenna House,Inc. */ using System; using PdfTkNet; namespace sample01cs { class Program { static void Main(string[] args) { Console.WriteLine("PDF Tool API V7.0 C# サンプル"); // 入出力ファイル名と設定ファイル名の初期値を設定 string inFilePath = @"C:\test\test.pdf"; string outFilePath = @"C:\sav\out.pdf"; // 入力ファイル名 if (args.Length > 0) { inFilePath = args[0]; } // 出力ファイル名 if (args.Length > 1) { outFilePath = args[1]; } try { using (PtlParamInput input = new PtlParamInput(inFilePath)) using (PtlParamOutput output = new PtlParamOutput(outFilePath)) 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); } } catch (PtlException e) { Console.WriteLine(string.Format("Error code : {0} {1}", e.getErrorCode(), e.getErrorMessage())); return; } catch (Exception e) { Console.WriteLine(e.Message); return; } } } }