BeDesk-Express

  • État Fermée
  • Pourcentage achevé
    100%
  • 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
Concerne le projet: BeDesk-Express
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 :

  1. Utiliser un lien de ressource interne menant directement dans le paquetage (ClassLoader). En remplacement de la recherche du fichier dans le cache.
  2. 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.

Fermée par  DevTeam
2018-01-29 16:49
Raison de la fermeture :  Fixé

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche