4D Write Pro: 添付ファイル付きPDFへの書き出し!

ご存知のように、4D 20 R3以降、4D Write Pro は PDF/A2 と PDF/A3 (ブログ記事) フォーマットで書き出すことができます。署名を除けば、この 2つのフォーマットの主な違いは、PDF/A3 フォーマットには添付ファイルを含められることです。4D 20 R4 では、4D Write Pro の新しい書き出しオプションのおかげで、エクスポート時にファイルを添付することが可能になりました!

アーカイブの可能性を拡張

このブログ記事で説明したように、PDF/A署名はこの種の文書がこの先何十年も読み取れることを意味し、保証します。
PDF/A3フォーマットでは、あらゆるタイプの添付ファイル (Word、Excel、PDF、Photoshop など) を PDF/A3 内に挿入することができます。
その利点は、特定の案件に関わるすべての情報を 1の文書に保存できることです。

法律、技術、医療、会計、セキュリティ、建設、公共事業など、関心のある分野が何であれ、添付ファイルを含む文書をアーカイブする必要があるのなら、お探しのフォーマットは PDF/A3 です!

1つ以上の添付ファイル

PDF/A3規格では、添付ファイルを可能なかぎり挿入することができます。これが、新しい書き出しオプションである .filesコレクション型である理由です。

このコレクションの各要素は、いくつかの単純なプロパティを格納するオブジェクトで、そのうちのいくつかは任意です。

最初の、そして最も明快なのは、4D.File 型の .file プロパティで、PDF に含めるべき物理ファイルを指定します。しかし、このプロパティは、テキストまたは BLOB型の .data プロパティで置き換えることができます。これら 2つのプロパティは排他的です: .data プロパティが存在する場合、.file プロパティは無視されます。

.description は任意のプロパティです。.mimeType も同様で、通常は .file または .data のコンテンツから推測することができます。

最後に、.name は、PDFから抽出されるファイル名です。このプロパティは、.file の代わりに .data が指定されている場合にのみ必須です。そうでない場合にはデフォルトで、.file で定義された元のファイルと同じ名前になります。

簡単なコードサンプル

以下のコードは、2つの物理ファイルと、データとして送信された単純なテキストを挿入する方法を示しています。

$options:={}  // 空のオブジェクト
$options[wk files]:=[]  // 空のコレクション

// 1つ目のファイル (.file に基づく)
$fileInfo:={}
$fileInfo.description:="RTF formated text"
$fileInfo.file:=File(Folder(fk data folder).path+"Alpha.rtf")
$options[wk files].push($fileInfo)

// 2つ目のファイル (.file に基づく)
$fileInfo:={}
$fileInfo.description:="Png picture"
$fileInfo.file:=File(Folder(fk data folder).path+"Bravo.png")
$options[wk files].push($fileInfo)

// 3つ目のファイル (.data に基づく)
$fileInfo:={}
$fileInfo.name:="Charlie.txt"  // 抽出時に使用されます
$fileInfo.description:="data として渡された生テキスト"
$fileInfo.data:="これは、PDFに添付として含める生テキストです。'Charlie.txt'として抽出されます。"
$options[wk files].push($fileInfo)

WP EXPORT DOCUMENT($document; "exportWithEnclosures.pdf"; wk pdf; $options)

注記: wk files 属性を使うと、生成される PDF のバージョンは自動的に PDF/A3 になり wk pdfa version オプションがあっても無視されます。

実行後、PDF文書は次のようになります (Adobe Acrobat Reader™ を使用)。

まとめ

1つの PDF/A3 ファイル内に文書を添付するということは、この規格で可能なことをフルに活用できるということです。しかし、それだけではありません! まもなく、添付ファイルの最初のファイルとして XML文書を挿入することで、電子インボイスを作成することも可能になります! ご期待ください!

Roland Lannuzel
- プロダクトオーナー&4Dエキスパート -電子工学を学んだ後、産業用ITの分野で開発者兼コンサルタントとして、さまざまなデータベースやテクノロジーを使って顧客のためのソリューションを構築。80年代後半に4Dに惚れ込み、会計、請求書作成、メールシステムなどのビジネスアプリケーションの作成に4Dを使用してきました。現在も、新機能やデータベース開発ツールの定義など、4Dの未来を積極的に切り開いています。