Transformer HTML en CHM

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Transformer HTML en CHM

Message par Stan_fr »

boddhi a écrit : mer. 26/avr./2023 17:55 @Stan-fr
Petit addendum... Si un jour tu venais à devoir réaliser une doc après développement d'une lib (bibliothèque), tu as aussi à ta disposition l'outil natif PB 'docmaker.exe' disponible dans le sous-dossier 'SDK/DocMaker" du dossier d'installation de PB.
Merci !

Mais finalement j'ai trouvé mon bonheur :
https://wordtohtml.net/fr/site/index

Qui convertit parfaitement un fichier issu de LibreOffice en html, j'ai juste à changer les liens de téléchargement et ça c'est à ma portée.

J'ai donc une solution gratuite et légale pour faire mon aide ! (avec un gros avantage en terme de volume des fichiers par rapport à du chm, pour mes besoins limités)

MERCI encore
User23
Messages : 6
Inscription : lun. 24/avr./2023 16:34

Re: Transformer HTML en CHM

Message par User23 »

Si ce n'est que ça, LibreOffice, aussi bien que Word enregistrent directement en HTML si on veut. (il suffit de dérouler le menu des types de fichiers)
L'avantage des fichier CHM est que tous les éléments (ex: les images) sont dans un seul fichier
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Transformer HTML en CHM

Message par Stan_fr »

User23 a écrit : mer. 26/avr./2023 20:11 Si ce n'est que ça, LibreOffice, aussi bien que Word enregistrent directement en HTML si on veut. (il suffit de dérouler le menu des types de fichiers)
L'avantage des fichier CHM est que tous les éléments (ex: les images) sont dans un seul fichier
Je ne sais pas pour Word, mais pour LibreOffice c'est approximatif comme conversion (position des textes/images), c'est assez facile à rectifier, mais autant prendre quelque chose qui fasse le truc proprement du premier coup..

Pour les Chm crées avec winchm les images ne sont pas intégrées : justement j'ai fait le test : si je change de disque il n'affiche pas les jpeg. (à moins que j'ai mal paramétré, ce qui est possible, je vais re-regarder)
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Transformer HTML en CHM

Message par boddhi »

Stan_fr a écrit :Pour les Chm crées avec winchm [...]
Tu parles de WinCHM mais as-tu essayé avec HTML Help Workshop ?

Tu inclus ton image (par ex. 'NomImage.png') dans ton projet (fichier *.hhp).
Ensuite, tu as juste à l'appeler dans ton code HTML via '<img src="NomImage.png" />' sans avoir à te soucier du chemin.
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Transformer HTML en CHM

Message par Stan_fr »

boddhi a écrit : mer. 26/avr./2023 22:28
Stan_fr a écrit :Pour les Chm crées avec winchm [...]
Tu parles de WinCHM mais as-tu essayé avec HTML Help Workshop ?

Tu inclus ton image (par ex. 'NomImage.png') dans ton projet (fichier *.hhp).
Ensuite, tu as juste à l'appeler dans ton code HTML via '<img src="NomImage.png" />' sans avoir à te soucier du chemin.
Oui, mais quel est l'avantage par rapport à du html avec <img src=/mesimages/xxx.jpg> ou <img src=mesimages/xxx.jpg> ?
Sachant que mes jpg seront dans un dossier "mesimages".

Ça veut dire que HTML Help Workshop, intègre les jpg dans un fichier .hlp ou .chm ?

Parce que j'envisageais de créer un dossier "mesimages" au lancement de mon programme et le remplir par des appels à googledrive avec un thread en pariant sur le fait que l'utilisateur ne va pas consulter l'aide dès le lancement (ou en ayant les images incluses dans le soft avec par une datasection).

Mon souci est que tout soit transparent pour "mes" utilisateurs, des musiciens qui n'ont pas ton niveau** (pour te situer : ils me considèrent comme un geek ! :roll: Je leur envoie le soft en fichier joint dans un mail et ça leur pose problème pour le retrouver...).

** par contre tu leur mets une partition sous les yeux, et en deux tours ça joue sans erreur...
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Transformer HTML en CHM

Message par boddhi »

Stan-fr a écrit :Ça veut dire que HTML Help Workshop, intègre les jpg dans un fichier .hlp ou .chm ?
User23 a écrit :L'avantage des fichier CHM est que tous les éléments (ex: les images) sont dans un seul fichier
Je ne sais pas si l'option de télécharger les images depuis un cloud vers l'ordinateur des utilisateurs est la meilleure solution...
Si tu tiens absolument à gérer ton aide par du HTML, tu peux peut-être envisager l'utilisation d'un WebGadget.
Le principe :
• Tu crées tes pages HTML d'aide avec les liens de tes images téléversées
• Tu fournis toutes les pages HTML avec ton soft
• Tu utilises un WebGadget() pour afficher ces pages

Code : Tout sélectionner

; Code HTML pour l'exemple
ContenuHTML.s="<!doctype html>"+
              "<html>"+
              "  <head>"+
              "  </head>"+
              "  <body>"+
              "    <p>Blablabla</p>"+
              "    <img alt='image' src='https://zupimages.net/up/23/17/n3vd.jpg'/>"+
              "  </body>"+
              "</html>"

If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

  ; Enregistrement local pour la démonstration
  FichierHTML.s=GetUserDirectory(#PB_Directory_Documents)+"temp.html"
  If CreateFile(0,FichierHTML)
    WriteString(0,ContenuHTML)
    CloseFile(0)

    ; Affichage de la page locale
    WebGadget(0, 10, 10, 580, 280,FichierHTML) 

    Repeat 
    Until WaitWindowEvent() = #PB_Event_CloseWindow 
    DeleteFile(FichierHTML)
  EndIf
EndIf
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Transformer HTML en CHM

Message par Stan_fr »

boddhi a écrit : jeu. 27/avr./2023 1:28
Stan-fr a écrit :Ça veut dire que HTML Help Workshop, intègre les jpg dans un fichier .hlp ou .chm ?
User23 a écrit :L'avantage des fichier CHM est que tous les éléments (ex: les images) sont dans un seul fichier
Le souci c'est que pour le même résultat fichier chm : 580K, html avec les images < 100 K et on est pas tous en fibre...
Je ne sais pas si l'option de télécharger les images depuis un cloud vers l'ordinateur des utilisateurs est la meilleure solution...
Dans l'absolu, certainement pas !
D'ailleurs je préférerais utiliser du tout intégré à mon programme (fichier HTML + images), et "travailler en local transparent" pour l'HTML.
C'est à dire au lancement de mon programme
  • Je crée un dossier "mesimages_93d40ed4da209a4c" (peu de chances qu'il y ait déjà un dossier avec ce nom).
  • J'y transfère mes images (ça c'est le coté transparent)
  • Ensuite j’utilise des <img src=/mesimages_93d40ed4da209a4c/xxx.jpg> dans mon html d'aide.
  • En sortant je supprime le dossier "mesimages_93d40ed4da209a4c"
L'utilisateur ne "voit" rien et surtout n'a pas à gérer quoi que ce soit (souviens-toi ce sont des musiciens pas des power-users !)
Si tu tiens absolument à gérer ton aide par du HTML, tu peux peut-être envisager l'utilisation d'un WebGadget.
Le principe :
• Tu crées tes pages HTML d'aide avec les liens de tes images téléversées
• Tu fournis toutes les pages HTML avec ton soft
En fait je ne gère rien : je me contente de faire afficher l'équivalent d'un .doc ou .odt, et si on pouvait afficher directement des .doc ou .odt, je le ferais.
mais ça supposerai d'augmenter considérablement la taille de mon programme (en supposant que je sache faire... :roll: ), alors que le navigateur sait gérer.

Je vais quand même essayer avec HTML Help Workshop, mais ça m'oblige à apprendre ce soft, et même avec ton lien d'aide c'est du boulot en plus... Déjà avec PureBasic je rame, alors...
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Transformer HTML en CHM

Message par Stan_fr »

MERCI quand même d'essayer de m'aider !
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Transformer HTML en CHM

Message par boddhi »

Stan-fr a écrit : [...] on est pas tous en fibre...
C'est un peu paradoxal !

D'un côté, tu ne veux pas que tes utilisateurs téléchargent un soft un peu "trop lourd" d'une traite pcq certains n'auraient pas une bande passante rapide (je ne sais pas combien pèse ton soft plus éventuellement l'aide, mais on est loin aujourd'hui du 56kbps, ça devrait pas prendre autant de temps que ça même en ADSL !), de l'autre, tu les obligerais à télécharger les images à chaque utilisation.

Ne serait-ce pas plus simple qu'ils récupèrent une bonne fois pour toutes tout ce qui est nécessaire au fonctionnement de ton appli quite à "patienter" peut-être un petit peu le temps du téléchargement ?
Ils n'auraient ensuite plus du tout besoin de connexion à chaque utilisation et puis ça te simplifierait peut-être aussi la vie au niveau programmation. Tu n'aurais pas à gérer des téléchargements via des threads.

Ce n'est pas la seule solution envisageable mais j'en reviens à l'idée du WebGadget().
Je ne sais pas si tu as bien examiné le code que je t'ai fourni mais (et je me répète en certains points) :
D'ailleurs je préférerais utiliser du tout intégré à mon programme (fichier HTML + images), et "travailler en local transparent" pour l'HTML.
C'est à dire au lancement de mon programme
Je crée un dossier "mesimages_93d40ed4da209a4c" (peu de chances qu'il y ait déjà un dossier avec ce nom).
J'y transfère mes images (ça c'est le coté transparent)
Ensuite j’utilise des <img src=/mesimages_93d40ed4da209a4c/xxx.jpg> dans mon html d'aide.
En sortant je supprime le dossier "mesimages_93d40ed4da209a4c"
L'utilisateur ne "voit" rien et surtout n'a pas à gérer quoi que ce soit (souviens-toi ce sont des musiciens pas des power-users !)
Je vais quand même essayer avec HTML Help Workshop, mais ça m'oblige à apprendre ce soft, et même avec ton lien d'aide c'est du boulot en plus... Déjà avec PureBasic je rame, alors...
1) Quelle que soit la solution envisagée, tu sembles vouloir "absolument" t'orienter vers une utilisation de HTML
2) Donc, que ce soit avec HTML HELP WORKSHOP, l'appel à un navigateur ou l'utilisation d'un WebGadget(), tu seras obligé de rédiger du code HTML
3) Avec HTML HELP WORKSHOP, c'est presque un 'tout en un' mais tu veux éviter le poids de téléchargement initial et apprendre, faute peut-être de temps, son utilisation
4) Avec l'appel à un navigateur ou à un Webgadget(), tu obligeras de toute façon l'utilisateur à télécharger des données chaque fois que nécessaire
5) Avec l'appel à un navigateur, tu imposes l'ouverture d'un programme extérieur
6) Avec un WebGadget(), hormis gérer la taille de l'affichage, tu n'as pas grand-chose d'autre à faire. Tu peux faire appel à des images stockées dans le cloud (comme te le montre mon exemple) à partir de pages HTML créées à la volée ou stockées en local, ou carrément avec le tout stocké en local (avec quelques guidelines pour expliquer comment installer tout ça, ça pourrait peut-être le faire ?).

A toi d'estimer le meilleur compromis pour toi et tes utilisateurs :wink:
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Transformer HTML en CHM

Message par Stan_fr »

boddhi a écrit : jeu. 27/avr./2023 11:35
Stan-fr a écrit : [...] on est pas tous en fibre...
C'est un peu paradoxal !

D'un côté, tu ne veux pas que tes utilisateurs téléchargent un soft un peu "trop lourd" d'une traite pcq certains n'auraient pas une bande passante rapide (je ne sais pas combien pèse ton soft plus éventuellement l'aide, mais on est loin aujourd'hui du 56kbps, ça devrait pas prendre autant de temps que ça même en ADSL !), de l'autre, tu les obligerais à télécharger les images à chaque utilisation.

Ne serait-ce pas plus simple qu'ils récupèrent une bonne fois pour toutes tout ce qui est nécessaire au fonctionnement de ton appli quite à "patienter" peut-être un petit peu le temps du téléchargement ?
Ils n'auraient ensuite plus du tout besoin de connexion à chaque utilisation et puis ça te simplifierait peut-être aussi la vie au niveau programmation. Tu n'aurais pas à gérer des téléchargements via des threads.
Tu as raisons je suis parfois paradoxal, et pas qu'un peu :oops:
Mais je ne les oblige pas à charger à chaque utilisation : j'ai dit du tout intégré à mon programme (fichier HTML + images), ça correspond déjà à la notion d'un gros fichier, mon programme fait dans les 500 k, si je rajoute mes images et mon HTML je dois arriver à 700 k, si je rajoute un .chm je dépasse le Giga, (mais j'y viendrai peut-être, c'est là que je suis paradoxal...).

Ce n'est pas la seule solution envisageable mais j'en reviens à l'idée du WebGadget().
Je ne sais pas si tu as bien examiné le code que je t'ai fourni mais (et je me répète en certains points) :
D'ailleurs je préférerais utiliser du tout intégré à mon programme (fichier HTML + images), et "travailler en local transparent" pour l'HTML.
C'est à dire au lancement de mon programme
Je crée un dossier "mesimages_93d40ed4da209a4c" (peu de chances qu'il y ait déjà un dossier avec ce nom).
J'y transfère mes images (ça c'est le coté transparent)
Ensuite j’utilise des <img src=/mesimages_93d40ed4da209a4c/xxx.jpg> dans mon html d'aide.
En sortant je supprime le dossier "mesimages_93d40ed4da209a4c"
L'utilisateur ne "voit" rien et surtout n'a pas à gérer quoi que ce soit (souviens-toi ce sont des musiciens pas des power-users !)
Je vais quand même essayer avec HTML Help Workshop, mais ça m'oblige à apprendre ce soft, et même avec ton lien d'aide c'est du boulot en plus... Déjà avec PureBasic je rame, alors...
1) Quelle que soit la solution envisagée, tu sembles vouloir "absolument" t'orienter vers une utilisation de HTML
Oui HTML pour des raisons pratiques :
  • je créée mon aide avec libreOffice (ça je sais faire)
  • je transforme le .doc en HTML (je sais aussi faire avec WordToHTML)
  • Et après j'utilise le navigateur avec tous mes fichiers en local (et sans appel à quoi que ce soit d'extérieur du point de vue stockage, pas besoin de thread))
J'avoue que là ça coince un peu : je sais faire chez moi en lançant firefox avec des paramètres avec RunProgram, mais si l'utilisateur a un autre navigateur ça ne marche pas !
2) Donc, que ce soit avec HTML HELP WORKSHOP, l'appel à un navigateur ou l'utilisation d'un WebGadget(), tu seras obligé de rédiger du code HTML
3) Avec HTML HELP WORKSHOP, c'est presque un 'tout en un' mais tu veux éviter le poids de téléchargement initial et apprendre, faute peut-être de temps, son utilisation
4) Avec l'appel à un navigateur ou à un Webgadget(), tu obligeras de toute façon l'utilisateur à télécharger des données chaque fois que nécessaire
5) Avec l'appel à un navigateur, tu imposes l'ouverture d'un programme extérieur
6) Avec un WebGadget(), hormis gérer la taille de l'affichage, tu n'as pas grand-chose d'autre à faire. Tu peux faire appel à des images stockées dans le cloud (comme te le montre mon exemple) à partir de pages HTML créées à la volée ou stockées en local, ou carrément avec le tout stocké en local (avec quelques guidelines pour expliquer comment installer tout ça, ça pourrait peut-être le faire ?).
HTML HELP WORKSHOP c'est bien mais, soyons honnête, ça me fait peur : il va falloir apprendre un autre soft et quand tu vois comment je rame déjà avec PureBasic, HTML ça a un coté rassurant parce que je connais un peu (et que j'ai de très bons bouquins si besoin).
A toi d'estimer le meilleur compromis pour toi et tes utilisateurs :wink:
Le meilleur compromis ça serait peut-être de me dire que je n'y arriverai jamais et de laisser tomber, mais j'y ai passé beaucoup de temps et eu tellement d'aide que ce serait une trahison...
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Transformer HTML en CHM

Message par boddhi »

C'est pour cela que je te conseille le WebGadget() !!!
Tu maîtrises le HTML après tu n'as plus qu'à afficher ta page dans le gadget.
Je me répète mais étudie bien mon exemple. Il est simple et si tes pages n'ont pas trop de fioritures, il devrait convenir très vraisemblablement à ton besoin.

Après, si ton soft tourne sur PC, tu as toujours l'API ShellExecute qui lancera le navigateur paramétré par défaut. S'il doit tourner sous d'autres plateformes, demande aux linuxiens/macophiles s'il existe un équivalent sur ces OS.
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Transformer HTML en CHM

Message par boddhi »

Si tu t'orientes vers le CHM, tu peux aussi permettre à tes utilisateurs de charger le soft en premier et, s'ils en ont besoin, de télécharger l'aide en second lieu.

Pourquoi ne pas envisager aussi un auto-exé qui inclurait ton soft et ton aide avec des XInclude, tous deux zippé ou compressé avec tout autre compresseur géré par PB ?
Tu compresses ton soft (là, le gain ne devrait pas être très extraordinaire), tu compresses ton fichier d'aide, Tu inclus le tout dans un deuxième programme qui se chargera de décompresser le contenu là où l'utilisateur le souhaitera. Puis tu demandes à l'utilisateur de supprimer le fichier qu'il a téléchargé.
User23
Messages : 6
Inscription : lun. 24/avr./2023 16:34

Re: Transformer HTML en CHM

Message par User23 »

HTML HELP WORKSHOP c'est bien mais, soyons honnête, ça me fait peur : il va falloir apprendre un autre soft
Pas besoin, si tu utilises l'un des logiciels que j'ai cité, c'est lui qui créé les fichiers qu'il passe ensuite à HHW pour compilation du .CHM
Tu as aussi Precision Helper (gratuit - Pas testé) qui génère ces fichiers, mais tu dois créer tes pages HTML toi-même.
Tous ces programmes ont un lien pour télécharger aussi HHW (Download Microsoft Html Help Workshop)
mon programme fait dans les 500 k, si je rajoute mes images et mon HTML je dois arriver à 700 k, si je rajoute un .chm je dépasse le Giga, (mais j'y viendrai peut-être, c'est là que je suis paradoxal...).
Giga ? ce ne serait pas plutôt Mega ? ou alors tu as mis des images énormes ou de la musique ?
Dans un fichier d'aide on réduit les images à par exemple 800 px de large et à 256 couleurs.
L'ide de PB avec ses centaines de pages et des images ne fait que 4.8 Mega
firefox avec des paramètres avec RunProgram, mais si l'utilisateur a un autre navigateur ça ne marche pas !
Pour lancer une page HTML avec RunProgram, inutile de préciser le navigateur on lance simplement le fichier initial (ex: index.html) et le navigateur par défaut de l'utilisateur s'ouvrira.
RunProgram("index.html")
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Transformer HTML en CHM

Message par boddhi »

User23 a écrit : Pour lancer une page HTML avec RunProgram, inutile de préciser le navigateur on lance simplement le fichier initial (ex: index.html) et le navigateur par défaut de l'utilisateur s'ouvrira.
RunProgram("index.html")
J'avais jamais pensé à tester RunProgram() de cette manière (en même temps, je l'utilise très très rarement). Astuce à retenir ! :wink:
User23
Messages : 6
Inscription : lun. 24/avr./2023 16:34

Re: Transformer HTML en CHM

Message par User23 »

Tous les fichiers qui sont associés peuvent être lancés directement par RunProgram
De même pour les commandes
Exemple

Code : Tout sélectionner

RunProgram("mailto:hello@world?subject=This is a test&body=hello")
Ouvrira le client mail du l'utilisateur avec un mail déjà pré-rempli.
Très utile pour faire un mail au support et laisser le choix à l'utilisateur de voir ce qu'il envoi et le laisser taper le reste.
:wink:
Répondre