// Este código roda no arranque do Adobe Acrobat
var MinhaFuncaoSegura = app.trustedFunction(function(oDoc, cCaminho) {
// --- INÍCIO DA TRANSIÇÃO DE PRIVILÉGIO ---
// Eleva o privilégio do 'stack frame' atual para permitir APIs restritas
app.beginPriv();
try {
// Operação Restrita: Guardar o ficheiro num caminho arbitrário do sistema
oDoc.saveAs(cCaminho);
console.println("Documento guardado com sucesso em: " + cCaminho);
}
catch(e) {
console.println("Erro na execução: " + e.toString());
}
// --- FIM DA TRANSIÇÃO DE PRIVILÉGIO ---
// Revoga imediatamente os privilégios elevados por segurança
app.endPriv();
});
// Código inserido num botão do PDF
// Transita o fluxo para a função confiável mapeada na máquina
if (typeof(MinhaFuncaoSegura) !== "undefined") {
// A função aceita o objeto do documento (this) e executa a ação restrita de forma segura
MinhaFuncaoSegura(this, "/C/Utilizadores/Publico/DocumentoFinal.pdf");
} else {
app.alert("Esta funcionalidade requer privilégios administrativos locais.");
}
var GravarEmPastaQualquer = app.trustedFunction(function(oDoc) {
app.beginPriv();
// FALHA ADOBE: Se a pasta "Relatorios2026" não existir no seu disco C:,
// esta linha falha imediatamente e o script é abortado.
var pastaDestino = "/C/Relatorios2026/FicheiroFinal.pdf";
oDoc.saveAs(pastaDestino);
// Esta mensagem nunca será exibida se a pasta de destino for inválida
console.println("Gravação concluída com sucesso.");
app.endPriv();
});
No comments:
Post a Comment