[JAVA] Verwendung japanischer Schriftarten und Fremdzeichen in Jasper Report

Ich werde vorstellen, wie japanische Schriftarten und Fremdzeichen in der PDF-Ausgabe mit JasperReports verwendet werden.

Voraussetzungen

Was du machen willst

Vorbereitung

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>

Verwendung japanischer Schrift

Platzieren Sie die zu verwendende Schriftart im Klassenpfad

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 eine XML-Datei für die fontFamily-Definition

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>

Zum Lesen der XML-Datei fontFamily definieren

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

Geben Sie die Schriftart in der Layoutdefinitionsdatei an

fontFamily-Definition Geben Sie den in xml definierten Schriftnamen (fontFamily-Namen) im Textfeld oder im statischen Text an.

Verwendung von Fremdzeichen

Platzieren Sie die externe Zeichenschrift im Klassenpfad

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.

Externe Zeichen zu fontFamily definition xml hinzugefügt

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>

Ermöglichen Sie die Verwendung mit IPA-Schriftarten

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

Verwendung japanischer Schriftarten und Fremdzeichen in Jasper Report
Verwendung von Abstract Class und Interface in Java richtig
Umgang mit Datum und Uhrzeit in Ruby. Verwenden Sie Datum und Uhrzeit richtig.
[Java8] Angemessene Verwendung von Compareable und Comparator unter dem Gesichtspunkt der Mitarbeitersortierung
Verwenden Sie redirect_to und rendern Sie richtig
Ordnungsgemäße Verwendung von Mockito und PowerMock
Unterschied zwischen UI-Beschriftung durch Char Wrapping und Word Wrapping in der japanischen Anzeige
(In 1 Minute bestimmen) Wie verwende ich leer ?, Leer? Und präsent?
Zusammenfassung der Hashes und Symbole in Ruby
Japanische Lokalisierung von CentOS 8 und japanisches Tastaturlayout
Richtige Verwendung der Schnittstelle und der abstrakten Klasse
[Ruby] Schleifenunterscheidung und Verwendung in Ruby
Japanische Einstellungen für MySQL im Docker-Container
Diskriminierung von Enum in Java 7 und höher
In MessageResources.properties beschriebene japanische Zeichen sind verstümmelt
[Java] Verwendung von final in der lokalen Variablendeklaration
Kriterien für die ordnungsgemäße Verwendung von render und redirect_to
Einführung von Rspec und japanischer Lokalisierung von Fehlermeldungen
Verwendung von JQuery in Rails 6 js.erb
Zum Verständnis von Karte und Flatmap in Stream (1)
Verwenden Sie Shift Right und Shift Left in Selen richtig
[Rails] Rangfolge und Paginierung in der Reihenfolge der Likes