2011-02-15 4 views
2

Je suis en train de construire une application qui génère des PDF à partir de HTML en utilisant la bibliothèque PHP DOMPDF. Les PDF nécessitent la possibilité de mettre à jour leur contenu ou de télécharger une version plus récente si elle est disponible à partir de l'API des sites et pour ce faire, je crois que je vais devoir utiliser Acrobat Javascript mais je ne sais pas comment le faire. J'ai écrit le javascript suivant qui est incorporé dans les PDF bien qu'il ne fasse rien (même pas montrer la boîte d'alerte). Il est incorporé en utilisant une balise <script type="text/javascript"> dans la tête html.Génération de PDF avec Acrobat Jascript en utilisant DomPDF/PHP

Toute aide sur ce serait grandement apprécié :)

// The JS that needs to be inserted in to a PDF file to self update 

app.alert('checking for updates'); 

var version = "1"; 
var book_id = "1234"; 
var update_url = "http://localhost/koolbookz/"+book_id+"/"+version; 


// Open the source documents: 
var source1 = app.openDoc(update_url); 

// Obtain the OCG order array for each source document: 
var mergedOCGArray = new Array(); 
var source1OCGArray = source1.getOCGOrder(); 

// Merge the OCG order arrays into the target array: 
for (var i=0; i<source1OCGArray.length; i++) mergedOCGArray[i] = source1OCGArray[i]; 
var offset = source1OCGArray.length; 

// Create the target document: 
var target = app.newDoc(book_id+".pdf"); 

// Insert source1.pdf: 
target.insertPages({ 
    nPage : -1, 
    cPath : update_url, 
}); 

// Set the OCG order array in the target document 
target.setOCGOrder(mergedOCGArray); 

// Save the target document: 
target.saveAs(book_id+".pdf"); 

// Close the target document without notifying the user: 
//target.closeDoc(true); 
+0

Essayez de placer le code JavaScript dans le corps du document. Je crois que dompdf supprime actuellement la plupart des contenus d'en-tête. – BrianS

+0

Merci pour les commentaires. Cela ne semble pas résoudre le problème malheureusement. Peut-être existe-t-il une autre méthode pour accomplir ce que j'essaie? –

+0

Quelle version de dompdf utilisez-vous? Les versions 0.5 ne supportent pas JS embarqué, mais 0.6 le fait. –

Répondre

0

L'URL doit être et la méthode openDoc devrait ressembler à:

var myURL = encodeURI ("http: // www. example.com ");

app.openDoc ({cPath: myURL, cFS: "CHTTP"}); CPATH: "Un chemin indépendant du périphérique vers le document à ouvrir Si oDoc est spécifié, le chemin peut être relatif Le document cible doit être accessible dans le système de fichiers par défaut."

CHTTP: "Chaîne qui spécifie le nom du système de fichiers source Deux valeurs sont prises en charge: (la chaîne vide, par défaut), représentant le système de fichiers par défaut, et" CHTTP ". le serveur Web prend en charge WebDAV. "

http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat9_HTMLHelp&file=JS_API_AcroJS.88.131.html#1995988

Questions connexes