我正在使用 Jaspersoft Studio 5.6。
它在 Jaspersoft Studio 的设计视图中正确显示。在预览视图中,它也可以正确显示(使用 java 或 pdf)。
当我从 Java 应用程序执行报告时,三个文本以相同的大小显示。
我注意到粗体和斜体工作正常,但如果我更改字体(DejaVu、Arial、Times new roman 等),也会被忽略。在我的应用程序生成的报告中,我总是得到相同的字体。
什么是失败?我是否忘记了任何配置选项?
该示例混合静态字段和文本字段只是为了测试。
EDIT:
看来我找到了一个“解决方案”(有副作用)。
我生成的报告是这样的:
JasperRunManager.runReportToPdfStream(stream, outStream, params, datasource);
现在,以这种方式生成的 pdf 中的文本大小是正确的:
JasperReport jasperReport = JasperCompileManager.compileReport("my/report.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, datasource);
JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
但是字体类型不正确。
我认为副作用是 JasperRunManager.runReportToPdfStream 不会将报告加载到内存中JasperFillManager.fillReport
does.
任何想法为什么JasperRunManager.runReportToPdfStream
忽略字体大小?
知道为什么另一种方法是忽略字体类型吗? JSS 和我的 java 应用程序都在同一台 Windows 计算机上(因此字体必须对两者都可用)。
有什么建议可以避免将整个报告加载到内存中吗?
<?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="subinforme_pag_1" pageWidth="802" pageHeight="552" orientation="Landscape" columnWidth="802" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="c6f5d08f-f28b-4c77-8523-5cf4746cdcf2">
<queryString language="SQL">
<![CDATA[]]>
</queryString>
<detail>
<band height="551" splitType="Stretch">
<textField>
<reportElement x="0" y="80" width="180" height="40" uuid="50721cba-c082-47de-9abf-effcf1b784dd">
<property name="local_mesure_unitheight" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="SansSerif" size="4"/>
</textElement>
<textFieldExpression><![CDATA["Text Field (size 4)"]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="0" width="180" height="40" uuid="05c5129f-f29e-47a1-ad82-4547b51e3d56"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="SansSerif" size="16"/>
</textElement>
<textFieldExpression><![CDATA["Text Field (Size 16)"]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="40" width="180" height="40" uuid="5c69d29b-b168-408d-89aa-c6d527f0cae1">
<property name="local_mesure_unitwidth" value="pixel"/>
<printWhenExpression><![CDATA[$V{REPORT_COUNT} == 1]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="SansSerif" size="8" isBold="false"/>
</textElement>
<text><![CDATA[Static Text (Size 8)]]></text>
</staticText>
</band>
</detail>
</jasperReport>