PDF Tool APIサンプル集:ステンシルマスクの例
青色のステンシルマスク画像を追加したPDFを出力する
コンソールアプリケーションです
概要
サンプルコードの概要
引数に
1.PDF出力する元ファイル(入力ファイル)パス
2.マスクに使用する画像のパス
3.PDFの出力先となるファイルパス
を指定して青色のステンシルマスク画像を追加したPDFを出力する
コンソールアプリケーションです
1ページ目には2の画像で青色指定のステンシルマスク画像を追加します
さらに2の画像で青色指定のステンシルマスク画像をPDFに変換して
ファイルのページの末尾に追加します
下の出力結果イメージでは
1P目は黄色いページに青色のステンシルマスク画像を追加してあり
2P目は青色のステンシルマスク画像のみとなっています
コマンドラインでの実行例
sample.exe C:\test\samplePdf2.pdf C:\test\test_12.gif C:\sav\out.pdf
ダウンロード
出力結果イメージ
サンプルコード
/*
Antenna House PDF Tool API 7.0
C# Interface sample program
概要:
Copyright 2022 Antenna House,Inc.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PdfTkNet;
namespace sample12cs
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("PDF Tool API V7.0 C# サンプル");
// 出力ファイル名の初期値を設定
string inFilePath = @"C:\test\samplePdf2.pdf"; // 入力ファイル(黄色のPDF)
string inImagePath = @"C:\test\test_12.gif"; // マスク用ファイル(文字GIF)
string outFilePath = @"C:\sav\out.pdf";
// 入力ファイル名
if (args.Length > 0)
{
inFilePath = args[0];
}
// マスクかけるファイル名
if (args.Length > 1)
{
inImagePath = args[1];
}
// 出力ファイル名
if (args.Length > 2)
{
outFilePath = args[2];
}
try
{
using (PtlParamInput inputFile = new PtlParamInput(inFilePath)) // 入力ファイル
using (PtlParamInput inputImage = new PtlParamInput(inImagePath)) // マスクをかけるファイル
using (PtlParamOutput outputFile = new PtlParamOutput(outFilePath))
using (PtlPDFDocument doc = new PtlPDFDocument())
{
doc.load(inputFile);
using (PtlPages pages = doc.getPages())
{
// 入力PDFの1ページ目にマスクした画像を追加(1ページ目)
using (PtlPage page = pages.get(0))
using (PtlContent con = page.getContent())
{
// 画像の描画に使うパラメータクラス
using (PtlParamDrawImage paramDrawImage = new PtlParamDrawImage())
{
// 入力画像ストリームの設定
paramDrawImage.setImageStream(inputImage);
// 青色のステンシルマスクにする
using (PtlColorDeviceRGB color = new PtlColorDeviceRGB(0.0f, 0.0f, 1.0f))
{
paramDrawImage.setMaskColor(color, PtlParamDrawImage.MASK_TYPE.MASK_STENCIL);
}
PtlSize size = page.getSize();
PtlRect rect = new PtlRect(0, 0, size.getWidth(), size.getHeight());
con.drawImage(rect, PtlContent.ALIGN.ALIGN_CENTER, paramDrawImage);
}
}
// マスクした画像をPDFとしてページの末尾に追加(2ページ目)
// 画像のページ作成に使うパラメータクラス
using (PtlParamImagePage paramImagePage = new PtlParamImagePage())
{
// 画像の描画に使うパラメータクラス
using (PtlParamDrawImage paramDrawImage = new PtlParamDrawImage())
{
// 入力画像ストリームの設定
paramDrawImage.setImageStream(inputImage);
// 青色のステンシルマスクにする
using (PtlColorDeviceRGB color = new PtlColorDeviceRGB(0.0f, 0.0f, 1.0f))
{
paramDrawImage.setMaskColor(color, PtlParamDrawImage.MASK_TYPE.MASK_STENCIL);
}
// ページに挿入する画像パラメーターの設定。
paramImagePage.setImage(paramDrawImage);
}
// 用紙タイプの設定 PAPER_IMAGE_SIZE /* 画像サイズに合わせる */
paramImagePage.setPaperType(PtlParamImagePage.PAPER_TYPE.PAPER_IMAGE_SIZE);
// ページの追加
pages.append(paramImagePage);
}
}
// ファイルに保存します。
doc.save(outputFile);
}
}
catch (PtlException pex)
{
Console.WriteLine(pex.getErrorCode() + " : " + pex.getErrorMessageJP());
pex.Dispose();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

