web-dev-qa-db-ja.com

レポートをPDFにエクスポートする場合はフォントを変更してください

Jaspersoft Studio 5.2を使用していて、Courier Newフォントでレポートを作成しました。これをPDFにエクスポートすると、フォントがArial)に変更されます。

Studioツールだけを使用しています。レポートをプレビューすると問題ありませんが、エクスポートすると発生します。

Courier Newフォントでエクスポートするレポートを使用して何ができますか?

レポートで使用しているtextFieldモデル:

<textField pattern="dd/MM/yyyy  HH:mm:ss">
    <reportElement uuid="f50b279a-b480-498f-8af7-be7e23c4b80b" x="415" y="11" width="105" height="10"/>
    <textElement>
        <font fontName="Courier New" size="8"/>
    </textElement>
    <textFieldExpression><![CDATA[new Java.util.Date()]]></textFieldExpression>
</textField>
9
Chico Luiz

Font Extensionsメカニズムを使用する必要があります。

ステップ

JaspersoftStudioでフォントを作成する

ウィンドウ->設定ダイアログで新しいフォントを作成する必要があります。

enter image description here

Font Familyダイアログを使用すると、フォントにttfファイルを設定できます。

enter image description here

レポートのスタイルを作成する

コンテキストメニューを使用して新しいスタイルを作成する必要があります。

enter image description here

その後、このスタイルにfontを設定できます。

enter image description here

その後、この新しいスタイルを使用できます。

enter image description here

標本、見本

jrxmlファイル:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version last-->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test_courier" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="2010b76c-0fe5-4a27-9c86-6846a6f9cc6a">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
    <style name="CustomFont" fontName="Courier New"/>
    <queryString>
        <![CDATA[select task from tasks]]>
    </queryString>
    <field name="TASK" class="Java.lang.String"/>
    <title>
        <band height="79" splitType="Stretch">
            <staticText>
                <reportElement uuid="9205f787-f3b4-4b21-b2d9-19f52824e187" style="CustomFont" x="280" y="36" width="70" height="20"/>
                <textElement/>
                <text><![CDATA[Title]]></text>
            </staticText>
        </band>
    </title>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement uuid="f23e8674-c45d-4dc7-92f3-93e5d0b41c16" style="CustomFont" x="0" y="0" width="70" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{TASK}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

Studioでのレポートのデザイン:

enter image description here

そして、結果はJaspersoft Studionによって生成されて開かれた(pdfファイルになりますinAdobe Reader):

enter image description here


フォント拡張はこちら に関する詳細情報を見つけることができます

20
Alex K

レポートがどのフォントでも正しくレンダリングされない場合は、システム内のiReport/JasperStudioおよびjasperlibsとの互換性の問題がある可能性があります。 jasperファイルを使用してレポートをPDFにエクスポートしようとすると、この問題が発生しました。解決策は、次のようにコード内でレポートをコンパイルすることでした。

 InputStream reportStream = Thread.currentThread()。getContextClassLoader()。getResourceAsStream( "/ reports.jrxml"); 
 JasperReport report = JasperCompileManager.compileReport(reportStream); 
 jasperPrint = JasperFillManager.fillReport(report、parameters、dataSource); 
3
Marcelo Fonseca

同じ問題が私にも起こりました。私は解決策を見つけるために次の方法を試しました-

Jasper Report PDFファイルビューアにフォントを埋め込む必要があり、そのフォントがフォントリストで使用できない場合は、次の操作を行うだけです。

  • まず、埋め込む必要のあるフォントの.ttfファイルをダウンロードします。
  • その後、Window -> Preferences -> Jaspersoft Studio -> Fontsに移動します。フォントの。ttfファイルを追加のボックスが表示されます。
  • フォントの.ttfファイルを追加し、Embed this font to PDFにチェックマークを付けます。その後、前に指定した名前のフォントのリストにフォントが表示されます。
  • フォントを選択し、.jarファイルにエクスポートします。また、アプリケーションからpdfを表示する場合は、フォントのjarファイルをアプリケーションのクラスパスに追加します。

それでおしまい。ありがとうございました。

2
M. Nashath