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

PDF Tool APIサンプル集:明示マスクの例

明示マスクを追加したPDFを出力する
コンソールアプリケーションです

概要

サンプルコードの概要

引数に
1.PDF出力する元ファイル(入力ファイル)パス
2.マスクをかける画像のパス
3.マスクに使用する画像のパス
4.PDFの出力先となるファイルパス
を指定して明示マスクを追加したPDFを出力する
コンソールアプリケーションです

1ページ目には2の画像に3の画像でマスクをかけた画像を追加します
さらに2の画像に3の画像でマスクをかけた画像をPDFに変換して
ファイルのページの末尾に追加します

下の出力結果イメージでは
1P目は黄色いページにマスクした画像を追加してあり
2P目はマスクした画像のみとなっています

コマンドラインでの実行例

sample.exe C:\test\samplePdf2.pdf C:\test\sampleJpeg.jpg c:\test\test_10.gif c:\sav\out.pdf

ダウンロード

出力結果イメージ

出力結果イメージ

サンプルコード

         /*
            Antenna House PDF Tool API 7.0
            C# Interface sample program
         
            概要:画像ファイルのPDF化(明示マスク)
         
            Copyright 2022 Antenna House,Inc.
         */
         using System;
         using PdfTkNet;
         
         namespace sample10cs
         {
             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\sampleJpeg.jpg";     // マスクをかけるファイル(風景写真JPG)
                     string inMaskPath = @"C:\test\test_10.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)
                     {
                         inMaskPath = args[2];
                     }
         
                     // 出力ファイル名
                     if (args.Length > 3)
                     {
                         outFilePath = args[3];
                     }
         
                     try
                     {
                         using (PtlParamInput inputFile = new PtlParamInput(inFilePath))     // 入力ファイル
                         using (PtlParamInput inputImage = new PtlParamInput(inImagePath))   // マスクをかけるファイル
                         using (PtlParamInput inputMask = new PtlParamInput(inMaskPath))     // マスク用ファイル
                         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);
         
                                         // 明示マスク
                                         paramDrawImage.setMaskImageStream(inputMask, PtlParamDrawImage.MASK_TYPE.MASK_EXPLICIT);
         
                                         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);
         
                                         // 明示マスク
                                         paramDrawImage.setMaskImageStream(inputMask, PtlParamDrawImage.MASK_TYPE.MASK_EXPLICIT);
         
                                         // ページに挿入する画像パラメーターの設定。
                                         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);
                     }
                 }
             }
         }