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