PC SOFT
DEPOT EN LIGNE
POUR WINDEVWEBDEV ET WINDEV MOBILE

Android : lecteur de PDF autonome dans un champ HTML (URL et fichiers locaux)
Publié par Samir BOUCHETIBAT
dans la catégorie Outils
Nouveautés
La représentation des PDF en Javascript était faite jusqu'à présent via des canvas HTML5, ils sont remplacés dans cette version par des objets SVG (graphiques vectorisés) permettant un zoom fluide et bien plus net ainsi que la sélection de texte dans le corps des PDF.

Cependant, le mode SVG étant expérimental (fork de la version PDF.js), j'ai conservé la possibilité d'affichage par canvas (dans le cas de documents présentant des erreurs d'affichage).
A vous de tester !

N'ayant plus le temps de faire évoluer cet outil, je compte sur PC SOFT pour nous fournir prochainement un lecteur de PDF intégrable dans nos fenêtres Android ;)

Description
Ce projet WINDEV Mobile propose une solution pour consulter les PDF dans un champ HTML
Contrairement à la ressource postée précédemment, cette solution est complètement autonome et permet donc la lecture de fichier pdf locaux.

La solution se base sur le projet Mozilla Pdf.js qui est un client de lecture PDF en javascript.

Le rendu n'est pas optimal mais tout à fait suffisant pour des besoins de consultation classiques.

Pour intégrer dans vos projets :

- inclure les 2 procedures globales déclarées dans le projet
- Au moment de la génération de l'APK, inclure le fichier \exe\WD_pdfjs2.zip en tant que ressource




Illustrations, copies d'écran
none
none
Avis des utilisateurs
(Pour noter la ressource, cliquez sur Ecrire un avis)
Sylvain RAYMOND
Bonjour,
ce code est-il toujours valide en Windev Mobile 23?
J'essaie de le mettre en place mais apparemment il n'arrive pas à accéder au fichier source (ni en local dans "Repexe" ni à distance avec un pdf en ligne....
Le code semble fonctionner dans le mode test sous Windows mais pas sur le téléphone Android version 8
Merci pour votre aide.
Habib
Bonjour,
Samir je voudrais avoir quelque précisions sur le fonctionnement de ton lecteur Pdf. En tout les fichiers que j'ai installer y'a aucun qui s'ouvre sauf le fichier pdf qui a été fourni avec l'appli. j'ai mis tout les pdf dans le WD_js2 et ils s'ouvrent tous en simulation mais une fois l'appli généré y'a que le fichier "jesuischarlie.pdf" qui s'ouvre. j'ai intégré la procédure globale et le WD_js2.ZIP . je ne comprends pas pourquoi ça NZ marche pas sur l'APL
!!??
fed1023
Du coup le PDF est téléchargeable à l'adresse suivante : www.acces-sap.fr/cgv.pdf
Ce que j'ai pu apercevoir est comme la partie 9 : Non sollicitation du personnel.

Merci d'avance,
Fed1023
Samir BOUCHETIBAT
Bonjour,
Certains PDF peuvent poser des difficultés effectivement. Avez-vous essayé avec

showPDF (NomDuchampHtml, CheminCompletDuPDF, FAUX) //Paramètre FAUX pour affichage dans des canvas

Bon dev.
fed1023
Bonjour,

J'avais finalement trouvé une solution. Cependant pour afficher mon fichier PDF, je rencontre des problèmes de déplacement de caractères et de bavures. Avez-vous rencontré le même problème ?

Fed1023
Samir BOUCHETIBAT
Bonjour,

Les pdf n'ont (heureusement) pas besoin d'être présents dans l'archive.
Il suffit normalement d'appeler :

showPDF (NomDuchampHtml, CheminCompletDuPDF)

Vous devez bien entendu avoir les droits de lecture sur le CheminCompletDuPDF.
Je vous conseille donc de stocker vos PDF dans un sous-dossier de votre application en récuperant ce chemin avec frepexe() ou encore frepdonnees().

Bon dev.

Samir
fed1023
Bonjour Samir,

J'ai tenté à plusieurs reprises d'afficher un pdf qui n'est pas contenu dans l'archive. Avez-vous une solution pour réaliser cette manipulation ?

Cordialement,
Fed1023
fed1023
Merci pour cette nouvelle solution
fed1023
Bonjour Samir,
Merci beaucoup pour les indications. C'est exactement ce que j'ai tenté de faire mais il n'y a aucun changement.
Est-il nécessaire d'avoir le fichier à afficher dans le répertoire zip ?
Dans l'attente de la prochaine version,
Fed1023
Samir BOUCHETIBAT
Hello fed1023,
Pour retirer le cadre autour des pages, il faut modifier le fichier customview.cs present dans le zip. La foncton renderPage() effectue l'affichage, vous y trouverez des elements de style (style.boderstyle, style.bordercolor...) qu'il sufit de mettre en commentaire.

Reconstruisez ensuite le zip et desinstallez totalement votre appli du device android avant de redeployer
(en fait, la ressource n'est reinstallée que si elle n'est pas déjà présente dans le device, vous pouvez changer ce comportement dans la procedure windev showPDF )

Pour la seconde question (le double page en écran large), je le gérerai dans la prochaine version :
- Avec véritable navigateur et accès direct au pages
- Amélioration de la qualité de rendu (surtout en zoom)
Je ne travaille dessus que le WE merci de checker ici lundi ;)
fed1023
Je tente également de n'afficher qu'une page en largeur même si le champ html est large. Est-ce possible ? Merci
fed1023
Merci pour cette solution qui fonctionne parfaitement. Cependant, je tente d'enlever le cadre noir qui entoure chaque page et je n'y arrive pas. Est-ce que c'est possible ? Si oui, pouvez-vous me fournir des indication pour réaliser la manipulation. Merci d'avance
A PROPOS
EVALUATION :
52(2)
TELECHARGEMENTS :
1 358
MISE À JOUR :
19 janvier 2015
VERSION :
1.1
CONCERNE :
WINDEV Mobile
Version minimale : 06F190056S
TAILLE :
3,9 Mo
DU MÊME DÉVELOPPEUR