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

