J'ai une application Web qui obtient actuellement une représentation en base64 d'un PDF du serveur. Je suis capable d'utiliser le fichier pdf.js de Mozilla pour l'afficher sur un <canvas>
et parcourir les pages avec une liste déroulante.
D'après tout ce que j'ai pu trouver et Le fichier pdf.js de Mozilla peut-il modifier les fichiers PDF? , il n'est pas possible de modifier le PDF avec pdf.js.
J'ai trouvé jsPDF et même si je suis capable de prendre le canevas et de faire une .toDataURL()
avec pour chaque page et de créer un nouveau document PDF avec celui-ci, il y a deux problèmes:
jsPDF ne semble pas avoir le moyen de charger un fichier PDF existant, il en crée seulement de nouveaux. pdfmake et PDFKit semblent également créer uniquement de nouveaux fichiers PDF.
Donc ma question:
Y a-t-il quelque chose qui permette à la fois de visualiser un fichier PDF (à partir de base64) et d'y apporter des modifications? Idéalement, je surveillerais les modifications apportées à la toile, puis tracerais cette modification sur la page PDF. Une fois terminé, exportez-le dans une chaîne base64 pour le renvoyer au serveur.
Pour référence future:
J'ai trouvé deux bibliothèques qui vous permettent de modifier certains fichiers PDF existants dans le navigateur. Le second n’est pas encore documenté, donc je ne sais pas exactement ce qu’il fait. Ce pourrait être la solution à un tel problème à l'avenir.
Étant donné que d’autres SO questions sont posées ici et compte tenu de la vitesse à laquelle évolue la technologie Web (WASM, par exemple), j’apporte la réponse suivante. Bien que PDFNetJS ait pu faire tout cela lorsque la question avait été posée à l'origine.
Étant donné que l'exigence de "modifier" a été clarifiée comme étant "En gros, les utilisateurs doivent ouvrir les sections PDF, surlignées ou entourées précédemment téléchargées, puis enregistrer les annotations dans le dossier PDF. . "et" Aucune édition de texte ou manipulation du contenu du document ne doit avoir lieu. ", alors oui, cela est possible dans tous les navigateurs modernes, sur tous les appareils modernes.
PDFTron PDFNet SDK peut faire tout cela. Une visionneuse de documents complète prête à l'emploi est fournie, avec prise en charge complète des annotations. Il est également possible d'éditer réellement le PDF (changer/remplacer du texte, rédiger, extraire/ajouter/remplacer des images, etc.). Les fichiers PDF sont non seulement pris en charge directement côté client, mais les fichiers DOCX, PPTX, XLSX, PNG et JPG le sont également. Les fichiers peuvent être chargés localement ou à distance, et l'encodage/décodage base64 lent n'est pas nécessaire.
Démo: http://www.pdftron.com/webviewer
Exemples: http://www.pdftron.com/documentation/web/samples/universal-samples
La question initiale concernait également le support pour Siebel et "PDFNetJS tente de récupérer un fichier .mem, qui contient des données binaires. Cette application ne peut pas être servie par l'application que j'utilise (Siebel), elle ne ressemble donc pas à ceci. est une option. ".
Le fichier .mem est destiné à PNaCl, qui est réservé à Chrome, et peut être désactivé. PDFTron for Web prend en charge WASM et même emscripten, l'un de ceux-ci, sinon les deux, devrait alors être compatible avec Siebel.