OEM販売のご相談
ご相談ください!

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;
                     }
                 }
             }
         }