property AttachmentType[Index: Integer]: WString; // read only
PDF 文件规范字典可以包含一个可选的 /Subtype 名称,用来编码嵌入负载的 IANA MIME 类型(例如 application#2Fpdf、image#2Fpng、text#2Fcsv)。PDFiumPas 会解码 PDF 十六进制转义(把 #2F 还原为 /),并将该值暴露为普通 Unicode 字符串,例如 "application/pdf" 或 "image/png"
使用此属性来决定如何分发提取出的字节流,例如在另一个 TPdf 实例中内联打开 application/pdf 附件,将图像发送给 TImage,或者通过保存对话框保存其他内容。当作者没有记录子类型时,此属性返回空字符串;这时应改为对 AttachmentName 进行扩展名判断
此属性为只读。MIME 条目在 PDFium 中于附件创建时就已固定,无法就地更改;如果必须重写子类型,请重新创建该槽位
| Index | Integer. Zero-based attachment slot. Must satisfy 0 <= Index < AttachmentCount. Out-of-range indexes return an empty string. |
/Subtype。不要把空类型当作错误
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;