Pac*_*ato 6 java fonts jasper-reports export-to-pdf
我正在使用Jaspersoft Studio 5.6.
它在"设计"视图中的Jaspersoft Studio中正确显示.在预览视图中,它也正确显示(使用java或pdf).
当我从Java应用程序执行报告时,三个文本以相同的大小显示.
我注意到Bold和Italic工作正常,但是如果我改变字体(DejaVu,Arial,Times new roman等)也会被忽略.在我的应用程序生成的报告中,我总是得到相同的字体.
什么失败了?我忘记了任何配置选项吗?
该示例混合静态字段和文本字段以进行测试.
编辑:
似乎我发现了一个"解决方案"(具有副作用).
我正在生成这样的报告:
JasperRunManager.runReportToPdfStream(stream, outStream, params, datasource);
Run Code Online (Sandbox Code Playgroud)
现在,以这种方式生成文本的大小在生成的pdf中是正确的:
JasperReport jasperReport = JasperCompileManager.compileReport("my/report.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, datasource);
JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
Run Code Online (Sandbox Code Playgroud)
但字体类型不正确.
我认为,副作用是JasperRunManager.runReportToPdfStream不会将报告加载到内存JasperFillManager.fillReport中.
有什么想法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>
Run Code Online (Sandbox Code Playgroud)
小智 5
我也有这个问题。您需要做的是在Java Web应用程序中升级jasperreport jar。例如,如果使用iReport 5.6.0设计报告,则将jasperreport.jar升级到6.2.1。
| 归档时间: |
|
| 查看次数: |
10011 次 |
| 最近记录: |