THotPDF.RegisterDocumentJavaScript

THotPDF

 

Suporte AcroForm

Regista uma função JavaScript nomeada ao nível do documento na árvore de nomes /Names /JavaScript do Catalog (ISO 32000-1 §7.7.4.4 + §12.6.4.16). Ações de widgets AcroForm, ações de abertura de documento e outros corpos JavaScript podem invocar a função registada pelo nome através do motor JavaScript do visualizador (Adobe Acrobat, Foxit e outros visualizadores compatíveis).

 

Sintaxe Delphi:

procedure RegisterDocumentJavaScript(const Name, Body: AnsiString);

 

Parâmetros

Name é a chave única sob a qual a fonte JS é guardada na árvore de nomes. Sensível a maiúsculas segundo PDF 1.7 §7.9.6. Um Name vazio gera exceção.

Body é a fonte JavaScript bruta. O HotPDF não analisa nem valida o JS – quem chama é responsável pela correção sintática. Quem chama tipicamente passa uma declaração de função completa (function GreetUser() { app.alert("hello"); }). Um Body vazio gera exceção.

 

Descrição

Cada chamada acrescenta um par (chave, dicionário indireto) à árvore de nomes /Names /JavaScript do Catalog no momento de EndDoc. Cada Body registado passa a ser o seu próprio dicionário indireto << /S /JavaScript /JS (body) >>, pronto a ser referenciado pelo nome a partir de qualquer outra ação ou contexto JS. Útil para partilhar uma biblioteca de helpers de validação, formatação ou cálculo por muitos widgets, sem duplicar a fonte em cada ação /A.

Registar o mesmo Name duas vezes gera exceção, para que ninguém perca silenciosamente a primeira definição.

 

Gates de conformidade

Gera exceção sob qualquer definição PDFACompliance não vazia (ISO 19005-1 §6.6.1 / ISO 19005-2 §6.5.1 / ISO 19005-3 §6.5.1 proíbem todas as ações JavaScript em todos os níveis PDF/A). Gera exceção sob qualquer definição PDFXCompliance não vazia (os fluxos de pré-impressão ISO 15930 rejeitam scripting interativo). Avança automaticamente a Version do documento para PDF 1.3 quando necessário; recusa sob StrictVersionLock se a versão escolhida for anterior ao PDF 1.3.

 

Exemplo

PDF := THotPDF.Create(nil);
PDF.FileName := 'form.pdf';
PDF.BeginDoc;
PDF.RegisterDocumentJavaScript('GreetUser',
  'function GreetUser() { app.alert("Hello"); }');
PDF.RegisterDocumentJavaScript('ValidateNumber',
  'function ValidateNumber(v) { if (isNaN(v)) app.alert("Not a number"); }');
// ... a ação /A de um widget AcroForm pode depois chamar: ValidateNumber(this.value);
PDF.EndDoc;

 

Disponibilidade

HotPDF v2.119.14. Funcionalidade de PDF 1.3+; o HotPDF avança automaticamente a Version do documento, a menos que StrictVersionLock esteja definido.

 

Ver também: Suporte AcroForm, THPDFActionScriptType