当前位置: 首页 > 知识库问答 >
问题:

ireport生成具有不同外观的pdf和html报表?Html和Pdf报表格式不相同

班宏毅
2023-03-14

我在我的liferay自定义portlet中使用jasper报告,我用ireport 4.7.1设计了我的报告,但我的问题是为什么用html和pdf生成的报告有很大的差异。html格式和pdf格式的报告行有很大的差异。我如何使从同一个jasper文件生成的html和pdf报告完全相同。?我的意思是用相同的外观和感觉。下面是我的html和pdf报表片段

HTML REPORT

PDF REPORT

下面是我的jrxml文件,我从该文件生成。jasper,然后生成上面两个结果。

<?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="Campaign_Advertise_DateRange_Report" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true">
    <property name="ireport.zoom" value="0.9090909090909098"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <style name="table">
        <box>
            <pen lineWidth="1.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_CH" mode="Opaque" backcolor="#BFE1FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <subDataset name="Table Dataset 1"/>
    <field name="advertisename" class="java.lang.String"/>
    <field name="camp_name" class="java.lang.String"/>
    <field name="ad_location" class="java.lang.String"/>
    <field name="clicked" class="java.lang.Integer"/>
    <field name="impression" class="java.lang.Integer"/>
    <field name="filter_start_date" class="java.util.Date"/>
    <field name="filter_end_date" class="java.util.Date"/>
    <variable name="CamapignTotal" class="java.lang.Integer" resetType="Group" resetGroup="Campaign Name" calculation="Sum">
        <variableExpression><![CDATA[$F{impression}]]></variableExpression>
    </variable>
    <variable name="CampaignGrandTotal" class="java.lang.Integer" calculation="Sum">
        <variableExpression><![CDATA[$F{impression}]]></variableExpression>
    </variable>
    <group name="Campaign Name">
        <groupExpression><![CDATA[$F{camp_name}]]></groupExpression>
        <groupFooter>
            <band height="21">
                <textField pattern="" isBlankWhenNull="true">
                    <reportElement style="table_TD" x="419" y="0" width="86" height="20"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle" markup="none">
                        <font isBold="true"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$V{CamapignTotal}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement style="table_TD" x="346" y="0" width="73" height="20"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Group Total :]]></text>
                </staticText>
            </band>
        </groupFooter>
    </group>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="114">
            <staticText>
                <reportElement x="136" y="24" width="283" height="67"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="32" isUnderline="true"/>
                </textElement>
                <text><![CDATA[Campaign Reports]]></text>
            </staticText>
            <staticText>
                <reportElement x="0" y="2" width="30" height="20"/>
                <textElement>
                    <font fontName="Times New Roman" isBold="true"/>
                </textElement>
                <text><![CDATA[Date : ]]></text>
            </staticText>
            <textField pattern="MM/dd/yyyy">
                <reportElement x="30" y="2" width="100" height="20"/>
                <textElement textAlignment="Justified">
                    <font fontName="Times New Roman" isUnderline="true"/>
                </textElement>
                <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="0" y="94" width="30" height="20"/>
                <textElement textAlignment="Right">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[From:]]></text>
            </staticText>
            <staticText>
                <reportElement x="136" y="94" width="19" height="20"/>
                <textElement textAlignment="Right">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[To:]]></text>
            </staticText>
            <textField>
                <reportElement x="30" y="94" width="96" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{filter_start_date}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="155" y="94" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{filter_end_date}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="419" y="94" width="131" height="20"/>
                <textElement textAlignment="Right">
                    <font size="12" isBold="true"/>
                </textElement>
                <text><![CDATA[Advertise Display Reports]]></text>
            </staticText>
            <image>
                <reportElement x="458" y="8" width="92" height="53"/>
                <imageExpression><![CDATA["D:\\Liferay\\liferay-plugins-sdk-6.1.1-ce-ga2-20120731132656558\\liferay-plugins-sdk-6.1.1\\portlets\\eMenuAdvertise-portlet\\docroot\\img\\eMenuLogo.png"]]></imageExpression>
            </image>
        </band>
    </title>
    <pageHeader>
        <band height="52">
            <staticText>
                <reportElement style="table_TD" mode="Transparent" x="0" y="31" width="100" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font fontName="Times New Roman" size="12" isBold="true"/>
                </textElement>
                <text><![CDATA[Advertise Name]]></text>
            </staticText>
            <staticText>
                <reportElement style="table_TD" mode="Transparent" x="346" y="31" width="73" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font fontName="Times New Roman" size="12" isBold="true"/>
                </textElement>
                <text><![CDATA[Clicked]]></text>
            </staticText>
            <staticText>
                <reportElement style="table_TD" mode="Transparent" x="250" y="31" width="96" height="20" isPrintInFirstWholeBand="true"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font fontName="Times New Roman" size="12" isBold="true"/>
                </textElement>
                <text><![CDATA[AD Location]]></text>
            </staticText>
            <staticText>
                <reportElement style="table_TD" mode="Transparent" x="100" y="31" width="150" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font fontName="Times New Roman" size="12" isBold="true"/>
                </textElement>
                <text><![CDATA[Campaign Name]]></text>
            </staticText>
            <staticText>
                <reportElement style="table_TD" mode="Transparent" x="419" y="31" width="86" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font fontName="Times New Roman" size="12" isBold="true"/>
                </textElement>
                <text><![CDATA[Impression]]></text>
            </staticText>
        </band>
    </pageHeader>
    <detail>
        <band height="21" splitType="Immediate">
            <textField>
                <reportElement style="table_TD" mode="Transparent" x="0" y="-1" width="100" height="22"/>
                <textElement textAlignment="Center" verticalAlignment="Middle" markup="html">
                    <font fontName="Times New Roman"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{advertisename}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TD" mode="Transparent" x="250" y="-1" width="96" height="22" backcolor="#FFFFFF"/>
                <textElement textAlignment="Center" verticalAlignment="Middle" markup="html">
                    <font fontName="Times New Roman"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{ad_location}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TD" mode="Transparent" x="419" y="-1" width="86" height="22"/>
                <textElement textAlignment="Center" verticalAlignment="Middle" markup="html">
                    <font fontName="Times New Roman"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{impression}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TD" mode="Transparent" x="100" y="-1" width="150" height="22"/>
                <textElement textAlignment="Center" verticalAlignment="Middle" markup="html">
                    <font fontName="Times New Roman"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{camp_name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TD" mode="Transparent" x="346" y="-1" width="73" height="22"/>
                <textElement textAlignment="Center" verticalAlignment="Middle" markup="html">
                    <font fontName="Times New Roman"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{clicked}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <lastPageFooter>
        <band height="50">
            <staticText>
                <reportElement style="table_TD" x="346" y="0" width="73" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Grand Total :]]></text>
            </staticText>
            <textField isBlankWhenNull="false">
                <reportElement style="table_TD" x="419" y="0" width="86" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true"/>
                </textElement>
                <textFieldExpression><![CDATA[$V{CampaignGrandTotal}]]></textFieldExpression>
            </textField>
        </band>
    </lastPageFooter>
</jasperReport>

有谁能帮我使两份报告看起来和感觉一样吗?

共有1个答案

邓子濯
2023-03-14

报告中的问题似乎是细节带中元素的高度,它们是22像素,带是21,它们的顶部属性也是-1,我建议您将带变大(或将控件变小),并将顶部属性设置为0或任何正值。

 类似资料:
  • 我正在使用iReport Designer生成报表,这些报表以PDF形式导出。已要求确保报告不被复制文本、编辑等。如何在iReport本身中或使用jasperreports库包来完成此操作?

  • 问题内容: 我们有一个基于Java的系统,该系统从数据库中读取数据,将各个数据字段与预设标签合并,然后将结果转换为with 。 在格式,它看起来是这样的: 现在,我正在寻找一种允许某些字段包含静态 HTML格式 内容的方法。此内容将通过我们的支持HTML编辑器生成(沿着线的东西,等),或者从外部粘贴。 我的计划是遵循此JavaWorld文章的配方: 用于将HTML格式的字符串转换为正确的XHTML

  • 本文向大家介绍使用jspdf生成pdf报表,包括了使用jspdf生成pdf报表的使用技巧和注意事项,需要的朋友参考一下 由于前台html已经动态生成报表,而且,前台有一个功能,一个date range组件,当你拖动的时候,报表会在不提交到后台的情况下动态变化。 因此需要用到js生成生报表: 用到的组件: 前台动态生成的chart现在一般是用的html5的canvas或者是svg,很不幸运,我遇到的

  • (使用Jaspersoft Studio 6.6.0,还没有Jasper服务器)我的数据集如下所示 如果我将报告生成为PDF,我将得到一个PDF,页面数和行数一样多。 但我需要的将是有多少分开PDF文件有行。这可能吗?

  • 主要内容:JasperReports 导出为PDF/HTML/XLS格式 我们在上一章《JasperReports 查看打印报表》中已经看到,如何打印和查看一个 JasperReport 生成的文档。在这里,我们将看到如何将这些报表转换或导出为其他格式,例如 PDF、HTML 和 XLS。Facade 类net.sf.jasperreports.engine.JasperExportManager就是用来实现这个功能的。导出意味着将JasperPrint对象(.jrpr

  • 问题内容: 我正在使用php代码查询数据库,结果将用于生成报告。 如果我想以pdf格式生成报告,该怎么办? 问题答案: 如果您的PDF文件中需要UTF支持,请考虑使用库。 从此处下载:http : //www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf 在您的脚本中: