AddEmbeddedFile

Propriedades do documento

Descrição

Embute um arquivo dentro do PDF como um embedded file stream, mas por si só não registra o arquivo em nenhuma lista do catálogo nem desenha uma anotação clicável. A função retorna um handle EmbeddedFileID que pode ser passado para AddFileAttachment (para anexar um ícone de clipe de papel em uma página) ou AddLinkToEmbeddedFile (para criar uma zona ativa clicável que abre o arquivo). Para embutir o arquivo e listá-lo como anexo de nível de documento em uma única chamada, use EmbedFile.

Sintaxe

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);

Parâmetros

FileNameO caminho completo e o nome do arquivo de origem no disco. Seus bytes são copiados literalmente para um embedded file stream do PDF.
MIMETypeO tipo MIME do arquivo, por exemplo image/jpeg ou application/xml. Pode ser uma string vazia quando o tipo MIME é desconhecido.

Valores retornados

0O arquivo não pôde ser aberto ou nenhum documento está ativo.
Non-zeroUm handle EmbeddedFileID para uso com AddFileAttachment, AddLinkToEmbeddedFile ou SetEmbeddedFileStrProperty.

Observações

Comportamento de versão do PDF: embedded file streams e dicionários de especificação de arquivo exigem PDF 1.3. Se a versão atual do documento for menor e a versão de salvamento não estiver travada, AddEmbeddedFile eleva automaticamente o documento para PDF 1.3. Chamadas que registram o arquivo como anexo de nível de documento podem exigir versão maior: AddFileAttachment e EmbedFile usam a name tree /Names /EmbeddedFiles do PDF 1.4, e AddLinkToEmbeddedFile usa a opacidade/transparência de aparência de anotação do PDF 1.4.

Um arquivo embutido apenas com AddEmbeddedFile faz parte do PDF, mas fica invisível para a UI do reader até ser registrado na lista de anexos do documento ou referenciado por uma anotação de página. Reutilizar o mesmo EmbeddedFileID com AddFileAttachment e AddLinkToEmbeddedFile permite expor um único arquivo embutido tanto na UI de nível de documento quanto na de página, sem duplicar os bytes embutidos.

PDF/A compatibility:

Exemplo

// 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;

Veja também

AddFileAttachment, AddLinkToEmbeddedFile, EmbedFile, SetEmbeddedFileAFRelationship, SetEmbeddedFileStrProperty, EmbeddedFileCount