iReport and Jasperreport fonts for a PDF report

2019-09-19 07:36发布

问题:

I made a report with iReport using some default fonts (monospace, sans-serif). This report is a bit complex and many static elements have their position calculated to fit the label's width. Just for example: Where "test of a long string..." is a field content, and the boxes are static elements. As you can see I need a precise char sizes as.

The iReport preview well works, but when I made a report with JasperReport library fonts size are really different from the iReport preview and, moreover, the monospace font doesn't exist at all.

How to exactly create a PDF report like ireport preview?

This is the JRXML head (full file is >2000 rows):

<?xml version="1.0" encoding="UTF-8"?>
<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="107m" pageWidth="595" pageHeight="842" columnWidth="537" leftMargin="29" rightMargin="29" topMargin="20" bottomMargin="20" uuid="821aebb9-c4bd-4720-ae38-ae0f7e515398">
    <property name="ireport.zoom" value="1.4641000000000364"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="48"/>
    <property name="ireport.background.image" value="C:\v2(1).png"/>
    <property name="ireport.background.image.properties" value="true,true,0.25,1,-202,-7,184,612,865"/>
    <detail>
        <band height="801" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="536" height="18" uuid="07f24965-4a55-49f1-bbaa-c7550bc6b37f"/>
                <textElement textAlignment="Center">
                    <font size="11"/>
                </textElement>
                <text><![CDATA[TITLE]]></text>
            </staticText>
            <staticText>
                <reportElement x="0" y="14" width="536" height="18" uuid="06b42267-0de9-4467-96cb-aa477c3f07c1"/>
                <textElement textAlignment="Center">
                    <font size="9" isBold="true"/>
                </textElement>
                <text><![CDATA[SUBTITLE]]></text>
            </staticText>

回答1:

To get the same font in pdf export previous to Jasper 6.0 you used

code like this

<font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>

since Jasper 6.0 this is deprecated and you should use font-extension

This is a good guide for how to include font extensions in iReport.

EDIT: Where can I find the font on my pc?, on Windows normally in C:\Windows\Fonts