/*
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;
}
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
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ビューアで表示してください。

