什么是默认网页方向?

时间:2016-06-01 07:02:53

标签: jasper-reports

我已经看到,如果选择了Ignore Pagination,则会在JasperReports的单个页面中显示整个文档。例如,如果有5000行,则在报告中的单个页面中显示是否选择了“忽略分页”。

现在,当我们使用前端Java打印时,JasperReports引擎默认以横向或纵向打印吗?

如果我们打印该页面时选择了Ignore Pagination,是否有任何默认格式(纵向或横向)?

1 个答案:

答案 0 :(得分:3)

纵向 方向是默认方向。它不取决于 ignorePagination 属性。

有关默认方向的事实

1)在 jasperreport.xsd 文件中设置为默认值。

JasperReports 6.2.0的 jasperreport.xsd 的片段版本:

   <attribute name="orientation" use="optional" default="Portrait">
    <annotation>
        <documentation>Page printing orientation.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Portrait">
        <annotation>
            <documentation>Portrait page layout.</documentation>
        </annotation>
      </enumeration>
      <enumeration value="Landscape">
        <annotation>
            <documentation>Landscape page layout.</documentation>
        </annotation>
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>

2)在 net.sf.jasperreports.engine.base.JRBaseReport 类中设置为默认值。

来自 JRBaseReport 类的片段( 6.2.0 。以下全部代码相同)版本:

protected OrientationEnum orientationValue = OrientationEnum.PORTRAIT;
protected WhenNoDataTypeEnum whenNoDataTypeValue = WhenNoDataTypeEnum.NO_PAGES;
protected SectionTypeEnum sectionType = SectionTypeEnum.BAND;

3)如果我们谈论导出到 xls 格式,我们可以在 net.sf.jasperreports.engine.export.JRXlsExporter 类中找到这段代码:

protected void createSheet(CutsInfo xCuts, SheetInfo sheetInfo) {
    sheet = workbook.createSheet(sheetInfo.sheetName);
    patriarch = sheet.createDrawingPatriarch();
    HSSFPrintSetup printSetup = sheet.getPrintSetup();
    printSetup.setLandscape(pageFormat.getOrientation() == OrientationEnum.LANDSCAPE);

4)如果我们谈论导出到 pdf 格式,我们可以在 net.sf.jasperreports.engine.export.JRPdfExporter 类中找到这段代码:

protected void setPageSize(JRPrintPage page) throws JRException, DocumentException, IOException {

//  some piece of code is omitted
    Rectangle pageSize;
    switch (pageFormat.getOrientation()) {
    case LANDSCAPE:
        // using rotate to indicate landscape page
        pageSize = new Rectangle(pageHeight, pageWidth).rotate();
        break;
    default:
        pageSize = new Rectangle(pageWidth, pageHeight);
        break;
    }
    document.setPageSize(pageSize);
}