GithubHelp home page GithubHelp logo

chapitreneuf / pdfgen Goto Github PK

View Code? Open in Web Editor NEW
2.0 5.0 1.0 4.45 MB

Générateur de PDF pour Lodel

License: GNU General Public License v3.0

HTML 66.94% CSS 21.41% PHP 4.80% JavaScript 6.85%
lodel pdf pdf-generation journals

pdfgen's Introduction

Générateur de PDF pour Lodel

pdfgen latest version License

Installation

Prérequis

  • Lodel 1.0
  • Docker CE
  • Docker Compose

Lancer le convertisseur

Seul le fichier docker-compose.yml est nécessaire, vous pouvez le mettre où vous le souhaitez. Vous pouvez modifier le port exposé, ainsi que les identifiants de connexion au convertisseur dans ce fichier, en modifiant la section ports du proxy, ainsi que les variables d'environnement BASIC_AUTH_USER et BASIC_AUTH_PASS. Pour plus d'informations, se référer à la documentation de configuration de Docker Compose.

Une fois les modifications faites, lancer le service avec la commande :

docker-compose up

Importer les variables de traduction

Importez les fichiers translations/translation-xx.xml fournis dans ce dépôt via le panneau d'administration générale de Lodel dont l'URL est de la forme lodeladmin/index.php?do=list&lo=translations (à ne pas confondre avec le panneau d'administration du site). Ainsi les traductions du plugin sont importées une seule fois pour tous les sites.

Installer le plugin Lodel

Dans le répertoire share/plugins/custom/ de votre installation, clonez le dépôt :

git clone https://github.com/chapitreneuf/pdfgen.git

Accédez à l'administration des plugins de votre installation lodel (https://votreinstallation/lodeladmin/index.php?do=list&lo=mainplugins) et activez le plugin pdfgen.

Enfin sur chaque site où vous souhaitez utiliser le générateur activez le plugin depuis l'administration des plugin du site. Une fois le plugin activé, accédez à sa configuration et saisissez l'URL du convertisseur, dans le format ci-dessous. L'URL doit correspondre à la configuration saisie précédement dans le fichier de configuration de Docker Compose :

http://login:password@domaine:port

Ajouter des logos

Pour ajouter le logo du site en haut de la page des PDF, insérez une image pdf_logo.png dans le dossier tpl/ du site.

Pour afficher le logo de la plateforme sur les PDF, insérez une image /plugins/custom/pdfgen/public/plateforme.png.

URLS

Une fois activé, le plugin rend accessible les URLs suivantes :

  • Récupération du PDF : /?do=_pdfgen_get&document=[#ID]&lang=[#LANG]
  • Affichage de la version HTML intermédiaire : /?do=_pdfgen_view&document=[#ID]&lang=[#LANG]

L'attribut [#LANG] détermine la langue des variables de traductions. Il est recommandé de toujours utiliser la langue principale du site.

Le PDF généré est mis en cache par le générateur et automatiquement recalculé lorsque les données du document sont modifiées. Il est toujours possible de forcer la régénération avec l'argument clearcache :

/?do=_pdfgen_get&document=[#ID]&lang=[#LANG]&clearcache=1

Il est aussi possible de supprimer le contenu du répertoire "CACHE" de la revue.

Utilisation dans les templates

Quand le plugin est actif et configuré, on peut récupérer le lien vers le PDF automatique dans les templates avec la variable LodelScript [#PDFGEN_URL].

<!--[ Si un PDF fac-similé est lié à l'article, on pointe vers ce fichier ]-->
<IF COND="[#ALTERFICHIER]">
  <a role="button" href="[#ID|makeurlwithid|query_string('file', '1')]">Télécharger le PDF</a>

<!--[ Sinon on vérifie que le générateur est actif et si oui on pointe vers le PDF automatique ]-->
<ELSEIF COND="[#PDFGEN_URL]" />
  <a role="button" href="[#PDFGEN_URL]">Télécharger le PDF</a>
</IF>

PDF des numéros et des documents non publiés (prévisualisation)

Depuis PDFgen 1.3, le plugin supporte la génération des PDF des numéros complets et la prévisualisation des PDF des documents non publiés. Il est nécessaire d'utiliser la Nova 2.4 ou supérieure pour que ces fonctionnalités soient utilisables.

Pour afficher le DOI des numéros sur les PDF, la dernière version de lodel-options-extra doit être utilisée (option "Types présentant des DOI").

Dans le cas où la génération de numéros longs entraînerait des problèmes (messages d'erreur, PDF vides), il est possible d'augmenter la valeur de la variable $waitTimeout dans pdfgen.php.

Personnalisation

Personnalisation au niveau du site

Il est possible de personnaliser les templates du PDF en redéclarant les macros de macros_pdfgen.html dans tpl/macros_custom.html.

Les macros PDFGEN_CUSTOM_JS et PDFGEN_CUSTOM_CSS à déclarer dans tpl/macros_custom.html permettent d'ajouter respectivement des scripts et des styles à la page.

Exemple pour remplacer la numérotation des paragraphes par un numéro de page :

/**
 * Affichage du numéro de page
 */
<DEFMACRO NAME="PDFGEN_CUSTOM_CSS">
	<style>
		@page {
			@bottom-center {
				content: counter(page);
			}
		}

		.article__text-contents > p.texte::before {
			content: none;
		}
	</style>
</DEFMACRO>

Personnalisation globale

Depuis PDFgen 1.3, il est possible de modifier le fichier macros_pdfgen_custom.html pour introduire des modifications et définir des paramètres qui s'appliqueront à l'ensemble des sites de l'instance Lodel.

Mise à niveau

Dans le cas d'une mise à niveau, il est nécessaire de réinstaller les variables de traduction dans l'administration générale de Lodel (voir plus haut). En cas d'erreur lors de l'import les variables doivent être mises à jour manuellement via l'interface.

Crédits et financement

Ce projet a été développé par le collectif Chapitre neuf pour les Bibliothèques universitaires de l'Université Jean Moulin Lyon 3. Il a été financé par l'Université Jean Moulin Lyon 3.

Chapitre neuf a accepté de publier son code source sous licence libre GPL3 sans contrepartie, affirmant ainsi son engagement en faveur du logiciel libre.

  • Développement backend, PHP et Lodel : Nahuel Angelinetti
  • Design et intégration des templates : Thomas Brouard

Licence

2024, Chapitre neuf

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

pdfgen's People

Contributors

brrd avatar nahuelange avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

enadji

pdfgen's Issues

Pré-générer les PDF lors de la création/modification du document

Sur certains serveurs et/ou pour certains numéros très longs, un temps de latence est ressenti par le visiteur lors du premier téléchargement du PDF (le PDF étant actuellement généré lors de la première demande de téléchargement, puis stocké en cache pour les téléchargements suivants).

Pour le temps de chargement nous avons ajouté un délai de 5 secondes (waitDelay) entre le rendu de la page et la création du PDF pour donner plus de temps à Paged.js de s’exécuter et éviter les problèmes de layout rencontrés par le passé (comme les PDF vides par exemple). Cela signifie que la génération durera toujours au moins 5 secondes. Le reste du temps dépend énormément de la puissance du serveur et de la taille du document généré. Dans notre environnement nous n'avons pas rencontré de grosse latence, mais il est possible que cela soit différent dans d'autres contextes.

Étant donné que le document est stocké en cache après la première génération, il faut avoir conscience que ce problème ne se produit que la première fois que l'on demande le document. Les fois suivantes c'est le document en cache qui est servi instantanément. Il est donc possible de jouer avec ça pour pré-générer soi-même manuellement les documents dont ont sait qu'ils poseront problème, de sorte que les visiteurs n'auront pas de latence ensuite.

Une solution consisterait à changer le fonctionnement du générateur pour que les PDF soient générés non plus à la demande, mais plutôt au moment de la publication du document, de sorte que le PDF soit déjà disponible en cache lors du premier clic de téléchargement. Cela réglerait le problème de latences.

Timeout d'Hyphenopoly et PDF vide

Certains articles renvoient des pages blanches lorsqu'il contiennent des langues non supportées par Hyphenopoly. L'erreur suivante est levée et semble faire planter Paged.js :

XHRGET
https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/patterns/index.php?page=404
[HTTP/1.1 404 Not Found 16ms]

Error: File ja.wasm can't be loaded from https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/patterns/
    instantiateWasmEngine https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/Hyphenopoly.js:895
    promise callback*instantiateWasmEngine https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/Hyphenopoly.js:879
    <anonymous> https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/Hyphenopoly.js:920
    <anonymous> https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/Hyphenopoly.js:919
    <anonymous> https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/Hyphenopoly.js:938
    <anonymous> https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/Hyphenopoly.js:939
[Hyphenopoly.js:27:39](https://monsite.org/share/plugins/custom/pdfgen/public/vendor/hyphenopoly/Hyphenopoly.js)

Hyphenopoly_Loader.js timed out.

Les langues supportées sont : https://github.com/edinum/pdfgen/tree/master/public/vendor/hyphenopoly/patterns

Il faut catcher correctement cette erreur pour éviter de faire planter la suite de la génération de la page.

Exemple : dev/novademo/109

Potentiellement lié : #10.

Erreur lors de l'utilisation de l'option pdf_sitelogo

Je créé ce ticket ici pour archive.

Le champ de formulaire qui permet l'import du logo via les paramètres du plugin ne fonctionne pas à cause d'un bug de Lodel. Un correctif a été soumis à OpenEdition, en attente de merge : OpenEdition/lodel#123

En attendant il faut privilégier l'insertion du logo dans tpl/pdf_logo.png.

Not Found

Bonjour,
J'essaye de faire fonctionner votre plugin qui me renvoie une erreur 404 lorsque je demande la génération du PDF (la prévisualisation avec ?do=_pdfgen_view fonctionne). Lodel est installé sur une VM locale (virtualbox) et le système de conversion sur mon instance Docker Desktop (windows). Je vous mets le message d'erreur ci-dessous. Auriez-vous une idée du problème ?
Cordialement.

#0 LodelException::exception_handler(TheCodingMachine\Gotenberg\ClientException Object ([*message] => Not Found,[Exceptionstring] => ,[*code] => 404,[*file] => /var/www/html/lodel/share/plugins/custom/pdfgen/vendor/thecodingmachine/gotenberg-php-client/src/Client.php,[*line] => 106,[Exceptiontrace] => Array ([0] => Array ([file] => /var/www/html/lodel/share/plugins/custom/pdfgen/vendor/thecodingmachine/gotenberg-php-client/src/Client.php,[line] => 57,[function] => handleResponse,[class] => TheCodingMachine\Gotenberg\Client,[type] => ->,[args] => Array ([0] => GuzzleHttp\Psr7\Response Object ([GuzzleHttp\Psr7\ResponsereasonPhrase] => Not Found,[GuzzleHttp\Psr7\ResponsestatusCode] => 404,[GuzzleHttp\Psr7\Responseheaders] => Array ([Content-Length] => Array ([0] => 9),[Content-Type] => Array ([0] => text/plain; charset=UTF-8),[Date] => Array ([0] => Thu, 28 Oct 2021 10:01:01 GMT),[Gotenberg-Trace] => Array ([0] => da10a4c3-d5ae-4081-8d45-55824cf375e3)),[GuzzleHttp\Psr7\ResponseheaderNames] => Array ([content-length] => Content-Length,[content-type] => Content-Type,[date] => Date,[gotenberg-trace] => Gotenberg-Trace),[GuzzleHttp\Psr7\Responseprotocol] => 1.1,[GuzzleHttp\Psr7\Responsestream] => GuzzleHttp\Psr7\Stream Object ([GuzzleHttp\Psr7\Streamstream] => Resource id #56,[GuzzleHttp\Psr7\Streamsize] => ,[GuzzleHttp\Psr7\Streamseekable] => 1,[GuzzleHttp\Psr7\Streamreadable] => 1,[GuzzleHttp\Psr7\Streamwritable] => 1,[GuzzleHttp\Psr7\Streamuri] => php://temp,[GuzzleHttp\Psr7\StreamcustomMetadata] => Array ())))),[1] => Array ([file] => /var/www/html/lodel/share/plugins/custom/pdfgen/pdfgen.php,[line] => 68,[function] => store,[class] => TheCodingMachine\Gotenberg\Client,[type] => ->,[args] => Array ([0] => TheCodingMachine\Gotenberg\URLRequest Object ([TheCodingMachine\Gotenberg\URLRequestURL] => http://ara.local/lodel/sitenova/?do=_pdfgen_view&document=67&lang=fr&debug=,[TheCodingMachine\Gotenberg\ChromeRequestwaitDelay] => ,[TheCodingMachine\Gotenberg\ChromeRequestheader] => ,[TheCodingMachine\Gotenberg\ChromeRequestfooter] => ,[TheCodingMachine\Gotenberg\ChromeRequestpaperWidth] => 8.27,[TheCodingMachine\Gotenberg\ChromeRequestpaperHeight] => 11.7,[TheCodingMachine\Gotenberg\ChromeRequestmarginTop] => 0,[TheCodingMachine\Gotenberg\ChromeRequestmarginBottom] => 0,[TheCodingMachine\Gotenberg\ChromeRequestmarginLeft] => 0,[TheCodingMachine\Gotenberg\ChromeRequestmarginRight] => 0,[TheCodingMachine\Gotenberg\ChromeRequestlandscape] => ,[TheCodingMachine\Gotenberg\ChromeRequestpageRanges] => ,[TheCodingMachine\Gotenberg\ChromeRequestgoogleChromeRpccBufferSize] => ,[TheCodingMachine\Gotenberg\ChromeRequestscale] => ,[TheCodingMachine\Gotenberg\RequestresultFilename] => ,[TheCodingMachine\Gotenberg\RequestwaitTimeout] => ,[TheCodingMachine\Gotenberg\RequestwebhookURL] => ,[TheCodingMachine\Gotenberg\RequestwebhookURLTimeout] => ,[*customHTTPHeaders] => Array ()),[1] => /var/www/html/lodel/sitenova/CACHE/e71411a00aec7a755a33c6dc3f8547e9)),[2] => Array ([file] => /var/www/html/lodel/lodel/scripts/logic/class.mainplugins.php,[line] => 90,[function] => getAction,[class] => pdfgen,[type] => ->,[args] => Array ([0] => Array ([do] => pdfgen_get,[document] => 67,[lang] => fr,[id] => 0,[idgroup] => 0,[idclass] => 0,[idparent] => 0,[idtype] => 0,[identity] => 0,[version] => 1.0,[shareurl] => /lodel/share,[extensionscripts] => php,[currenturl] => http://ara.local/lodel/sitenova/?do=_pdfgen_get&document=67&lang=fr,[siteroot] => ,[sharedir] => .././share,[tableprefix] => ,[tp] => ,[base_rep] => Array (),[charset] => utf-8,[site] => sitenova,[db_charset] => utf8mb4,[siteinfos] => Array ([id] => 1,[title] => Site Nova,[subtitle] => ,[name] => sitenova,[path] => /sitenova,[url] => http://ara.local/lodel/sitenova,[langdef] => ,[lang] => ,[status] => 1,[upd] => 2021-10-27 14:38:13),[siteurl] => http://ara.local/lodel/sitenova,[options] => Array ([metadonneessite] => Array ([titresite] => Titresite,[soustitresite] => ,[titresiteabrege] => Titre abrégé du site,[descriptionsite] => ,[urldusite] => ,[issn] => ,[issn_electronique] => ,[editeur] => ,[adresseediteur] => ,[producteursite] => ,[diffuseursite] => ,[droitsauteur] => ,[directeurpublication] => ,[redacteurenchef] => ,[courrielwebmaster] => ,[courrielabuse] => ,[motsclesdusite] => ,[langueprincipale] => fr,[typepublication] => Revue,[pdf] => ,[pdf_electronique] => ,[imagehabillee] => ),[diffusionelectronique] => Array ([bouquetfreemium] => ,[librairieelectronique] => ,[prixcommercialisationnumero] => ),[optionsaffichage] => Array ([affichageindexannuel] => ,[affichageindexparlangue] => ,[affichageindexcr] => ,[affichageindexpersonnes] => First name Surname,[barrenavaffichagenumero] => per issue,[affichageremerciements] => top,[pub_level_accordion] => none,[firstlogo] => ,[math] => ,[hide_varia] => ),[optionsgenerales] => Array ([emversion] => 1.0.2)),[sitelang] => fr,[defaultlang] => Array ([AR] => العربية,[BS] => Bosanski jezik,[CS] => Česky,[DE] => Deutsch,[EL] => Ελληνικά,[EN] => English,[ES] => Español,[ET] => Eesti keel,[EU] => Euskara,[FA] => ‫فارسی,[FI] => Suomen kieli,[FR] => Français,[GA] => Gaeilge,[HR] => Hrvatski,[HU] => Magyar,[IT] => Italiano,[HE] => ‫עברית,[JA] => 日本語,[KV] => коми кыв,[LA] => Latine,[LV] => Latviešu valoda,[MK] => македонски јазик,[NL] => Nederlands,[OC] => Occitan,[PL] => Polski,[PT] => Português,[RU] => Русский язык,[SL] => Slovenščina,[SR] => српски језик,[SV] => Svenska,[TR] => Türkçe,[ZH] => 中文),[installlang] => fr,[login] => ssonnet,[lodeluser] => Array ([rights] => 128,[lang] => fr,[id] => 2,[gui_complexity] => 64,[name] => ssonnet,[groups] => ,[desk] => 1,[restricted_user] => 1,[adminlodel] => 1,[admin] => 1,[editor] => 1,[redactor] => 1,[visitor] => 1,[idsession] => ,[session] => ),[clearcacheurl] => /lodel/sitenova/?do=_pdfgen_get&document=67&lang=fr&clearcache=oui,[lo] => plugins,[error] => Array (),[triggers] => Array ([0] => preview,[1] => postview,[2] => preedit,[3] => postedit,[4] => prelogin,[5] => postlogin,[6] => preauth,[7] => postauth)),[1] => Array ())),[3] => Array ([file] => /var/www/html/lodel/lodel/scripts/controller.php,[line] => 543,[function] => factory,[class] => MainPluginsLogic,[type] => ->,[args] => Array ([0] => Array ([do] => pdfgen_get,[document] => 67,[lang] => fr,[id] => 0,[idgroup] => 0,[idclass] => 0,[idparent] => 0,[idtype] => 0,[identity] => 0,[version] => 1.0,[shareurl] => /lodel/share,[extensionscripts] => php,[currenturl] => http://ara.local/lodel/sitenova/?do=_pdfgen_get&document=67&lang=fr,[siteroot] => ,[sharedir] => .././share,[tableprefix] => ,[tp] => ,[base_rep] => Array (),[charset] => utf-8,[site] => sitenova,[db_charset] => utf8mb4,[siteinfos] => Array ([id] => 1,[title] => Site Nova,[subtitle] => ,[name] => sitenova,[path] => /sitenova,[url] => http://ara.local/lodel/sitenova,[langdef] => ,[lang] => ,[status] => 1,[upd] => 2021-10-27 14:38:13),[siteurl] => http://ara.local/lodel/sitenova,[options] => Array ([metadonneessite] => Array ([titresite] => Titresite,[soustitresite] => ,[titresiteabrege] => Titre abrégé du site,[descriptionsite] => ,[urldusite] => ,[issn] => ,[issn_electronique] => ,[editeur] => ,[adresseediteur] => ,[producteursite] => ,[diffuseursite] => ,[droitsauteur] => ,[directeurpublication] => ,[redacteurenchef] => ,[courrielwebmaster] => ,[courrielabuse] => ,[motsclesdusite] => ,[langueprincipale] => fr,[typepublication] => Revue,[pdf] => ,[pdf_electronique] => ,[imagehabillee] => ),[diffusionelectronique] => Array ([bouquetfreemium] => ,[librairieelectronique] => ,[prixcommercialisationnumero] => ),[optionsaffichage] => Array ([affichageindexannuel] => ,[affichageindexparlangue] => ,[affichageindexcr] => ,[affichageindexpersonnes] => First name Surname,[barrenavaffichagenumero] => per issue,[affichageremerciements] => top,[pub_level_accordion] => none,[firstlogo] => ,[math] => ,[hide_varia] => ),[optionsgenerales] => Array ([emversion] => 1.0.2)),[sitelang] => fr,[defaultlang] => Array ([AR] => العربية,[BS] => Bosanski jezik,[CS] => Česky,[DE] => Deutsch,[EL] => Ελληνικά,[EN] => English,[ES] => Español,[ET] => Eesti keel,[EU] => Euskara,[FA] => ‫فارسی,[FI] => Suomen kieli,[FR] => Français,[GA] => Gaeilge,[HR] => Hrvatski,[HU] => Magyar,[IT] => Italiano,[HE] => ‫עברית,[JA] => 日本語,[KV] => коми кыв,[LA] => Latine,[LV] => Latviešu valoda,[MK] => македонски јазик,[NL] => Nederlands,[OC] => Occitan,[PL] => Polski,[PT] => Português,[RU] => Русский язык,[SL] => Slovenščina,[SR] => српски језик,[SV] => Svenska,[TR] => Türkçe,[ZH] => 中文),[installlang] => fr,[login] => ssonnet,[lodeluser] => Array ([rights] => 128,[lang] => fr,[id] => 2,[gui_complexity] => 64,[name] => ssonnet,[groups] => ,[desk] => 1,[restricted_user] => 1,[adminlodel] => 1,[admin] => 1,[editor] => 1,[redactor] => 1,[visitor] => 1,[idsession] => ,[session] => ),[clearcacheurl] => /lodel/sitenova/?do=_pdfgen_get&document=67&lang=fr&clearcache=oui,[lo] => plugins,[error] => Array (),[triggers] => Array ([0] => preview,[1] => postview,[2] => preedit,[3] => postedit,[4] => prelogin,[5] => postlogin,[6] => preauth,[7] => postauth)),[1] => Array (),[2] => Array ([0] => pdfgen,[1] => getAction))),[4] => Array ([file] => /var/www/html/lodel/lodel/scripts/controller.php,[line] => 133,[function] => _execute,[class] => Controller,[type] => ->,[args] => Array ([0] => Array ([do] => pdfgen_get,[document] => 67,[lang] => fr,[id] => 0,[idgroup] => 0,[idclass] => 0,[idparent] => 0,[idtype] => 0,[identity] => 0,[version] => 1.0,[shareurl] => /lodel/share,[extensionscripts] => php,[currenturl] => http://ara.local/lodel/sitenova/?do=_pdfgen_get&document=67&lang=fr,[siteroot] => ,[sharedir] => .././share,[tableprefix] => ,[tp] => ,[base_rep] => Array (),[charset] => utf-8,[site] => sitenova,[db_charset] => utf8mb4,[siteinfos] => Array ([id] => 1,[title] => Site Nova,[subtitle] => ,[name] => sitenova,[path] => /sitenova,[url] => http://ara.local/lodel/sitenova,[langdef] => ,[lang] => ,[status] => 1,[upd] => 2021-10-27 14:38:13),[siteurl] => http://ara.local/lodel/sitenova,[options] => Array ([metadonneessite] => Array ([titresite] => Titresite,[soustitresite] => ,[titresiteabrege] => Titre abrégé du site,[descriptionsite] => ,[urldusite] => ,[issn] => ,[issn_electronique] => ,[editeur] => ,[adresseediteur] => ,[producteursite] => ,[diffuseursite] => ,[droitsauteur] => ,[directeurpublication] => ,[redacteurenchef] => ,[courrielwebmaster] => ,[courrielabuse] => ,[motsclesdusite] => ,[langueprincipale] => fr,[typepublication] => Revue,[pdf] => ,[pdf_electronique] => ,[imagehabillee] => ),[diffusionelectronique] => Array ([bouquetfreemium] => ,[librairieelectronique] => ,[prixcommercialisationnumero] => ),[optionsaffichage] => Array ([affichageindexannuel] => ,[affichageindexparlangue] => ,[affichageindexcr] => ,[affichageindexpersonnes] => First name Surname,[barrenavaffichagenumero] => per issue,[affichageremerciements] => top,[pub_level_accordion] => none,[firstlogo] => ,[math] => ,[hide_varia] => ),[optionsgenerales] => Array ([emversion] => 1.0.2)),[sitelang] => fr,[defaultlang] => Array ([AR] => العربية,[BS] => Bosanski jezik,[CS] => Česky,[DE] => Deutsch,[EL] => Ελληνικά,[EN] => English,[ES] => Español,[ET] => Eesti keel,[EU] => Euskara,[FA] => ‫فارسی,[FI] => Suomen kieli,[FR] => Français,[GA] => Gaeilge,[HR] => Hrvatski,[HU] => Magyar,[IT] => Italiano,[HE] => ‫עברית,[JA] => 日本語,[KV] => коми кыв,[LA] => Latine,[LV] => Latviešu valoda,[MK] => македонски јазик,[NL] => Nederlands,[OC] => Occitan,[PL] => Polski,[PT] => Português,[RU] => Русский язык,[SL] => Slovenščina,[SR] => српски језик,[SV] => Svenska,[TR] => Türkçe,[ZH] => 中文),[installlang] => fr,[login] => ssonnet,[lodeluser] => Array ([rights] => 128,[lang] => fr,[id] => 2,[gui_complexity] => 64,[name] => ssonnet,[groups] => ,[desk] => 1,[restricted_user] => 1,[adminlodel] => 1,[admin] => 1,[editor] => 1,[redactor] => 1,[visitor] => 1,[idsession] => ,[session] => ),[clearcacheurl] => /lodel/sitenova/?do=_pdfgen_get&document=67&lang=fr&clearcache=oui,[lo] => plugins,[error] => Array (),[triggers] => Array ([0] => preview,[1] => postview,[2] => preedit,[3] => postedit,[4] => prelogin,[5] => postlogin,[6] => preauth,[7] => postauth)),[1] => pdfgen_getAction,[2] => plugins,[3] => Array ([0] => plugins),[4] => Array ())),[5] => Array ([file] => /var/www/html/lodel/lodel/src/index.php,[line] => 94,[function] => execute,[class] => Controller,[type] => ->,[args] => Array ([0] => Array ([0] => plugins),[1] => plugins))),[Exceptionprevious] => ))

Difficultés de configuration

Bonjour,

nous rencontrons quelques difficultés à faire fonctionner pdfgen.

  • Lodel fonctionne sur une machine virtuelle.
  • Le plugin pdfgen est installé.
  • Le docker-compose up est lancé à partir du dossier du plugin.

Donc Lodel/nginx et Docker sont sur la même machine.

(est-ce nécessaire d’avoir le conteneur sur un autre serveur? Je ne connais rien à Docker…).

Dans le docker-compose.yml nous avons renseigné :

  • BASIC_AUTH_USER et BASIC_AUTH_PASS.
  • PROXY_URL comme http://127.0.0.1:3000 (puisque même machine)
  • ports comme 90:90. (pour éviter le conflit avec nginx)

En conséquence l’URL de configuration du plugin est sous la forme http://id:[email protected]:90.

Après lecture de l’issue 6, nous avons rectifié thecodingmachine/gotenberg:latest en thecodingmachine/gotenberg:6.

Aurions nous manqué quelque chose ?

Césure dans les sous-titres généré par PDFgen

Bonjour,

Nous avons remarqué une césure malheureuse généré par PDFgen sur l'article suivant:
https://publications-prairial.fr/diversite/index.php?id=4331.
dirverste_sous-titre_cesure

En intervenant sur le css pour empêcher la césure dans le fichier pdfgen_custom_css, le passage à la ligne est également étonnant :

diversite_avec-modif

Nous n'avons pas trouver d'espace insécable intempestif dans le fichier source. Toutefois en ajoutant un espace avant "hétérogènes" dans l'inspecteur du navigateur, nous parvenons au résultat attendu:
diversite_avec-espace

Pensez vous que le soucis vient du calcul de l'algorithme (il semble sur cet exemple que la césure sur "classification" n'est pas nécessaire
au vu du nombre de caractère) ou du fichier source?

Ignorer le cache de Gotenberg quand les enfants sont modifiés

Actuellement le cache de Gotenberg est ignoré quand le document lui-même change. Voir : https://github.com/edinum/pdfgen/blob/f067df72f30c60baa33188e744f67cb2de0a53a0/pdfgen.php#L60

Il existe des situations où l'ajout/suppression/modification d'une entité enfant entraîne un changement dans la page, ce qui nécessiterait normalement d'ignorer le cache.

Par exemple le cas (rare) où l'article possède une image d'accroche.
Dans le cadre d'https://github.com/edinum/alyoda qui utilise une structure non standard, cela arrive beaucoup plus fréquemment.

Il faudrait donc idéalement que l'on vérifie aussi la date de modification des enfants du document pour déterminer si la version cachée doit ou non être servie.

la génération du pdf plante avec message "context has timed out"

Bonjour
Après ajout des derniers patchs, je viens de tester sur 2 cas qui posaient problèmes à cause des images (pdf tronqués).
L'un fonctionne maintenant. Pour l'autre, ça plante avant même l'affichage du pdf avec le message suivant :

PHP Error  in file '/var/www/lodel/share/plugins/custom/pdfgen/vendor/thecodingmachine/gotenberg-php-client/src/Client.php' on line 106 : 
{"message":"context has timed out"}

l'url de l'article (voir les sources en fichier attaché)
https://publications-prairial.fr/cliothemis/index.php?id=568
CLIO_15_06_chenu.zip

Problème de génération de certains PDF

Bonjour,
Le générateur de PDF est activé sur une revue de la plateforme Prairial. Le générateur fonctionne généralement bien. Mais deux PDF qui ont été imparfaitement générés :
https://publications-prairial.fr/pratiques-et-formes-litteraires/index.php?id=221
https://publications-prairial.fr/pratiques-et-formes-litteraires/index.php?id=201
La totalité des PDF n’a pas été générée. Il semblerait que des illustrations de grande taille ont posé problème et que le processus s’est arrêté en cours de route, mais tout en produisant un PDF valide.

Merci d'avance pour votre aide.
Jean-Luc de Ochandiano
Université Jean-Moulin Lyon 3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.