PDFiumPas 文档

AttachmentType 属性

此 API 条目保留标识符、签名、代码块和 PDF 术语的原始形式。
组件: TPdf  ·  单元: PDFium
返回指定零基索引处嵌入文件的已注册 MIME / 子类型字符串。该值取自 PDF 第 7.11.3 节所定义的文件规范字典中的 /Subtype 条目

语法

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

说明

PDF 文件规范字典可以包含一个可选的 /Subtype 名称,用来编码嵌入负载的 IANA MIME 类型(例如 application#2Fpdfimage#2Fpngtext#2Fcsv)。PDFiumPas 会解码 PDF 十六进制转义(把 #2F 还原为 /),并将该值暴露为普通 Unicode 字符串,例如 "application/pdf""image/png"

使用此属性来决定如何分发提取出的字节流,例如在另一个 TPdf 实例中内联打开 application/pdf 附件,将图像发送给 TImage,或者通过保存对话框保存其他内容。当作者没有记录子类型时,此属性返回空字符串;这时应改为对 AttachmentName 进行扩展名判断

此属性为只读。MIME 条目在 PDFium 中于附件创建时就已固定,无法就地更改;如果必须重写子类型,请重新创建该槽位

参数

IndexInteger. Zero-based attachment slot. Must satisfy 0 <= Index < AttachmentCount. Out-of-range indexes return an empty string.

备注

示例

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;

另请参阅

Attachment, AttachmentCount, AttachmentName, CreateAttachment, DeleteAttachment