PDFium Delphi Component Docs

AttachmentType プロパティ

コンポーネント: TPdf  ·  ユニット: PDFium
指定した 0 基準インデックスの埋め込みファイルに対する登録済み MIME / subtype string を返します。値は、PDF 7.11.3 節で定義される file specification dictionary の /Subtype entry から取得されます

Syntax

property AttachmentType[Index: Integer]: WString; // read only

Description

PDF の file specification 辞書は、埋め込み payload の IANA MIME タイプを符号化した省略可能な /Subtype 名を持ち得ます(例: application#2Fpdf、image#2Fpng、text#2Fcsv)。PDFium Delphi Component は PDF の 16 進エスケープ(#2F を / へ)をデコードし、"application/pdf" や "image/png" のような素の Unicode 文字列として公開します

取り出したバイトをどう振り分けるかの判定に使います。例えば application/pdf の添付は別の TPdf インスタンスでインラインに開き、画像は TImage へ、それ以外は保存ダイアログで書き出す、といった具合です。作成者が subtype を記録していなければ空文字列が返るので、その場合は AttachmentName の拡張子での判定にフォールバックしてください

このプロパティは読み取り専用です。MIME entry は添付の作成時に PDFium 内部で固定され、その場では変更できません。subtype を書き換えたい場合は slot を作り直してください

Parameters

IndexInteger。添付の 0 基準 slot。0 <= Index < AttachmentCount を満たす必要があります。範囲外のインデックスは空文字列を返します

Remarks

Example

var
  I: Integer;
  Mime, Name: string;
begin
  Pdf1.LoadFromFile('mixed-attachments.pdf');
  for I := 0 to Pdf1.AttachmentCount - 1 do
  begin
    Name := Pdf1.AttachmentName[I];
    Mime := LowerCase(Pdf1.AttachmentType[I]);
    if Mime = 'application/pdf' then
      Memo1.Lines.Add('PDF: ' + Name)
    else if StartsText('image/', Mime) then
      Memo1.Lines.Add('Image: ' + Name)
    else
      Memo1.Lines.Add(Format('%s [%s]', [Name, Mime]));
  end;
end;

See Also

Attachment, AttachmentCount, AttachmentName, CreateAttachment, DeleteAttachment