AddEmbeddedFile
Свойства документа
Описание
Встраивает файл в PDF как поток встроенного файла, но сам по себе не регистрирует его ни в одном каталоге документа и не рисует кликабельную аннотацию. Функция возвращает дескриптор EmbeddedFileID, который передаётся AddFileAttachment (скрепка на странице) или AddLinkToEmbeddedFile (кликабельная активная область, открывающая файл). Чтобы встроить файл и сразу внести его в список вложений документа одним вызовом, используйте EmbedFile
Синтаксис
Delphi
Function TPDFlib.AddEmbeddedFile(Const FileName, MIMEType: WideString): Integer;
ActiveX
Function PDFlib::AddEmbeddedFile(FileName As String, MIMEType As String) As Long
DLL
int DLAddEmbeddedFile(int InstanceID, const wchar_t * FileName, const wchar_t * MIMEType);
Параметры
| FileName | Полный путь и имя исходного файла на диске; его байты дословно копируются в поток встроенного файла PDF |
|---|---|
| MIMEType | MIME-тип файла, например image/jpeg или application/xml; если тип неизвестен, может быть пустой строкой |
Возвращаемые значения
| 0 | Файл не удалось открыть либо активного документа нет |
|---|---|
| Non-zero | Дескриптор EmbeddedFileID для использования с AddFileAttachment, AddLinkToEmbeddedFile или SetEmbeddedFileStrProperty |
Примечания
Поведение версий PDF: потоки встроенных файлов и словари файловых спецификаций требуют PDF 1.3. Если версия документа ниже, а версия сохранения не зафиксирована, AddEmbeddedFile автоматически поднимает документ до PDF 1.3. Вызовы, регистрирующие файл как вложение уровня документа, могут требовать более высокой версии: AddFileAttachment и EmbedFile используют дерево имён /Names /EmbeddedFiles из PDF 1.4, а AddLinkToEmbeddedFile — прозрачность и внешний вид аннотаций из PDF 1.4
Файл, встроенный только через AddEmbeddedFile, является частью PDF, но невидим в интерфейсе читалки, пока не зарегистрирован в списке вложений документа или не упомянут аннотацией на странице. Повторное использование того же EmbeddedFileID с AddFileAttachment и AddLinkToEmbeddedFile открывает один встроенный файл и в документном, и в страничном интерфейсе без дублирования байтов
PDF/A compatibility:
- PDF/A-1, PDF/A-2 (режимы 1–4 SetPDFAMode) — встроенные файлы запрещены; вызов отклоняется.
- PDF/A-3 (режимы 5, 6 и 7 SetPDFAMode) — встроенные файлы любого MIME-типа разрешены. Задайте связь файла через SetEmbeddedFileAFRelationship перед сохранением.
Пример
// Expose the same embedded file through the document attachment list and a page annotation
var
FileID: Integer;
begin
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
FileID := PDF.AddEmbeddedFile('C:\reports\sales.csv', 'text/csv');
if FileID = 0 then Exit;
PDF.AddFileAttachment('Source data', FileID);
PDF.AddPage;
PDF.PrintText(50, 750, 'See attached source data');
PDF.AddLinkToEmbeddedFile(50, 720, 16, 16, FileID, 'Source data', 'Open source CSV', 4, 0);
PDF.SaveToFile('with-attachment.pdf');
end;См. также
AddFileAttachment, AddLinkToEmbeddedFile, EmbedFile, SetEmbeddedFileAFRelationship, SetEmbeddedFileStrProperty, EmbeddedFileCount