Ich werde vorstellen, wie japanische Schriftarten und Fremdzeichen in der PDF-Ausgabe mit JasperReports verwendet werden.
Erstellen Sie ein Maven-Projekt und fügen Sie der Abhängigkeit Jasperreports hinzu.
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.10.0</version>
</dependency>
Platzieren Sie die Schriftartdatei (* .ttf) im "src / main / resources / fonts" des Projekts. Dies schließt die Schriftartdatei in das JAR (oder den Krieg) ein, sodass Sie die Schriftartdatei nicht auf dem tatsächlich laufenden Server installieren müssen.
Erstellen Sie "src / main / resources / fonts / fontsfamily-ipa.xml" und schreiben Sie die folgende Definition. Der Pfad der Schriftartdatei ist der Pfad vom Klassenpfad.
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="IPAex Gothic">
<normal><![CDATA[fonts/ipaexg.ttf]]></normal>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
<fontFamily name="IPAex Mincho">
<normal><![CDATA[fonts/ipaexm.ttf]]></normal>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
</fontFamilies>
Identity-H
in <pdfEncoding>
zeigt horizontales Schreiben an. Vertikales Schreiben ist "Identität-V".Erstellen Sie die JasperReports-Erweiterungsdefinitionsdatei src / main / resources / jasperreports_extension.properties` und schreiben Sie die folgenden Definitionen. Der Pfad und Name dieser Datei ist festgelegt (JasperReports-Spezifikation).
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.ipafonts=fonts/fontsfamily-ipa.xml
fontFamily-Definition Geben Sie den in xml definierten Schriftnamen (fontFamily-Namen) im Textfeld oder im statischen Text an.
Platzieren Sie die externe Zeichensatzdatei auf die gleiche Weise wie die IPA-Schriftart in der Datei src / main / resources / fonts des Projekts. Die fremde Schriftartdatei heißt normalerweise "EUDC.tte", benennt sie jedoch in ".ttf" um, damit JasperReports sie erkennt.
Fügen Sie der zuvor definierten XML-Datei fontFamily die Schriftart fontFamily hinzu, die das äußere Zeichen angibt
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
...
<fontFamily name="_EUDC">
<normal><![CDATA[fonts/EUDC.ttf]]></normal>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
</fontFamilies>
So wie es ist, ist nur die Schriftart für Fremdzeichen definiert, aber in Wirklichkeit erscheinen Fremdzeichen in normalen Sätzen. Daher muss definiert werden, dass andere Schriftarten gleichzeitig verwendet werden können. Wenn hier "IPAex Gothic" oder "IPAex Mincho" für die Schriftart angegeben ist, definieren Sie "fontSet" in der XML-Datei "fontFamily", damit auch die externen Zeichen angezeigt werden, und legen Sie den Namen der ursprünglichen "fontFamily" fest. Veränderung.
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="_IPAex Gothic"> <!--benennen_Hinzufügen-->
<normal><![CDATA[fonts/ipaexg.ttf]]></normal>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
<fontFamily name="_IPAex Mincho">
<normal><![CDATA[fonts/ipaexm.ttf]]></normal>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
<fontFamily name="_EUDC">
<normal><![CDATA[fonts/EUDC.ttf]]></normal>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
<fontSet name="IPAex Gothic">
<family familyName="_IPAex Gothic" primary="true" />
<family familyName="_EUDC" />
</fontSet>
<fontSet name="IPAex Mincho">
<family familyName="_IPAex Mincho" primary="true" />
<family familyName="_EUDC" />
</fontSet>
</fontFamilies>
Zeichen, die nicht in der IPA-Schriftart angezeigt werden können, verwenden jetzt die externe Zeichenschrift.
Recommended Posts