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

PDF Tool APIサンプルコード:ファイルの添付

機能イメージ

PDFファイルに指定したファイルを添付します。

概要

サンプルコードの概要

PDFファイルに指定したファイルを添付します。

  • PtlEmbeddedFile: PDFの添付ファイルを表現したクラス。
  • PtlEmbeddedFile.setFileName(java.lang.String filename): 添付ファイル名を設定。
  • PtlEmbeddedFile.readFile(PtlParamInput inParam): 添付するファイルの読み込み。添付する対象ファイルをPtlEmbeddedFileに読み込みます。
  • PtlEmbeddedFiles.append(PtlEmbeddedFile emfile): 添付ファイルをコンテナに追加。

サンプルコード

/*
	Antenna House PDF Tool API V7.0
	C++ Interface sample program

	概要:ファイルの添付

	Copyright 2013-2021 Antenna House, Inc.
*/

#include < PdfTk.h >
#include < stdio.h >

using namespace PdfTk;

int main(int argc, char* argv[])
{
	if (argc < 4) {
		printf("usage: AppendEmbeddedFile.exe in-pdf-file out-pdf-file embedded-file\n");
		return 1;
	}
	try
	{
		PtlParamInput input(argv[1]);
		PtlParamOutput output(argv[2]);
		PtlParamString embeddedfilename(argv[3]);

		PtlPDFDocument doc;

		// PDFファイルをロードします。
		doc.load(input);

		// 添付ファイルコンテナの取得
		PtlEmbeddedFiles& embeddedfiles = doc.getEmbeddedFiles();

		// 添付ファイル数の取得
		printf("追加前の添付ファイル数 : %d\n", embeddedfiles.getCount());

		// PDFの添付ファイル
		PtlEmbeddedFile embeddedfile;

		// 添付ファイル名の設定
		embeddedfile.setFileName(embeddedfilename);

		// 添付するファイルの読み込み
		PtlParamInput inputEmbed(embeddedfilename);
		embeddedfile.readFile(inputEmbed);

		// 添付ファイルの追加
		embeddedfiles.append(embeddedfile);

		// 添付ファイル数の取得
		printf("追加後の添付ファイル数 : %d\n", embeddedfiles.getCount());

		// ファイルに保存します。
		doc.save(output);

		printf("完了!\n");
	}
	catch (const PtlException &e)
	{
		fprintf(stderr, "Error code : %d\n %s\n", e.getErrorCode(), e.getErrorMessage().c_str());
		return 1;
	}	
	return 0;
}


            
/*
    Antenna House PDF Tool API V7.0
    Java Interface sample program

    概要:ファイルの添付

    Copyright 2015-2021 Antenna House, Inc.
*/

package Sample;

import jp.co.antenna.ptl.*;

public class AppendEmbeddedFile {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length < 3)
        {
            System.out.println("usage: java AppendEmbeddedFile in-pdf-file out-pdf-file embedded-file");
            return;
        }

        try (PtlParamInput inputFile = new PtlParamInput(args[0]);
             PtlParamOutput outputFile = new PtlParamOutput(args[1]);
             PtlPDFDocument doc = new PtlPDFDocument())
        {
            String embeddedfilename = args[2];

            // PDFファイルをロード
            doc.load(inputFile);
            
            // 添付ファイルコンテナの取得
            try (PtlEmbeddedFiles embeddedfiles = doc.getEmbeddedFiles())
            {
                // 添付ファイル数の取得
                System.out.println("追加前の添付ファイル数 : " + embeddedfiles.getCount());

                // PDFの添付ファイル
                try (PtlEmbeddedFile embeddedfile = new PtlEmbeddedFile();
                     PtlParamInput inputEmbed = new PtlParamInput(embeddedfilename))
                {
                    // 添付ファイル名の設定
                    embeddedfile.setFileName(embeddedfilename);

                    // 添付するファイルの読み込み
                    embeddedfile.readFile(inputEmbed);

                    // 添付ファイルの追加
                    embeddedfiles.append(embeddedfile);

                    // 添付ファイル数の取得
                    System.out.println("追加後の添付ファイル数 : " + embeddedfiles.getCount());

                }
            }

            // ファイルに保存します。
            doc.save(outputFile);
        }
        catch (PtlException pex) {
            System.out.println("PtlException : ErrorCode = " + pex.getErrorCode() + "\n  " + pex.getErrorMessage());
        }
        catch (Exception ex) {
            System.out.println(ex.getMessage());
            ex.printStackTrace();
        }
        catch (Error ex) {
            System.out.println(ex.getMessage());
            ex.printStackTrace();
        }
        finally {
            System.out.println("-- 完了 --");
        }
    }
}

            
/*
	Antenna House PDF Tool API V7.0
	.NET Interface sample program

	概要:ファイルの添付

	Copyright 2013-2021 Antenna House, Inc.
*/

using System;
using PdfTkNet;

namespace AppendEmbeddedFile
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length < 3)
            {
                Console.WriteLine("usage: AppendEmbeddedFile.exe in-pdf-file out-pdf-file embedded-file");
                return;
            }

            try
            {
                using (PtlParamInput inputFile = new PtlParamInput(args[0]))
                using (PtlParamOutput outputFile = new PtlParamOutput(args[1]))
                using (PtlPDFDocument doc = new PtlPDFDocument())
                {
                    string embeddedfilename = args[2];

                    // PDFファイルをロードします。
                    doc.load(inputFile);

                    // 添付ファイルコンテナの取得
                    using (PtlEmbeddedFiles embeddedfiles = doc.getEmbeddedFiles())
                    {
                        // 添付ファイル数の取得
                        Console.WriteLine("追加前の添付ファイル数 : " + embeddedfiles.getCount());

                        // PDFの添付ファイル
                        using (PtlEmbeddedFile embeddedfile = new PtlEmbeddedFile())
                        {
                            // 添付ファイル名の設定
                            embeddedfile.setFileName(embeddedfilename);

                            // 添付するファイルの読み込み
                            using (PtlParamInput input = new PtlParamInput(embeddedfilename))
                            {
                                embeddedfile.readFile(input);
                            }
                            // 添付ファイルの追加
                            embeddedfiles.append(embeddedfile);
                        }

                        // 添付ファイル数の取得
                        Console.WriteLine("追加後の添付ファイル数 : " + embeddedfiles.getCount());
                    }
                    // ファイルに保存します。
                    doc.save(outputFile);
                }
            }
            catch (PtlException pex)
            {
                Console.WriteLine(pex.getErrorCode() + " : " + pex.getErrorMessageJP());
                pex.Dispose();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.WriteLine("-- 完了 --");
            }
        }
    }
}

            
AHPDFToolCmd70.exe -addEmbeddedFile C:\in\夏目漱石.txt -d C:\in\in.pdf -o C:\sav\outAppendEmbeddedFile.pdf

            

サンプルコードのダウンロードはこちら

実行例

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

AppendEmbeddedFile.exe C:\in\in.pdf C:\sav\outAppendEmbeddedFile.pdf C:\in\夏目漱石.txt
追加前の添付ファイル数 : 0
追加後の添付ファイル数 : 1
完了!
java -jar AppendEmbeddedFile.jar C:\in\in.pdf C:\sav\outAppendEmbeddedFile.pdf C:\in\夏目漱石.txt
追加前の添付ファイル数 : 0
追加後の添付ファイル数 : 1
-- 完了 --
AppendEmbeddedFile.exe C:\in\in.pdf C:\sav\outAppendEmbeddedFile.pdf C:\in\夏目漱石.txt
追加前の添付ファイル数 : 0
追加後の添付ファイル数 : 1
-- 完了 --
AHPDFToolCmd70.exe -addEmbeddedFile C:\in\ 夏目漱石.txt -d C:\in\in.pdf -o C:\sav\outAppendEmbeddedFile.pdf
 use time 0.050000s

出力結果イメージ

出力されたPDFには指定したファイルが添付されている。

出力イメージ

※出力結果ファイルは添付ファイルの表示に対応したPDFビューアで表示してください。

サンプルコードのダウンロード

サンプルコード

サンプルで使用した入出力PDF