A4比A5纸大。。。你在设计器已经用A4设置好了,那么格式也排好了
你再成A5的话,它的列肯定都不在一页了呀。没有办法自适应的。比如A4可以容纳10列,你换成A5后一页只有5列了,这打印出来不是太奇怪了?你看你的excel与word有办法自适应纸张没有???肯定不能按你说的要求来自适应这个需求的
然后A3又比A4大,你换成A3它一页后面又可能空很多。你只有设置不同纸张的模板以后,点击打印的话把参数传入后,js调用不同的模板,用户只是不知道而已!!!!
设置一个参数。纸张大小,然后用户选择不同的参数。拼不同的模板文件调用打印!!!
JS 调用 FR 打印方法- FineReport帮助文档 - 全面的报表使用教程和学习资料
改文件名称,与你的参数!!!比如A3调用的模板是A3.cpt a4调用的是A4.cpt

----------------以下的代码你自己参考着改吧-------------------------
------------不要怕麻烦,与实现最终需求起来比较,麻烦是正常的-------------------
var zz=_g().parameterEl.getWidgetByName("zz").getValue();//纸张大小
var bl=_g().parameterEl.getWidgetByName("地区").getValue();
var printurl="http://localhost:8075/webroot/decision/view/report";
//服务器上面的话要改成你对应的ip与域名,端口默认是8080
if(zz=="A3"){
var reportlets ="[{reportlet: '/test/A3.cpt', 地区:'"+bl+"'}]";
}
else if (zz=="a4"){
var reportlets ="[{reportlet: '/test/A4.cpt', 地区:'"+bl+"'}]";
}
else {
var reportlets ="[{reportlet: '/test/A5.cpt', 地区:'"+bl+"'}]";
}
var config = {
printUrl : printurl,
isPopUp : true,
data :{
reportlets: reportlets // 需要打印的模板列表
},
printType : 0, // 打印类型,0为零客户端打印,1为本地打印/
ieQuietPrint : false,// IE静默打印设置 true为静默,false为不静默
printerName : 'Microsoft Print to PDF', // 打印机名
pageType: 2, // 打印页码类型:0:所有页,1:当前页,2:指定页
pageIndex: '1-3', // 页码范围。当 pageType 为 2 时有效
copy: 1, // 打印份数
};
FR.doURLPrint(config)