# Formato de dados de formulários

# Introdução

Forms Data Format (FDF) é um formato para lidar com formulários em documentos PDF. Deve-se ler a documentação em » http://www.adobe.com/devnet/acrobat/fdftoolkit.html para obter mais informações sobre o que é FDF e como ele é usado em geral.

A ideia geral do FDF é semelhante aos formulários HTML. A diferença é basicamente o formato como os dados são transmitidos ao servidor quando o botão de envio é pressionado (na verdade, este é o Form Data Format) e o formato do formulário em si (que é o Portable Document Format, PDF). O processamento dos dados FDF é um dos recursos fornecidos pelas funções fdf. Mas há mais. Pode-se também pegar um formulário PDF existente e preencher os campos de entrada com dados sem modificar o formulário em si. Nesse caso, criaria-se um documento FDF (fdf_create()), definiria-se os valores de cada campo de entrada (fdf_set_value()) e associaria-se este documento a um formulário PDF (fdf_set_file()). Finalmente, ele deve ser enviado ao navegador com MimeType `application/vnd.fdf`. O plug-in do leitor Acrobat do navegador reconhece o MimeType, lê o formulário PDF associado e preenche os dados do documento FDF.

Se um documento FDF for aberto em um editor de texto, será encontrado um objeto de catálogo com o nome `FDF`. Esse objeto pode conter várias entradas como `Fields`, `F`, `Status` etc. As entradas mais comumente usadas são `Fields`, que aponta para uma lista de campos de entrada, e `F`, que contém o nome do arquivo do documento PDF ao qual esses dados pertencem. Essas entradas são referidas na documentação do FDF como /F-Key ou /Status-Key. A modificação dessas entradas é feita por funções como fdf_set_file() e fdf_set_status(). Os campos são modificados com fdf_set_value(), fdf_set_opt() etc.

- Instalação/Configuração
  - Dependências
  - Instalação
  - Tipos de Recurso
- Constantes predefinidas
- Exemplos
- Funções de FDF
  - fdf_add_doc_javascript — Adiciona código javascript ao documento FDF
  - fdf_add_template — Adiciona um modelo ao documento FDF
  - fdf_close — Fecha um documento FDF
  - fdf_create — Cria um novo documento FDF
  - fdf_enum_values — Chama uma função definida pelo usuário para cada valor do documento
  - fdf_errno — Retorna o código de erro para a última operação fdf
  - fdf_error — Retorna a descrição do erro para o código de erro FDF
  - fdf_get_ap — Obtém a aparência de um campo
  - fdf_get_attachment — Extrai o arquivo carregado incorporado no FDF
  - fdf_get_encoding — Obtém o valor da chave /Encoding
  - fdf_get_file — Obtém o valor da chave /F
  - fdf_get_flags — Obtém os sinalizadores de um campo
  - fdf_get_opt — Obtém um valor do array de opções de um campo
  - fdf_get_status — Obtém o valor da chave /STATUS
  - fdf_get_value — Obtém o valor de um campo
  - fdf_get_version — Obtém o número da versão para a API ou arquivo FDF
  - fdf_header — Define cabeçalhos de saída específicos de FDF
  - fdf_next_field_name — Obtém o próximo nome de campo
  - fdf_open — Abre um documento FDF
  - fdf_open_string — Lê um documento FDF de uma string
  - fdf_remove_item — Define o quadro de destino para o formulário
  - fdf_save — Salva um documento FDF
  - fdf_save_string — Retorna o documento FDF como uma string
  - fdf_set_ap — Define a aparência de um campo
  - fdf_set_encoding — Define a codificação de caracteres FDF
  - fdf_set_file — Define o documento PDF para exibição de dados FDF
  - fdf_set_flags — Define um sinalizador de um campo
  - fdf_set_javascript_action — Define uma ação javascript de um campo
  - fdf_set_on_import_javascript — Adiciona código javascript para ser executado quando o Acrobat abre o FDF
  - fdf_set_opt — Define uma opção de um campo
  - fdf_set_status — Define o valor da chave /STATUS
  - fdf_set_submit_form_action — Define uma ação de envio de formulário de um campo
  - fdf_set_target_frame — Define o quadro de destino para exibição do formulário
  - fdf_set_value — Define o valor de um campo
  - fdf_set_version — Define o número da versão para um arquivo FDF

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open