EmbedFileA

文件屬性

描述

結尾的 A 表示 ANSI(char)DLL 進入點,ActiveX/COM 介面僅公開 Unicode 形式。其行為與 EmbedFile 相同,字串引數會依據目前的 SetAnsiMode 字碼頁進行解譯

把外部檔案內嵌進 PDF 並登錄為文件層級附件。Acrobat 與其他閱讀器會在 Attachments 側邊面板顯示文件層級附件。此呼叫是 AddEmbeddedFile 加 AddToFileList 的簡寫:檔案以內嵌檔案串流儲存,並以提供的標題在目錄的 /Names /EmbeddedFiles 名稱樹加入一個參照它的條目。

PDF 版本行為:內嵌檔案串流與檔案規格字典需要 PDF 1.3;這個便捷呼叫使用的文件層級 /Names /EmbeddedFiles 名稱樹則需要 PDF 1.4。目前文件版本較低且儲存版本未鎖定時,EmbedFile 會自動把文件提升到 PDF 1.4,並在 AutoBumpedFeatures 記下 /EmbeddedFiles name tree;呼叫端鎖定了較低的儲存版本時,相容性閘門會以 LastErrorCode 602 拒絕儲存。

語法

Delphi

Function DLEmbedFileA(InstanceID: Integer; Title, FileName, MIMEType: PAnsiChar): Integer;

DLL

int DLEmbedFileA(int InstanceID, const char * Title, const char * FileName, const char * MIMEType);

參數

Title閱讀器附件面板顯示的顯示名稱,也是 /EmbeddedFiles 名稱樹中的鍵。文件內必須唯一;已有同名檔案時呼叫會失敗。
FileName磁碟上來源檔案的完整路徑。此檔案的位元組會複製進 PDF。
MIMEType識別檔案內容的 MIME 類型(例如 image/jpeg、text/csv、application/xml)。若 MIME 類型未知,請傳入空字串;檢視器會退回使用副檔名

傳回值

0無法內嵌檔案 — 來源檔不存在、標題已被使用,或未開啟任何文件。
1檔案已內嵌,並列在文件附件名稱樹中。

備註

此呼叫只建立文件層級附件。想在特定頁面上畫出指向內嵌檔案、可點擊的迴紋針註解,請改用 AddEmbeddedFile 之後接 AddFileAttachment(或 AddLinkToEmbeddedFile)。

PDF/A compatibility:

當 SetPDFUAMode 啟用時,程式庫會對任何沒有明確關聯的內嵌檔案自動寫入 AFRelationship=Unspecified;要滿足 ISO 14289-1 §7.11,可用 SetEmbeddedFileAFRelationship 覆寫。

範例

// Embed a CSV of the source data as a document attachment
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.PrintText(50, 750, 'Sales summary, Q1 2026');

if PDF.EmbedFile('Source data — sales-Q1.csv', 'C:\reports\sales-Q1.csv', 'text/csv') = 1 then
  WriteLn('Attachment added')
else
  WriteLn('Failed to embed file');

PDF.SaveToFile('Q1-Summary.pdf');

另見

AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode