EmbedFileA
Vlastnosti dokumentu
Popis
Koncové A označuje vstupní bod ANSI (char) knihovny DLL; rozhraní ActiveX/COM zpřístupňuje pouze formu Unicode. Chování je shodné s EmbedFile a řetězcové argumenty jsou interpretovány pomocí aktuální znakové stránky nastavené funkcí SetAnsiMode
Vloží externí soubor do PDF a zaregistruje ho jako přílohu na úrovni dokumentu. Acrobat a další čtečky zobrazují přílohy na úrovni dokumentu v bočním panelu příloh. Volání je zkratkou za AddEmbeddedFile následovaným AddToFileList: soubor se uloží jako stream vloženého souboru a pod zadaným titulkem se do stromu názvů Catalog /Names /EmbeddedFiles přidá položka na něj odkazující
Chování verzí PDF: streamy vložených souborů a slovníky specifikace souboru vyžadují PDF 1.3, zatímco strom názvů /Names /EmbeddedFiles na úrovni dokumentu používaný tímto praktickým voláním vyžaduje PDF 1.4. Je-li aktuální verze dokumentu nižší a verze ukládání není uzamčena, EmbedFile automaticky zvýší dokument na PDF 1.4 a zaznamená strom názvů /EmbeddedFiles do AutoBumpedFeatures. Uzamkne-li volající nižší verzi ukládání, kompatibilita uložení zamítne s LastErrorCode 602
Syntaxe
Delphi
Function DLEmbedFileA(InstanceID: Integer; Title, FileName, MIMEType: PAnsiChar): Integer;
DLL
int DLEmbedFileA(int InstanceID, const char * Title, const char * FileName, const char * MIMEType);
Parametry
| Title | Zobrazovaný název v panelu příloh čtečky, používaný jako klíč ve stromu názvů /EmbeddedFiles. Musí být v dokumentu unikátní; existuje-li soubor s tímto titulkem už dřív, volání selže |
|---|---|
| FileName | Úplná cesta ke zdrojovému souboru na disku. Bajty tohoto souboru se zkopírují do PDF |
| MIMEType | Typ MIME identifikující obsah souboru (například image/jpeg, text/csv, application/xml). Pokud typ MIME není známý, předejte prázdný řetězec; prohlížeče použijí příponu souboru |
Návratové hodnoty
| 0 | The file could not be embedded — the source file is missing, the title is already used, or no document is open. |
|---|---|
| 1 | Soubor se vložil a zapsal do stromu názvů příloh dokumentu |
Poznámky
Toto volání vytvoří jen přílohu na úrovni dokumentu. Chcete-li na konkrétní stránce nakreslit klikatelnou anotaci s kancelářskou sponkou ukazující na vložený soubor, použijte raději AddEmbeddedFile následované AddFileAttachment (nebo AddLinkToEmbeddedFile)
PDF/A compatibility:
- PDF/A-1, PDF/A-2 (modes 1–4 of SetPDFAMode) forbid arbitrary embedded files. The PDF/A guard blocks
EmbedFilein those modes. - PDF/A-3 (modes 5, 6, and 7) permits embedded files of any MIME type. ISO 19005-3 also requires every embedded file to declare its relationship to the document via the
AFRelationshipkey — set it explicitly with SetEmbeddedFileAFRelationship.
When SetPDFUAMode is active the library writes AFRelationship=Unspecified automatically for any embedded file that has no explicit relationship; override it with SetEmbeddedFileAFRelationship to satisfy ISO 14289-1 §7.11.
Příklad
// 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');Viz také
AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode