批量打印功能预研
- 前端开发
- 时间:2024-04-28 10:49:53
- 569人已阅读
批量打印功能预研
pdf文件批量打印
1.Lodop前端打印方案
lodop官网:http://www.c-lodop.com/index.html
示例:
http://www.c-lodop.com/demolist/PrintSample52.html
问题:
- 需要安装软件。
- 如果没有默认打印机需要选择一个打印机
- 软件使用需要购买授权 http://www.c-lodop.com/Lodop_Lic.html
- 和hiprint混合使用的话会存在下载两个软件的问题。
预研demo地址:
https://gitee.com/qmxx-demo/pdf-hiprint-batch-print.git
2.vue-print-nb打印方案 ==(不满足)==
vue-print-nb 文档
https://www.jianshu.com/p/dee43f02634f https://www.npmjs.com/package/vue-print-nb
问题:
- 无法跳过预览界面
预研demo地址:
https://gitee.com/qmxx-demo/pdf-hiprint-batch-print.git
3.httpprint打印控件 ==目前没有打印成功==
官网地址:
http://www.httpprinter.com/index.html
存在问题:
- 需要购买,如果不购买: a. 显示我们公司logo,联系方式 b. 启动后允许打印50份,重启插件后,可以继续使用.
- 需要安装软件。
- 项目部署到服务端之后,调用软件接口项目会存在跨域问题。
4.基于electron-hiprint打印pdf-url的方式
具体实现方案
- 安装electron-hiprint安装包
- 通过socket.io-client方式和软件进行通讯,发送打印消息。
const electronPrint = () => {
// const socket = io("http://localhost:17521", {
// transports: ["websocket"],
// auth: {
// token: "vue-plugin-hiprint", // 在此处填入你 client 设置的 token,缺省可留空
// }
// })
let pdfUrlList = [
"https://ssm.meizhitech.com/pdf/1.pdf",
"https://ssm.meizhitech.com/pdf/2.pdf",
];
pdfUrlList.forEach((pdfUrl) => {
hiprint.hiwebSocket.send({ type: "url_pdf", pdf_path: pdfUrl });
});
};
hiprint多模板批量打印
具体实现方案
- 下载配合vue-plugin-hiprint插件使用的exe安装包进行安装
- 启动安装好的软件
- 代码内执行模板的打印方法(代码如下)
const printMore = () => {
let hiprintTemplate = new hiprint.PrintTemplate({
template: templateJson,
});
let hiprintTemplate2 = new hiprint.PrintTemplate({
template: templateJson2,
});
// 多模板直接打印
hiprint.print2(
{
templates: [
{ template: hiprintTemplate, data: printData, options: {} },
{ template: hiprintTemplate2, data: printData2 },
],
options: { printer: "", landscape: true },
},
function (data: any) {
console.log("printSuccess");
},
function (e: any) {
console.log("printError");
}
);
预研demo项目地址:
https://gitee.com/qmxx-demo/pdf-hiprint-batch-print.git
存在问题
- 由于客户端原理一样是需要先渲染html,所以批量打印传的数据过多会造成客户端卡死/等待时间长等问题。 所以建议使用队列形式进行批量打印。
- 需要安装配合vue-plugin-hiprint插件的安装包软件(mac系统还未测试过,win可以批量打印模板),打印前需要启动安装的软件,并且需要电脑提前安装好打印机的驱动。不同的打印机驱动是否能调用未知。
参考文档:
上一篇:页面整页滚动翻页效果