关于java实现批量打印的问题,牛人进

sunsja 2010-06-09 04:00:54

现在项目中有一个需求,需要支持批量打印功能,
之前是在jsp页面上存在一个打印按钮,直接将页面内容打印出来,只打印一条记录

现在是要批量选择N条记录,然后全部打印出来,

大家有什么主意?谢谢了
...全文
786 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunsja 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 lacus87 的回复:]

用js可以拿到页面选中了几个数据项吧,判断如果大于一直接循环进行打印函数,如果等于1再跳转到预览界面选择是否打印,行吗
[/Quote]
我现在有一种方案,我循环的调用后台的service,然后我根据不同的单据模板填充数据,返回一个生成jsp代码的string 文本,调用java的打印方法,后台打印,不存在返回jsp页面的说法.
dr_lou 2010-06-09
  • 打赏
  • 举报
回复
那就把你后台的内容放到一个List或Array里。
循环或多线程打印呗。
lacus87 2010-06-09
  • 打赏
  • 举报
回复
用js可以拿到页面选中了几个数据项吧,判断如果大于一直接循环进行打印函数,如果等于1再跳转到预览界面选择是否打印,行吗
sunsja 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ybjx510 的回复:]

在一堆列表里面选几个数据项,然后跳转到这个jsp页面,那么这个jsp页面的数据,你是否已经做好了样式?
不涉及到分页吧?
我觉得你这个情况可以页面直接打印,或者css打印。
用js调用IE的 window.print() (具体的自己查一下)
[/Quote]
页面是有样式的,需求是想在不显示页面的情况下(也就是预览).直接通过在列表中选择N条记录直接打印,
就方法实现吗?
2010-06-09
  • 打赏
  • 举报
回复
多线程。
ybjx510 2010-06-09
  • 打赏
  • 举报
回复
在一堆列表里面选几个数据项,然后跳转到这个jsp页面,那么这个jsp页面的数据,你是否已经做好了样式?
不涉及到分页吧?
我觉得你这个情况可以页面直接打印,或者css打印。
用js调用IE的 window.print() (具体的自己查一下)
sunsja 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 dr_lou 的回复:]

引用 10 楼 sunsja 的回复:
开始的需求是在数据列表中单击某条记录,然后跳转jsp页面
页面上提供一个按钮,打印

客户觉得一条一条打印很费时间

现在的需求是 在数据列表中选择多条记录,直接打印,做到批量的功能


用户从数据列表单击某一条记录后,相当于选择了要打印的内容。
你的内容从何而来?

批量打印只不过就是用户选择的多条记录,你从你的数据源读取多条记录……
[/Quote]
jsp页面内容是通过java后台数据返回以后填充形成的.
dr_lou 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sunsja 的回复:]
开始的需求是在数据列表中单击某条记录,然后跳转jsp页面
页面上提供一个按钮,打印

客户觉得一条一条打印很费时间

现在的需求是 在数据列表中选择多条记录,直接打印,做到批量的功能
[/Quote]

用户从数据列表单击某一条记录后,相当于选择了要打印的内容。
你的内容从何而来?

批量打印只不过就是用户选择的多条记录,你从你的数据源读取多条记录的内容,进行循环打印不就可以了么?

可以用多线程也。
luonanqin 2010-06-09
  • 打赏
  • 举报
回复
输出byte流到临时文件里 然后打印 然后删掉文件
sunsja 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dr_lou 的回复:]

引用 9 楼 luonanqin 的回复:
楼上的方法只能用于文件存在,如果不存在怎么办


不存在你怎么展示的?
如果不存在 只能打印byte流了
[/Quote]

参照我上楼的需求,能给一个解决方案吗?
dr_lou 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 luonanqin 的回复:]
楼上的方法只能用于文件存在,如果不存在怎么办
[/Quote]

不存在你怎么展示的?
如果不存在 只能打印byte流了
sunsja 2010-06-09
  • 打赏
  • 举报
回复
开始的需求是在数据列表中单击某条记录,然后跳转jsp页面
页面上提供一个按钮,打印

客户觉得一条一条打印很费时间

现在的需求是 在数据列表中选择多条记录,直接打印,做到批量的功能
luonanqin 2010-06-09
  • 打赏
  • 举报
回复
楼上的方法只能用于文件存在,如果不存在怎么办
dr_lou 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunsja 的回复:]
引用 3 楼 dr_lou 的回复:

你的需求在描述详细一点。

现在的需求是 一张单子一张单子打印,单子的内容在jsp页面上显示出来,提供一个按钮 操作打印

要做的是,在显示 单子的列表上,增加多选框,一下选择多条记录,然后直接打印,不用出现打印预览.
不知道描述清楚没?
[/Quote]

如你所说,jsp页面只是显示只用,真正的打印功能在后台。
方法很可能是一个类似 public void print(File f)的定义。
如果是这样
你写一个
public void printFileList(File[] f){
for(File file : f){
print(f);
}
}

是不是就可以了?

选择多个文件,你只要记录他们的文件名就可以了。
Headsen 2010-06-09
  • 打赏
  • 举报
回复
还是没描述清。你的单子就是JSP,借助于网页打印功能打印?你的一个单子占用一个JSP吗?单子列表是什么东西? 一行一行的记录列表?选中一行就打印一个单子?
luonanqin 2010-06-09
  • 打赏
  • 举报
回复
请问你的打印操作是用什么做的
sunsja 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dr_lou 的回复:]

你的需求在描述详细一点。
[/Quote]
现在的需求是 一张单子一张单子打印,单子的内容在jsp页面上显示出来,提供一个按钮 操作打印

要做的是,在显示 单子的列表上,增加多选框,一下选择多条记录,然后直接打印,不用出现打印预览.
不知道描述清楚没?
sunsja 2010-06-09
  • 打赏
  • 举报
回复
楼上有点靠谱,循环打印,但是不出现页面,直接按钮控制打印N个页面
dr_lou 2010-06-09
  • 打赏
  • 举报
回复
你的需求在描述详细一点。
dr_lou 2010-06-09
  • 打赏
  • 举报
回复
循环?
加载更多回复(1)

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧