添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1. 概述

2. 新打印接口

JS 打印接口: FR.doURLPrint(config) ,使用 get 传参,具体 config 参数如下表所示:

参数 含义
printurl 需要打印的模板的应用地址和服务,如 "http://localhost:8075/webroot/decision/view/report"

允许为空。如果为空的话,就使用当前的 servlet 地址。如果需要跨域,则此参数不能为空

isPopUp

是否弹出设置窗口

true:弹出

false:不弹出

该参数说明如下:

  • 10.0.11 版本之前,isPopUp 参数既绑定了打印设置的弹窗,又绑定了指定 sheet 页的弹窗,会导致 isPopUp 为 false 时指定 sheet 页弹窗不会出现

  • 10.0.11 版本及之后,指定 sheet 页的弹窗从 isPopUp 参数分离出来,新增参数 isSheetSelectPopUp 。为 true 时弹出指定 sheet 弹窗,为 false 或者不写时不弹。(兼容老的写法:老的逻辑是如果 isPopUp 为 true 时才弹出指定 sheet 的窗口)

data 为需要打印的模板列表及其参数,如 "[{reportlet: '1.cpt', p1: 'a'}, {reportlet: '1.cpt', p1: 'b'}]"
printType

打印类型

0:零客户端打印

1:本地打印

下面的参数为零客户端打印的参数,仅当 printType 为 0 时生效
ieQuietPrint

IE 静默打印设置

true:静默

false:不静默

下面的参数为本地打印的参数,仅当 printType 为 1 时生效
printerName 打印机名
pageType

打印页码类型

0:所有页

1:当前页

2:指定页

pageIndex

页码范围

当 pageType 为 2 时有效

copy 打印份数
needSelectSheet

是否打印指定 Sheet 页

true:指定 Sheet 页

false或参数为空:打印全部 Sheet

sheetIndex

Sheet页,只支持正整数或正整数区间

正整数示例:2

正整数区间示例:'7-10'

示例:新建一个模板,在单元格 A1 添加「按钮控件」,并添加「点击」事件,如下图所示:

222
JS 代码:

var printurl="http://localhost:8075/webroot/decision/view/report";
var reportlets ="[{reportlet: 'GettingStarted.cpt', 地区: '华北'}, {reportlet: 'GettingStarted.cpt', 地区: '华东'}]";
var config = {
printUrl : printurl,
isPopUp : true, 
// 是否弹出设置窗口,true为弹出,false为不弹出
data :{ 
// 多模板格式: [{reportlet: 'name.cpt', a: 'a1'}, {reportlet: 'name.cpt', b: 'b1'}]  同样的模板会出现多页
// 单模板格式: [{reportlet: 'name.cpt', a: 'a1', b: 'b1'}]  同样的模板只会有单页
reportlets: reportlets // 需要打印的模板列表
},
printType : 1, // 打印类型,0为零客户端打印,1为本地打印
// 以下为零客户端打印的参数,仅当 printType 为 0 时生效
ieQuietPrint : false,// IE静默打印设置 true为静默,false为不静默
// 以下为本地打印的参数,仅当 printType 为 1 时生效
printerName : 'Microsoft Print to PDF', // 打印机名
pageType: 2, // 打印页码类型:0:所有页,1:当前页,2:指定页
pageIndex: '1-3', // 页码范围。当 pageType 为 2 时有效
copy: 3, // 打印份数
};
FR.doURLPrint(config)

保存模板,选择填报预览,当点击按钮时,将使用本地打印方式打印模板,如下图:

注:如果无法正常打印,请参见文档 [新]打印 中的注意事项。 222

3. 服务器端打印接口

服务器端打印:直接调用服务器连接的打印机,可解决本地 PC 没有连接打印机无法打印的问题
10.0 中,服务器端打印只能通过 JS 调用。 如果不传参数,则弹窗;如果传参数,则静默打印。参数有默认值,不需要设置的话可以不传。
// 弹窗
window.contentPane.printReportServer();
// 静默打印
window.contentPane.printReportServer({
     pageType: 2,  // 打印页码类型:0:所有页,1:当前页,2:指定页
     pageIndex: '1-3',  // 页码范围。当 pageType 为 2 时有效
     printerName: "" // 指定打印机
});
// 静默打印
window.contentPane.printReportServer({
     pageType: 1
});
// 静默打印
window.contentPane.printReportServer({})
示例: 将上面的模板里的 JS 代码修改为: window.contentPane.printReportServer();
填报预览后,点击按钮,将调用服务器端打印(弹窗),效果如下图所示:

222

4. 老打印接口

调用以下方法前,需要先引入 FineReport.js ,再通过 doURLxxxxPrint() 进行调用。

4.1 doURLxxxxPrint(printurl)

说明: printurl 为需要打印的报表路径,printurl以 get 方式 传递给服务器,服务器将报表结果返回给客户端,弹出打印选项框及打印对话框,供用户选择打印范围及打印机,然后进行打印。

示例:

FR.doURLFlashPrint("/webroot/decision/view/report?viewlet=report.cpt")

4.2 doURLxxxxPrint(printurl,isPopUp)

说明:printurl 为需要打印的报表路径

isPopUp 布尔值(true/false),表示是否进行静默打印,true 为弹出打印对话框,false 为不弹出。

示例:

FR.doURLFlashPrint("/webroot/decision/view/report?viewlet=report.cpt",true);

Flash 打印不支持静默打印,true/false 效果相同

FR.doURLPDFPrint("/webroot/decision/view/report?viewlet=report.cpt",true);

PDF 打印,true 时弹出打印对话框,false 不弹出

4.3 doURLxxxxPrint(config)

4.3.1 post 传参

说明: config 为参数配置,参数可以以 post 方式 传递给服务器,config 数据格式为 {url : url,isPopUp : isPopUp,data:{reportlets:reportlets}}.

URL 为需要打印的报表路径,isPopUp 布尔值(true/false),表示是否进行静默打印,true 为弹出打印对话框,false 为不弹出,data 需要打印的报表以及报表参数。

示例:

var printurl="http://localhost:8075/webroot/decision/view/report";     
var reportlets ="[{reportlet: '1.cpt', p1: 'a'}, {reportlet: '1.cpt', p1: 'b'}]";
var config = {
url : printurl,
isPopUp : false,
data : {
reportlets: reportlets
}
};
FR.doURLPDFPrint(config)

详细示例可查看 批量打印_(Get/Post)

4.3.2 get 传参

说明: config 为参数配置,参数可以以 get 方式 传递给服务器,config 数据格式为 {url : url,isPopUp : isPopUp}.

URL 为需要打印的报表路径,isPopUp 布尔值(true/false),表示是否进行静默打印,true 为弹出打印对话框,false 为不弹出。

示例:

var  url="http://localhost:8075/webroot/decision/view/report?viewlet=";  
url+=document.report.cpt.value;  
var  isPopUp = false;  
var  config = {url : url,isPopUp : isPopUp}  
FR.doURLPDFPrint(config)

详细示例可查看: JS 调用打印_不查看直接打印

注:post 传参与 get 传参的区别请查看: post 传参和 get 传参