- État Fermée
- Pourcentage achevé
- Type Garde-fou
- Catégorie Application → Core
-
Assignée à
DevTeam - Système d'exploitation Mac OS X
- Sévérité Haute
- Priorité Haute
- Basée sur la version
- Due pour la version 18.0
-
Échéance
Non décidée
- Votes
- Privée
Ouverte par DevTeam - 2018-01-29
Dernière modification par DevTeam - 2018-01-29
FS#1787 - Erreur lors de l'export PDF : Fichier TTF non trouvé
Le fichier TrueType de la police par défaut ne peut être trouvé sur le disque de l’ordinateur. Il en résulte l’erreur interne suivante:
HTMLDOC *** AutoCheckFontSize patching font size 8 -> 10 *** HTMLDOC *** AutoCheckFontSize patching font size 6 -> 7 *** <#> Report length : 10449 <#> Report created in 29ms... TRACE 0:00:38.190 kit.reading... CREATE PageClassicHeaderImage : javax.swing.ImageIcon@52fc87c4 TRACE 0:00:38.271 kit.reading done. TRACE 0:00:38.285 kit.reading... TRACE 0:00:38.292 kit.reading done. TRACE 0:00:38.317 kit.reading... TRACE 0:00:38.384 kit.reading done. BeDeskLauncher->AppInUseDaemon : Buzz @ 2018-01-29T11:05:44.086110Z export PDF... 2 PAGES... java.io.IOException: Open Sans.ttf not found as file or resource. at com.lowagie.text.pdf.RandomAccessFileOrArray.(RandomAccessFileOrArray.java:106) at com.lowagie.text.pdf.TrueTypeFont.process(TrueTypeFont.java:633) at com.lowagie.text.pdf.TrueTypeFontUnicode.(TrueTypeFontUnicode.java:99) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:685) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:603) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:546) at bedesk.font_tk.FontTk.DefaultBaseFont(FontTk.java:584) at bedesk.font_tk.FontTk$1.awtToPdf(FontTk.java:142) at com.lowagie.text.pdf.PdfGraphics2D.getCachedBaseFont(PdfGraphics2D.java:1006) at com.lowagie.text.pdf.PdfGraphics2D.setFont(PdfGraphics2D.java:999) at com.lowagie.text.pdf.PdfGraphics2D.(PdfGraphics2D.java:209) at com.lowagie.text.pdf.PdfContentByte.createGraphics(PdfContentByte.java:2903) at bedesk.printing.MyPDFWriter.writePrintable(MyPDFWriter.java:167) at bedesk.printing.Imprimer$1PDFThread.run(Imprimer.java:1056) Exception in thread "Thread-25" java.lang.NullPointerException at bedesk.font_tk.FontTk$1.awtToPdf(FontTk.java:143) at com.lowagie.text.pdf.PdfGraphics2D.getCachedBaseFont(PdfGraphics2D.java:1006) at com.lowagie.text.pdf.PdfGraphics2D.setFont(PdfGraphics2D.java:999) at com.lowagie.text.pdf.PdfGraphics2D.(PdfGraphics2D.java:209) at com.lowagie.text.pdf.PdfContentByte.createGraphics(PdfContentByte.java:2903) at bedesk.printing.MyPDFWriter.writePrintable(MyPDFWriter.java:167) at bedesk.printing.Imprimer$1PDFThread.run(Imprimer.java:1056)
Variante du problème sur un autre poste:
export PDF... TRACE 0:00:48.986 <bedesk.trk4b._Trk4b_Tk._resync0> _Trk4b_Tk._resync(Thread[AWT-EventQueue-0,6,main],false) [ RSYNC ] keylistdb.storage.logviewengine.replicationagent.KeyChainedReplicationAgentLogViewEngine.consume_loop [ GET LINE ] 428 1 PAGES... java.io.IOException: Open Sans.ttf not found as file or resource. at com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(RandomAccessFileOrArray.java:106) at com.lowagie.text.pdf.TrueTypeFont.process(TrueTypeFont.java:633) at com.lowagie.text.pdf.TrueTypeFontUnicode.<init>(TrueTypeFontUnicode.java:99) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:685) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:603) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:546) at bedesk.font_tk.FontTk.DefaultBaseFont(FontTk.java:584) at bedesk.font_tk.FontTk$1.awtToPdf(FontTk.java:142) at com.lowagie.text.pdf.PdfGraphics2D.getCachedBaseFont(PdfGraphics2D.java:1006) at com.lowagie.text.pdf.PdfGraphics2D.setFont(PdfGraphics2D.java:999) at com.lowagie.text.pdf.PdfGraphics2D.<init>(PdfGraphics2D.java:209) at com.lowagie.text.pdf.PdfContentByte.createGraphics(PdfContentByte.java:2903) at bedesk.printing.MyPDFWriter.writePrintable(MyPDFWriter.java:167) at bedesk.printing.Imprimer$1PDFThread.run(Imprimer.java:1056) Exception in thread "Thread-42" java.lang.NullPointerException at bedesk.font_tk.FontTk$1.awtToPdf(FontTk.java:143) at com.lowagie.text.pdf.PdfGraphics2D.getCachedBaseFont(PdfGraphics2D.java:1006) at com.lowagie.text.pdf.PdfGraphics2D.setFont(PdfGraphics2D.java:999) at com.lowagie.text.pdf.PdfGraphics2D.<init>(PdfGraphics2D.java:209) at com.lowagie.text.pdf.PdfContentByte.createGraphics(PdfContentByte.java:2903) at bedesk.printing.MyPDFWriter.writePrintable(MyPDFWriter.java:167) at bedesk.printing.Imprimer$1PDFThread.run(Imprimer.java:1056)
Ce problème ne devrait pas se produire car la police utilisée par défaut est ‘Open Sans’, une police intégrée et fournie avec le logiciel.
Donc, à moins qu’il n’y ait une erreur sur le disque, la police est bien là.
Note : Ce problème se manifeste uniquement sur macOS. Aucun rapport correspondant n’a été fourni sur des machines équipées de Windows.
—
Lors du déploiement, les polices intégrées sont ajoutées dans le dossier ‘ressources’ du cache de la base de données. Il sont donc présents et accessibles.
—
Pour contourner le souci, on peut faire 2 choses :
- Utiliser un lien de ressource interne menant directement dans le paquetage (ClassLoader). En remplacement de la recherche du fichier dans le cache.
- Si on ne trouve pas de fichier source, utiliser une autre police, même si celle-ci ne peut être embarquée car aucun texte ne sera imprimé avec cette police. Le moteur d’impression utilise ses propres polices. C’est pour prendre en charge les polices par défaut manquantes qu’il faut ajouter soi-même une police par défaut supplémentaire. Toutefois, celle-ci n’est pas utilisée pour l’export du document.
En procédant à cela, le type de tâche doit être requalifié de ‘bug’ à ‘garde-fou’.
—
ok pour moi.
—