SetEmbeddedFileAFRelationshipA

PDF/UA и доступность

Описание

Завершающая A обозначает точку входа DLL типа ANSI (char); интерфейс ActiveX/COM предоставляет только форму Unicode. Поведение идентично SetEmbeddedFileAFRelationship, а строковые аргументы интерпретируются с использованием текущей кодовой страницы SetAnsiMode

Задаёт ключ AFRelationship в словаре спецификации файла для встроенного файла. Требуется по ISO 14289-1 (PDF/UA-1) §7.11, когда встроенные файлы входят в доступный документ PDF.

Синтаксис

Delphi

Function DLSetEmbeddedFileAFRelationshipA(InstanceID, Index: Integer; AFRelationship: PAnsiChar): Integer;

DLL

int DLSetEmbeddedFileAFRelationshipA(int InstanceID, int Index, const char * AFRelationship);

Параметры

IndexИндекс встроенного файла с нуля; допустимый диапазон от 0 до EmbeddedFileCount - 1
AFRelationshipСвязь встроенного файла с документом. Должно быть одно из следующих значений (с учетом регистра):

Source — встроенный файл является файлом-источником, из которого создан документ
Data — встроенный файл содержит данные, используемые документом
Alternative — встроенный файл является альтернативным представлением содержимого документа
Supplement — встроенный файл дополняет документ
Unspecified — связь не указана (по умолчанию при активном SetPDFUAMode)

Возвращаемое значение

Возвращает 1 в случае успеха; 0 — если индекс вне диапазона, значение AFRelationship не из пяти допустимых либо документ не открыт

Примечания

Когда активен SetPDFUAMode, PDF Library for Delphi автоматически выставляет AFRelationship = Unspecified любому встроенному файлу без этого ключа. Переопределить значение по умолчанию на более конкретную связь можно через SetEmbeddedFileAFRelationship до сохранения

Вызовите после добавления встроенного файла и до сохранения документа

Пример

// PDF/A-3 archive that embeds an XLSX as the document's source data
var
  FileID: Integer;
begin
  PDF.SetPDFAMode(5);              // PDF/A-3b — allows arbitrary embedded files
  PDF.NewDocument;
  PDF.AddStandardFont('Helvetica');
  PDF.AddPage;
  PDF.PrintText(50, 750, 'Quarterly Sales Report');

  FileID := PDF.AddEmbeddedFile(
    'sales-Q1.xlsx',
    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  PDF.AddFileAttachment('Source spreadsheet', FileID);

  // Mark the relationship: the spreadsheet is the source of the report
  PDF.SetEmbeddedFileAFRelationship(1, 'Source');

  PDF.SaveToFile('report-PDFA3b.pdf');
end;

См. также

SetPDFUAMode, SetPDFAMode, AddFileAttachment, AddEmbeddedFile, EmbedFile, SetEmbeddedFileStrProperty