JasperReports: So fügen Sie Schriftarten hinzu, die nicht im Klassenpfad der Anwendung enthalten sind

Ich versuche, eine Schriftart zu verwenden, die nicht auf meinem lokalen Betriebssystem installiert isJasperReports. Der Jasper-Bericht verwendet auf diese Weise:

<textField>  
  <reportElement x="0" y="0" width="137" height="20"/>  
        <textElement>  
    <font fontName="Corbel" size="12"/>  
    </textElement>  
    <textFieldExpression class="java.lang.String"><![CDATA[$F{something}]]></textFieldExpression>  
</textField>

Die Schriftart mit dem NamenCorbel wurde als Schriftarterweiterung (mit iReport) exportiert und ist in der Datei (Corbel.jar) in einem Ordner auf meinem System enthalten. Ich füge diese Erweiterung dem Klassenpfad der Anwendung hinzu, indem ich einen Code wie folgt verwende:

ClassLoader cl = new URLClassLoader(new URL[] {new URL("file:///D:/path/to/Corbel_jar_folder/")});  
param = new HashMap();    
param.put(JRParameter.REPORT_CLASS_LOADER, cl);  
jasperReport = JasperCompileManager.compileReport("d:/path/to/Report_with_Corbel_font.jrxml");  
jasperPrint = JasperFillManager.fillReport(jasperReport, param, new JREmptyDataSource());

Nachdem der Bericht gefüllt ist, exportiere ich ihn mit einemJRPdfExporter. In der PDF-Ergebnisdatei hat das Element jedoch nicht dasCorbel font angewendet. Ich habe den PDF-Export nicht aufgenommen, da ich denke, dass das Problem irgendwo bei der Füllung liegt. Ich habe zahlreiche Posts und Fragen zum Verwenden / Einschließen von Schriftarten (d. H. Font-Erweiterungen) in @ gesucht und geleseJasperReports; Ich weiß immer noch nicht, wo der Fehler oder das Problem liegt. Jede Hilfe wäre sehr dankbar.

Danke im Voraus! (Entschuldigung für den schlechten Codeeinzug und ich hoffe, ich habe genug Details hinzugefügt)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage