EmbedFileA
Właściwości dokumentu
Opis
Końcowa litera A oznacza punkt wejścia DLL ANSI (char); powierzchnia ActiveX/COM udostępnia wyłącznie postać Unicode. Zachowanie jest identyczne jak w EmbedFile, a argumenty ciągów są interpretowane przy użyciu bieżącej strony kodowej SetAnsiMode
Osadza plik zewnętrzny wewnątrz PDF i rejestruje go jako załącznik na poziomie dokumentu. Acrobat i inne czytniki pokazują załączniki dokumentu w bocznym panelu załączników. Wywołanie jest skrótem dla AddEmbeddedFile, po którym następuje AddToFileList: plik jest zapisywany jako strumień pliku osadzonego, a odwołujący się do niego wpis zostaje dodany pod podanym tytułem do drzewa nazw /Names /EmbeddedFiles katalogu
Zachowanie wersji PDF: strumienie osadzonych plików i słowniki specyfikacji plików wymagają PDF 1.3, natomiast drzewo nazw /Names /EmbeddedFiles na poziomie dokumentu używane przez to wywołanie pomocnicze wymaga PDF 1.4. Jeśli bieżąca wersja dokumentu jest niższa, a wersja zapisu nie jest zablokowana, EmbedFile automatycznie podnosi dokument do PDF 1.4 i zapisuje /EmbeddedFiles name tree w AutoBumpedFeatures. Jeśli kod wywołujący zablokuje niższą wersję zapisu, kontrola zgodności odrzuci zapis z LastErrorCode 602
Składnia
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 | Nazwa wyświetlana w panelu załączników czytnika i używana jako klucz w drzewie nazw /EmbeddedFiles. Musi być unikatowa w dokumencie; jeśli plik o tym tytule już istnieje, wywołanie kończy się niepowodzeniem |
|---|---|
| FileName | Pełna ścieżka do pliku źródłowego na dysku. Bajty tego pliku są kopiowane do PDF |
| MIMEType | Typ MIME identyfikujący zawartość pliku, na przykład image/jpeg, text/csv lub application/xml. Podaj pusty ciąg, gdy typ MIME jest nieznany; przeglądarki użyją rozszerzenia pliku |
Wartości zwracane
| 0 | Nie można osadzić pliku — plik źródłowy nie istnieje, tytuł jest już używany albo żaden dokument nie jest otwarty |
|---|---|
| 1 | Plik został osadzony i wymieniony w drzewie nazw załączników dokumentu |
Uwagi
To wywołanie tworzy tylko załącznik na poziomie dokumentu. Aby narysować na określonej stronie klikalną adnotację spinacza wskazującą osadzony plik, użyj zamiast tego AddEmbeddedFile, a następnie AddFileAttachment lub AddLinkToEmbeddedFile
Zgodność z PDF/A:
- PDF/A-1 i PDF/A-2 (tryby 1–4 funkcji SetPDFAMode) zabraniają osadzania dowolnych plików. Zabezpieczenie PDF/A blokuje
EmbedFilew tych trybach - PDF/A-3 (tryby 5, 6 i 7) zezwala na osadzanie plików dowolnego typu MIME. ISO 19005-3 wymaga również, aby każdy osadzony plik deklarował swoją relację z dokumentem za pomocą klucza
AFRelationship— ustaw ją jawnie funkcją SetEmbeddedFileAFRelationship
Gdy aktywne jest SetPDFUAMode, biblioteka automatycznie zapisuje AFRelationship=Unspecified dla każdego osadzonego pliku bez jawnej relacji; zastąp ją za pomocą SetEmbeddedFileAFRelationship, aby spełnić wymagania ISO 14289-1 §7.11
Przykład
// 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');Zobacz również
AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode