4D Write Pro: Exportar para PDF com anexos!

Como já sabe, desde 4D V20 R3, 4D Write Pro pode exportar nos formatos PDF/A2 e PDF/A3 (BLOG). Para além da assinatura, a principal diferença entre estes dois formatos é que o formato PDF/A3 pode incluir anexos. A boa notícia é que graças a uma nova opção de exportação em 4D Write Pro, é possível, com 4D V20 R4, ter anexos ao exportar!

Arquivamento com a potência de 10

A assinatura PDF/A significa e garante que um documento deste tipo será legível durante décadas, como explicado neste BLOG.
O formato PDF/A3 permite que anexos de qualquer tipo (Word, Excel, PDF, Photoshop, etc.) sejam inseridos dentro do PDF/A3.
A vantagem é que pode guardar toda a informação que necessita sobre um determinado assunto num único documento.

Quer a sua área de interesse seja jurídica, técnica, médica, contabilística, de segurança, de construção, de obras públicas, ou qualquer outra, se precisar de arquivar documentos que contenham anexos, o PDF/A3 é o formato de que necessita!

um ou mais anexos

A norma PDF/A3 permite-lhe inserir o maior número possível de anexos. É por esta razão que a nova opção de exportação, .files, é do tipo coleção.

Cada elemento desta coleção é um objeto com algumas propriedades simples, algumas das quais são opcionais.

A primeira e mais aparente é a propriedade .file do tipo 4D.File indica o ficheiro físico a ser incluído no PDF. Ela pode, no entanto, ser substituída pela propriedade .data do tipo texto ou BLOB. Estas duas propriedades são exclusivas: se a propriedade .data estiver presente, a propriedade .file será ignorada.

A propriedade .description é opcional, tal como .mimeType, que pode geralmente ser deduzida do conteúdo de .file ou .data.

Finalmente, .name é o nome do ficheiro que será extraído do PDF. Este só é obrigatório se a propriedade .data tiver sido utilizada e não a propriedade .file. Caso contrário, por padrão, ele terá o mesmo nome do arquivo original definido em .file!

um exemplo de código simples

O código abaixo mostra como inserir dois ficheiros físicos mais um texto simples enviado como dados.

$options:={}  // empty object
$options[wk files]:=[]  // empty collection

// 1st file (based on .file)
$fileInfo:={}
$fileInfo.description:="RTF formated text"
$fileInfo.file:=File(Folder(fk data folder).path+"Alpha.rtf")
$options[wk files].push($fileInfo)

// 2nd file  (based on .file)
$fileInfo:={}
$fileInfo.description:="Png picture"
$fileInfo.file:=File(Folder(fk data folder).path+"Bravo.png")
$options[wk files].push($fileInfo)

// 3rd file (based on .data)
$fileInfo:={}
$fileInfo.name:="Charlie.txt"  // will be used for extraction
$fileInfo.description:="raw text sent as data"
$fileInfo.data:="This is some raw text to be included as enclosure in the PDF and to be extracted as 'Charlie.txt'"
$options[wk files].push($fileInfo)

WP EXPORT DOCUMENT($document; "exportWithEnclosures.pdf"; wk pdf; $options)

Nota: ao usar o atributo wk files, a versão do PDF gerado será automaticamente PDF/A3, e a opção wk pdfa version, se presente, será ignorada.

Uma vez executado, o documento PDF terá o seguinte aspeto (utilizando o Adobe Acrobat Reader™)

Conclusão (e para continuar!)

Anexar documentos num único arquivo PDF/A3 significa que pode tirar o máximo partido do que esta norma permite. Mas isso não é tudo! Como verá em breve, também permitirá gerar faturas electrónicas, inserindo um documento XML como primeiro arquivo dos anexos! Fique atento!

Roland Lannuzel
- Proprietário do produto & Especialista 4D - Depois de estudar electrónica, a Roland entrou nas TI industriais como desenvolvedor e consultor, construindo soluções para clientes com uma variedade de bases de dados e tecnologias. No final dos anos 80, apaixonou-se pela 4D e utilizou-a para escrever aplicações comerciais que incluem sistemas de contabilidade, facturação e correio electrónico. Juntando-se à empresa em 1997, as valiosas contribuições de Roland incluem a concepção de especificações, ferramentas de teste, demonstrações, bem como formação e palestras para a comunidade 4D em muitas conferências. Ele continua a moldar activamente o futuro da 4D, definindo novas características e ferramentas de desenvolvimento de bases de dados.