EmbedFileA
Propriétés du document
Description
Le A final indique le point d’entrée ANSI (char) de la DLL ; la surface ActiveX/COM n’expose que la forme Unicode. Le comportement est identique à celui de EmbedFile et les arguments de chaîne sont interprétés selon la page de codes SetAnsiMode actuelle
Incorpore un fichier externe dans le PDF et l’enregistre comme pièce jointe de document, affichée dans le panneau Attachments. L’appel abrège AddEmbeddedFile suivi de AddToFileList : un flux incorporé est stocké et une entrée de référence ajoutée à l’arbre /Names /EmbeddedFiles du catalogue sous le titre fourni
Comportement selon la version PDF : les flux de fichiers incorporés et les dictionnaires de spécification de fichier exigent PDF 1.3, tandis que l’arbre de noms /Names /EmbeddedFiles au niveau du document utilisé par cet appel pratique exige PDF 1.4. Si la version courante est inférieure et que la version d’enregistrement n’est pas verrouillée, EmbedFile élève automatiquement le document à PDF 1.4 et consigne /EmbeddedFiles name tree dans AutoBumpedFeatures. Si l’appelant verrouille une version inférieure, le contrôle de compatibilité refuse l’enregistrement avec 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);
Paramètres
| Title | Nom d’affichage présenté dans le panneau des pièces jointes du lecteur et utilisé comme clé dans l’arbre de noms /EmbeddedFiles. Il doit être unique dans le document ; si un fichier portant déjà ce titre existe, l’appel échoue |
|---|---|
| FileName | Le chemin complet du fichier source sur le disque Les octets de ce fichier sont copiés dans le PDF |
| MIMEType | Type MIME identifiant le contenu du fichier (par exemple image/jpeg, text/csv, application/xml). Transmettez une chaîne vide lorsque le type MIME est inconnu ; les visionneuses se rabattront sur l’extension du fichier |
Valeurs de retour
| 0 | Le fichier n'a pas pu être incorporé — le fichier source est absent, le titre est déjà utilisé ou aucun document n'est ouvert |
|---|---|
| 1 | Le fichier a été incorporé et répertorié dans l’arbre de noms des pièces jointes du document |
Remarques
Cet appel crée seulement une pièce jointe au niveau du document. Pour tracer sur une page une annotation trombone cliquable pointant vers le fichier incorporé, utilisez plutôt AddEmbeddedFile suivi de AddFileAttachment, ou AddLinkToEmbeddedFile
Compatibilité PDF/A :
- PDF/A-1 et PDF/A-2, modes 1–4 de SetPDFAMode, interdisent les fichiers incorporés arbitraires. La garde PDF/A bloque
EmbedFiledans ces modes - PDF/A-3 (modes 5, 6 et 7) autorise les fichiers incorporés de tout type MIME. ISO 19005-3 exige également que chacun déclare sa relation au document par la clé
AFRelationship— définissez-la explicitement avec SetEmbeddedFileAFRelationship
Lorsque SetPDFUAMode est actif, la bibliothèque écrit automatiquement AFRelationship=Unspecified pour tout fichier incorporé sans relation explicite ; remplacez-la avec SetEmbeddedFileAFRelationship afin de satisfaire ISO 14289-1 §7.11
Exemple
// 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');Voir aussi
AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode