EmbedFileA
Dokumenteigenschaften
Beschreibung
Das angehängte A bezeichnet den ANSI-DLL-Einstiegspunkt (char); die ActiveX/COM-Oberfläche stellt nur die Unicode-Form bereit. Das Verhalten ist mit EmbedFile identisch, und Zeichenfolgenargumente werden anhand der aktuellen SetAnsiMode-Codeseite interpretiert
Bettet eine externe Datei in das PDF ein und registriert sie als Anhang auf Dokumentebene. Acrobat und andere Reader zeigen Anhänge auf Dokumentebene in ihrer Seitenleiste für Anhänge an. Der Aufruf ist eine Kurzform für AddEmbeddedFile gefolgt von AddToFileList: Die Datei wird als Stream für eingebettete Dateien gespeichert und im Namensbaum /Names /EmbeddedFiles des Catalog unter dem angegebenen Titel ein auf sie verweisender Eintrag hinzugefügt.
Verhalten der PDF-Version: Streams eingebetteter Dateien und Dateispezifikationswörterbücher erfordern PDF 1.3, während der von diesem Komfortaufruf verwendete Namensbaum /Names /EmbeddedFiles auf Dokumentebene PDF 1.4 erfordert. Ist die aktuelle Dokumentversion niedriger und die Speicherversion nicht gesperrt, hebt EmbedFile das Dokument automatisch auf PDF 1.4 an und trägt /EmbeddedFiles name tree in AutoBumpedFeatures ein. Sperrt der Aufrufer eine niedrigere Speicherversion, lehnt die Kompatibilitätsprüfung das Speichern mit LastErrorCode 602 ab
Syntax
Delphi
Function DLEmbedFileA(InstanceID: Integer; Title, FileName, MIMEType: PAnsiChar): Integer;
DLL
int DLEmbedFileA(int InstanceID, const char * Title, const char * FileName, const char * MIMEType);
Parameter
| Title | Der im Anlagenbereich des Readers angezeigte Name, der zugleich als Schlüssel im Namensbaum /EmbeddedFiles verwendet wird. Er muss innerhalb des Dokuments eindeutig sein; wenn bereits eine Datei mit diesem Titel vorhanden ist, schlägt der Aufruf fehl |
|---|---|
| FileName | Der vollständige Pfad der Quelldatei auf dem Datenträger. Die Bytes dieser Datei werden in die PDF-Datei kopiert |
| MIMEType | MIME-Typ, der den Dateiinhalt bezeichnet, beispielsweise image/jpeg, text/csv oder application/xml. Wenn der MIME-Typ unbekannt ist, eine leere Zeichenfolge übergeben; Viewer greifen dann auf die Dateierweiterung zurück. |
Rückgabewerte
| 0 | Die Datei konnte nicht eingebettet werden — die Quelldatei fehlt, der Titel wird bereits verwendet oder kein Dokument ist geöffnet |
|---|---|
| 1 | Die Datei wurde eingebettet und im Namensbaum der Dokumentanhänge aufgeführt. |
Anmerkungen
Dieser Aufruf erstellt nur einen Anhang auf Dokumentebene. Um auf einer bestimmten Seite eine anklickbare Büroklammer-Anmerkung zu zeichnen, die auf die eingebettete Datei verweist, verwenden Sie stattdessen AddEmbeddedFile gefolgt von AddFileAttachment (oder AddLinkToEmbeddedFile).
PDF/A-Kompatibilität:
- PDF/A-1 und PDF/A-2 (Modi 1–4 von SetPDFAMode) verbieten beliebige eingebettete Dateien. Die PDF/A-Schutzprüfung blockiert
EmbedFilein diesen Modi. - PDF/A-3 in den Modi 5, 6 und 7 erlaubt eingebettete Dateien beliebigen MIME-Typs. ISO 19005-3 verlangt außerdem, dass jede eingebettete Datei ihre Beziehung zum Dokument über den Schlüssel
AFRelationshipdeklariert — legen Sie ihn explizit mit SetEmbeddedFileAFRelationship fest
Wenn SetPDFUAMode aktiv ist, schreibt die Bibliothek für jede eingebettete Datei ohne explizite Beziehung automatisch AFRelationship=Unspecified; überschreiben Sie dies mit SetEmbeddedFileAFRelationship, um ISO 14289-1 §7.11 zu erfüllen
Beispiel
// 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');Siehe auch
AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode