Warum wird unter Linux Text in PDF abgeschnitten?

Ich versuche ein @ zu formatierDatu in Jasper Reports und es funktioniert mit Windows, aber nicht mit Linux. Unter Linux wird der resultierende Text abgeschnitten.

Code

JRXML:

<parameter name="timestamp" class="java.util.Date"/>
[...]
<textField>
    <reportElement x="0" y="0" width="50" height="16" uuid="0007846a-26f1-457a-a198-67a2f7c8417c">
        <property name="local_mesure_unitwidth" value="pixel"/>
        <property name="com.jaspersoft.studio.unit.width" value="px"/>
        <property name="local_mesure_unitx" value="pixel"/>
        <property name="com.jaspersoft.studio.unit.x" value="px"/>
        <property name="local_mesure_unity" value="pixel"/>
        <property name="com.jaspersoft.studio.unit.y" value="px"/>
        <property name="local_mesure_unitheight" value="pixel"/>
        <property name="com.jaspersoft.studio.unit.height" value="px"/>
    </reportElement>
    <box padding="2"/>
    <textElement textAlignment="Left" verticalAlignment="Top">
        <font size="8" pdfFontName="Helvetica" pdfEncoding="Cp1250" isPdfEmbedded="true"/>
    </textElement>
    <textFieldExpression><![CDATA[DATEFORMAT($P{timestamp},"dd.MM HH:mm")]]></textFieldExpression>
</textField>

Maven Abhängigkeiten:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>5.6.0</version>
</dependency>
<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-functions</artifactId>
    <version>5.6.0</version>
</dependency>

Java

private byte[] createPdf() {

    try {
        InputStream is = getClass().getResourceAsStream("MyReport.jasper");
        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(is);
        Map<String, Object> parameters = new HashMap<String, Object>();
        parameters.put("timestamp", new Date());
        JRDataSource jrDataSource = new JRBeanCollectionDataSource(new Vector(), false);
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, jrDataSource);
        byte[] pdf = JasperExportManager.exportReportToPdf(jasperPrint);
        return pdf;
    } catch (JRException e) {
        throw new RuntimeException("Could not create PDF.", e);
    }
}
Ergebnisse

Ergebnis mit Windows:

Ergebnis mit Linux:

PDF-Eigenschaften:

Beide generierten PDF-Dateien haben in Acrobat Reader für Windows dieselben Schrifteigenschaften:

Wie Sie sehen, ist die Schriftart nicht eingebettet. (Die zweite Schrift "Helvetica" verschwindet, wenn ich die Abhängigkeit @ hinzufügjasperreports-fonts und entferne AttributepdfFontName, pdfEncodingundisPdfEmbedded).

Forschung

Ich lese

PDF generiert mit Jasperreport nicht gut unter Linux, aber ja auf Mac, könnte das mit dem Betriebssystem zusammenhängen?http: //community.jaspersoft.com/questions/527138/pdf-text-truncated-linux-fine-windowhttp: //community.jaspersoft.com/questions/803503/why-text-filed-value-will-be-truncated-if-application-running-linu

und die Lösung scheint darin zu bestehen, die Schrift einzubetten, aber es funktioniert nicht.

Ich verwende die Schriftart "Helvetica", eine der Standardschriften, und das ist der Grund, siehe Wikipedia:

Diese Schriftarten oder geeignete Ersatzschriftarten mit denselben Metriken müssen immer in allen PDF-Readern verfügbar sein und müssen daher nicht in ein PDF @ eingebettet sei

undhttps: //stackoverflow.com/a/27345103/527782:

Wenn Sie diese Schriftarten in iText verwenden, ignoriert iText den eingebetteten Parameter, da davon ausgegangen werden kann, dass Adobe Reader und andere Viewer diese Schriftarten korrekt wiedergeben können.

Frage

Warum haben die gleichen Schriften unter Windows und Linux unterschiedliche Breiten? Oder warum ist das Abschneiden von Text und / oder der Zeilenumbruch anders?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage