PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV Mobile 2025 → Charger un PDF dans un champs image
Charger un PDF dans un champs image
Iniciado por Jean-Michel, set., 22 2023 10:24 AM - 13 respostas
Membro registado
856 mensagems
Publicado em setembro, 22 2023 - 10:24 AM
Bonjour,

Sur mon poste de dev quand je teste, cela fonctionne mais quand je livre l'application sur ma tablette android, cela ne fonctionne pas et pourtant :

sNomFichierPDF est une chaîne = gblCheminTablette + sPhoto

// Chargement d'une image vectorielle (ici un PDF, cela pourrait être un SVG)
// Récupération des caractéristiques de l'image
sInfoPDF est une chaîne = InfoBitmap(sNomFichierPDF)

// Les images vectorielles sont transformées en images bitmap (raster, donc non vectorielles)
// On définit la résolution à laquelle on désire cette image
// (Divisé par 96 car c'est la résolution utilisée
// pour donner la taille d'une image vectorielle par la fonction InfoBitmap)
nDpiVoulu est entier = 300
soit nLargeurPixel = Val(ExtraitChaîne(sInfoPDF,2))*nDpiVoulu / 96
soit nHauteurPixel = Val(ExtraitChaîne(sInfoPDF,3))*nDpiVoulu / 96


// Charge l'image à l'écran dans un champ Image avec la taille correspondant au DPI voulu
ING_Image = dChargeImage(sNomFichierPDF, imgConvertir, nLargeurPixel,nHauteurPixel)


Je suis en plus en WM28 !
Merci pour votre aide...

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev - Windev Mobile

Bangkok / Pattaya
Publicado em setembro, 22 2023 - 12:27 PM
Il peut y avoir pleins d'explication : image non présente, pb de conversion, pb de taille

Pourquoi ne pas écrire simplement : ING_Image = sNomFichierPDF ?
Membro registado
537 mensagems
Publicado em setembro, 22 2023 - 1:10 PM
Effectivement dChargeImage ne fonctionne pas comme il devrait sur Android avec un pdf
Pour afficher l'image du pdf, ce code peut etre utilisé
sNomFichierPDF est une chaîne = gblCheminTablette + sPhoto
ING_Image = sNomFichierPDF
Membro registado
3.748 mensagems
Publicado em setembro, 23 2023 - 12:39 PM
Salut,
Bien que les pdfs peuvent être mis dans un champ image
Ceux ci ne sont pas des images
Il est vrai que tu fourni le code de la page d'aide
Mais ce code est fait pour windev sous windows
Pas windev mobile Android
Bien sûr PCSOFT aurait dû le préciser, mais bon.
Sur la page
https://doc.pcsoft.fr/fr-FR/?9500147
Tu peux voir le nombre de pages d'un pdf et le numéro de page
Normalement, sous windev mobile (même sous windev)
La simple affectation suffit.

Pour info, il est aussi possible d'afficher un pdf dans un champ HTML
Mensagem modificada, setembro, 23 2023 - 12:43 PM
Membro registado
856 mensagems
Publicado em setembro, 25 2023 - 9:55 AM
Bonjour tout le monde et merci d'avoir repondu.
wddev,
Pourquoi ? Parceque cela ne fonctionne pas, c'est la 1ere chose que j'ai teste et c'est "normalement" la syntaxe a utiliser.

steph811,
meme reponse que wddev

Popoy,
Je vois que tu es toujours sur le "qui vive", bravo.
Mais que si, c'est precise en haut de la page et ce code est normalement valable pour windev mobil.
Je vais en referer a PCSoft car mem souci avec le html

D'autre part, le champs pdf fonctionne sur des plateformes 64 bit, ce qui n'est pas mon cas.
Merci a vous tous, bon dev !

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev - Windev Mobile

Bangkok / Pattaya
Membro registado
537 mensagems
Publicado em setembro, 25 2023 - 2:00 PM
Jean-Michel a écrit :
Pourquoi ? Parceque cela ne fonctionne pas, c'est la 1ere chose que j'ai teste et c'est "normalement" la syntaxe a utiliser.

Oui c'est bien ce que j'ai répondu, sous entendu il faut créer un ticket auprès du support qui va analyser et en déduire qu'il s'agit d'un bug ou ce qui est moins probable qu'il faut mettre a jour l'aide en ligne pour indiquer que pour cette option n'est pas disponible sur Android
mais le plus important a mon avis est que tu as une solution de contournement qui fonctionne
C'est vrai aussi que l'utilisation du champ Lecteur PDF aurait été plus appropriée si il n'y avait pas cette contrainte de non disponibilité en 32bits, ca par contre j'aimerais bien avoir l'explication
Mensagem modificada, setembro, 25 2023 - 2:15 PM
Publicado em setembro, 25 2023 - 3:24 PM
Le première chose à faire est de vérifier l'existence de votre fichier PDF à l'exécution...

(je viens de faire un test simple en affectant un pdf à un champ Image, le PDF est bien affiché)
Membro registado
856 mensagems
Publicado em setembro, 26 2023 - 10:07 AM
wddev,
c'est ce que je fais !

IMG_Image = ""
sFichierPDF est une chaîne = fRepEnCours() + sSep + "1-1.pdf"
SI fFichierExiste(sFichierPDF) ALORS
Info(sFichierPDF + RC + "existe")
IMG_Image = dChargeImage(sFichierPDF,imgConvertir)
// test egalement avec IMG_Image = dChargeImage(sFichierPDF)
SINON
Info(sFichierPDF + RC + "n'existe pas")
FIN


Je pense que le fait que ma tablette soit en 32 bits,cela ne fonctionne pas !
(En emulation sur mon PC, ca fonctionne !)


** sSep est le fSep,soit "/" ou "\" suivant plateforme
--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev - Windev Mobile

Bangkok / Pattaya
Mensagem modificada, setembro, 26 2023 - 10:08 AM
Membro registado
537 mensagems
Publicado em setembro, 26 2023 - 10:48 AM
wddev a écrit :

(je viens de faire un test simple en affectant un pdf à un champ Image, le PDF est bien affiché)

sauf que le test a faire n'est pas celui la, ce qui est décrit comme ne fonctionnant pas c'est la fonction dchargeimage avec un pdf (en fait l'exemple de l'aide) donc c’est cela qui est a tester
Membro registado
856 mensagems
Publicado em setembro, 26 2023 - 10:58 AM
IMG_Image = sFichierPDF ==> Idem, ne fonctionne pas sur ma tablette 32 bits comme dit precedemment.
Merci steph

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev - Windev Mobile

Bangkok / Pattaya
Membro registado
537 mensagems
Publicado em setembro, 26 2023 - 12:42 PM
Jean-Michel a écrit :
IMG_Image = sFichierPDF ==> Idem, ne fonctionne pas sur ma tablette 32 bits comme dit precedemment.

Non désolé là rien à voir avec le 32bits j'ai testé sur sur 2 smartphones 32 bits l'un avec android 13 et l'autre 9 et cela fonctionne bien
Tu as essayé avec différents pdf ? peut etre déjà tester avec un pdf simple d'une page
Mensagem modificada, setembro, 26 2023 - 12:45 PM
Membro registado
3.748 mensagems
Publicado em setembro, 26 2023 - 4:45 PM
Salut
Que renvoie fRepEnCours ?
Pas sûr que ton application à les droits sur ce dossier.
Et je confirme que dChargeImage c'est pas bon sur mobile pour les PDF
Il faut faire le = (affectation)
Sinon il paraît que pcsoft à fait un champ éditeur PDF (personnellement je ne l'utiliserai pas)
Je rappelerai que normalement le 32 ou 64 n'a pas d'incidence puisque c'est du java sous Android.
Membro registado
856 mensagems
Publicado em setembro, 27 2023 - 5:05 AM
MeaCoulpa a tous !!
Dommage que vous etes loin, je dois payer ma tournee !!!!!!

C'est ma boulette.
Oui l'affectation toute simple fonctionne en 32 et 64 bits !
J'avais mis a ce moment la, le separateur en dure !!! et pas de message d'erreur.

A savoir concernant les PDF dans un champs PDF :
"Starting with version 28, this function is not supported by 32-bit ARM processors. New PDF features require a 64-bit execution mode.
If an application is to be run on devices with 32-bit ARM processors, it must be generated with WINDEV Mobile 27."

https://doc.windev.com/en-US/…

Bonne fin de semaine et bon courage en france !

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev - Windev Mobile

Bangkok / Pattaya
Membro registado
3.748 mensagems
Publicado em setembro, 27 2023 - 9:48 AM
Resalut,
Le champ lecteurs PDF a du être fait en langage C ou C# mais en tout cas pas en java.
Et on peut constater que l'exemple fourni est pour windows
Pourtant la fonction est compatible Android
LecteurPDFOuvre(PDF_MonLecteurPDF, "C:\MonDocument.pdf")

Donc cela confirme que les exemples fourni ne sont pas obligatoirement
valide pour toutes les plateformes
Pour être compatible avec toutes les plateformes ils auraient dû utiliser une fonction tel que frepexe par exemple
Et completerep