记得上下班打卡 | git大法好,push需谨慎

Commit c1024ee5 authored by jiangxiulong's avatar jiangxiulong

打印

parent 12f38f38
package com.liquidnet.client.admin.web.controller.zhengzai.kylin;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileInputStream;
import java.io.IOException;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.MediaPrintableArea;
import javax.print.attribute.standard.OrientationRequested;
import javax.print.attribute.standard.PrintQuality;
/**
* <p>
* xx 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-07-05 7:50 下午
*/
public class ExpressPrintController {
private static final Logger logger = LoggerFactory.getLogger(ExpressPrintController.class);
/**
* 打印图片
*
* @param fileName
* @param count
*/
public static void drawImage(String fileName, int count) {
FileInputStream fin = null;
try {
DocFlavor dof = null;
if (fileName.endsWith(".gif")) {
dof = DocFlavor.INPUT_STREAM.GIF;
} else if (fileName.endsWith(".jpg")) {
dof = DocFlavor.INPUT_STREAM.JPEG;
} else if (fileName.endsWith(".png")) {
dof = DocFlavor.INPUT_STREAM.PNG;
}
PrintService ps = PrintServiceLookup.lookupDefaultPrintService();
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(OrientationRequested.PORTRAIT);
pras.add(new Copies(count));
pras.add(PrintQuality.HIGH);
DocAttributeSet das = new HashDocAttributeSet();
// 设置打印纸张的大小(以毫米为单位)
das.add(new MediaPrintableArea(0, 0, 210, 296, MediaPrintableArea.MM));
fin = new FileInputStream(fileName);
Doc doc = new SimpleDoc(fin, dof, das);
DocPrintJob job = ps.createPrintJob();
job.print(doc, pras);
fin.close();
logger.info("打印成功!文件:" + fileName + "数量为:" + count);
} catch (IOException ie) {
ie.printStackTrace();
} catch (PrintException pe) {
pe.printStackTrace();
} finally {
IOUtils.closeQuietly(fin);
}
}
/**
* test
*
* @param args
*/
public static void main(String[] args) {
// 打印图片
// new ExpressPrintController().drawImage("/Users/jiangxiulong/Desktop/图片余篇图片/WX20210705-200856@2x.png", 1);
}
}
<!DOCTYPE html>
<html lang="en" style="width: 100mm;">
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Access-Control-Allow-Origin" content="*" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="address=no" />
<meta name="keywords" content="">
<meta name="description" content="">
</head>
<body>
<!-- 顺丰快递面单打印,尺寸:100mm*150mm模版 -->
<div
style="width: 96mm;
height: 150mm;
padding-top: 5mm;
border: 1px solid #000;
text-align: center;"
>
<!-- 1. 运单打印系统来源及时间等 -->
<div
style="width: 100%;
font-family: 宋体;
font-size: 4pt;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: flex-end;"
>
<!-- 1.1 打印系统来源(太长放不下了,所以去掉了) -->
<!-- <div class="source">
SCP顺丰云打印
</div> -->
<!-- 1.2 打印次数/时间 -->
<!-- <div
style="width: 80%;
font-family: 宋体;
font-size: 4pt;
display: flex;
flex-direction: row;
justify-content: center;
align-items: flex-end;"
>
第一次打印 2020-05-05 12:00 第8/10个
</div> -->
<!-- 3 时效类型 -->
<div
style="font-family: 黑体;
font-size: 18pt;
font-weight: bolder;
margin-right: 2mm;"
>
<!-- 3.1 特快即日、特快A、特快、标快、标快陆运、特惠、电商标快 -->
特快
</div>
</div>
<!-- 2. 条码区 -->
<div>
<!-- 2.1 条码 -->
<div>
<img src="images/yiweima.png" style="width: 90%; height: 13mm; margin: 0 5mm;">
</div>
<!-- 2.2 子母件单号、汉字、件数标识、 -->
<div
style="font-family: 黑体;
font-size: 10pt;
display: flex;
flex-direction: column;"
>
<div>
运单号:SF1010874393776
</div>
<!-- <div>
母单号:SF1 010 874 393 776
</div> -->
</div>
</div>
<!-- 4 目的地 -->
<!-- 4.1 路由信息 暂无-->
<div
style="margin: 0 auto;
border: 1px solid #000;
border-bottom: none;
width: 92mm;"
>
<!-- 2.3 运单号 -->
<div
style="font-size: 22pt; font-weight: bold;"
>
755W-BA-0123456789
</div>
<!-- 5 收方信息 -->
<div style="text-align: left;">
<!-- 5.1 收 -->
<div style="display: inline-block; width: 9mm; text-align: center;">
<img src="images/iconShou.png" style="width:7mm; height:7mm">
</div>
<!-- 5.2 收件人姓名/电话/地址 -->
<div
style="display: inline-block; width: 62mm; font-family: 宋体; font-size: 9pt; text-align: left;"
>
<div>
<span>收货姓名</span>
<span>18510980989</span>
</div>
<div>
<span>收货地址北京市朝阳区摩登天空测试地址</span>
</div>
</div>
<!-- 5.3 单元区域编码 暂无-->
<!-- 6 代收货款 -->
<div style="display: inline-block;">
<!-- 6.1 COD -->
<img src="images/COD.jpg" style="width: 17mm; height:9mm">
</div>
</div>
</div>
<table
border="1"
style="margin: 0 auto; border: 1px solid #000; width: 92.5mm; border-collapse:collapse;"
>
<tr>
<td style="font-family: 宋体; font-size: 9pt;">
到付22元
</td>
<td rowspan="3">
<img src="images/erweima.png" style="width: 25mm; height: 25mm">
</td>
<!-- 13 已验视 -->
<td
rowspan="3"
style="font-family: 黑体; font-size: 22pt; font-weight: bold; color: #272727b3;"
>
<br>
<br>
</td>
<!-- 产品名称 限时限时KC24字段 -->
<td
rowspan="2"
style="font-family: 宋体; font-size: 12pt; width: 20mm;"
>
限时
KC24
</td>
</tr>
<tr>
<td rowspan="2" style="font-family: 黑体; font-size: 22pt; font-weight: bold;">
A22
</td>
</tr>
<tr>
<td>
1A
</td>
</tr>
</table>
<!-- 14 寄方信息 -->
<div
style="border-left: 1px solid #000;
border-right: 1px solid #000;
width: 92mm;
margin: 0 auto;
text-align: left;"
>
<div
style="display: inline-block; width: 9mm; text-align: center;"
>
<img src="images/iconJi.png" style="width:7mm; height:7mm">
</div>
<!-- 14.1 寄件人人姓名/电话/地址 -->
<div
style="display: inline-block; width: 62mm; font-family: 宋体; font-size: 9pt; text-align: left;"
>
<div>
<span>寄件人姓名</span>
<span>18510980989</span>
</div>
<div>
<span>寄件地址北京市朝阳区摩登天空测试地址</span>
</div>
</div>
</div>
<table
border="1"
style="
margin: 0 auto;
border: 1px solid #000;
width: 92.5mm;
font-family: 宋体;
font-size: 9pt;
text-align: left;
border-collapse:collapse;"
>
<tr>
<!-- 15 托寄物 -->
<td rowspan="2">
托寄物:演出票
</td>
<!-- 16 增值服务 -->
<!-- <td>
增值服务:
</td> -->
</tr>
<!-- 17 其他信息 -->
<tr>
<!-- 17. 1重量 -->
<!-- 17.2 付款方式、费用等 -->
<td>
<div>计费重量:1kg</div>
<div>实际重量:1kg</div>
<div>费用合计:22元</div>
<div>付款方式:到付</div>
</td>
</tr>
<tr>
<!-- 18 客户自定义区 -->
<td>
票种:
<br>
数量:
</td>
<!-- 19 图标区域 -->
<td>
<!-- 图标区域 -->
<!-- 贴纸信息 -->
</td>
</tr>
</table>
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Access-Control-Allow-Origin" content="*" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="telephone=yes" /><!-- 点击链接打电话 -->
<meta name="format-detection" content="address=no" />
<meta name="keywords" content="">
<meta name="description" content="">
<link rel="icon" type="image/png" sizes="12x12" href="https://img.zhengzai.tv/static/img/logo_small.png">
</head>
<body>
<!-- 顺丰快递面单打印,尺寸:100mm*150mm模版 -->
<div
id="shunfeng-express"
style="width: 96mm;
height: 150mm;
padding-top: 5mm;
border: 1px solid #000;
text-align: center;"
>
<!-- 1. 运单打印系统来源及时间等 -->
<div
class="sourceAndPrintTime"
style="width: 100%;
font-family: 宋体;
font-size: 4pt;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: flex-end;"
>
<!-- 1.1 打印系统来源(太长放不下了,所以去掉了) -->
<!-- <div class="source">
SCP顺丰云打印
</div> -->
<!-- 1.2 打印次数/时间 -->
<div
class="printTime"
style="width: 80%;
font-family: 宋体;
font-size: 4pt;
display: flex;
flex-direction: row;
justify-content: center;
align-items: flex-end;"
>
第一次打印 2020-05-05 12:00 第8/10个
</div>
<!-- 3 时效类型 -->
<div
class="timeOfDeliveryType"
style="font-family: 黑体;
font-size: 18pt;
font-weight: bolder;
margin-right: 2mm;"
>
<!-- 3.1 特快即日、特快A、特快、标快、标快陆运、特惠、电商标快 -->
特快
</div>
</div>
<!-- 2. 条码区 -->
<div class="barCodeArea">
<!-- 2.1 条码 -->
<div class="barCode">
<img src="/usr/local/var/www/liquidnet-bus-v1/liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/admin/service/impl/utils/tmphtml/qrcode/out1.png" style="width: 90%; height: 13mm; margin: 0 5mm;">
</div>
<!-- 2.2 子母件单号、汉字、件数标识、 -->
<div
class="childAndParentParts"
style="font-family: 黑体;
font-size: 10pt;
display: flex;
flex-direction: column;"
>
<div>
子单号:SF1 010 874 393 776
</div>
<div>
母单号:SF1 010 874 393 776
</div>
</div>
</div>
<!-- 4 目的地 -->
<!-- 4.1 路由信息 暂无-->
<div
class="destinationArea"
style="margin: 0 auto;
border: 1px solid #000;
border-bottom: none;
width: 92mm;"
>
<!-- 2.3 运单号 -->
<div
class="expressNumber"
style="font-size: 22pt; font-weight: bold;"
>
755W-BA-0123456789
</div>
<!-- 5 收方信息 -->
<div class="destinationInfo" style="text-align: left;">
<!-- 5.1 收 -->
<div class="imgShou" style="display: inline-block; width: 9mm; text-align: center;">
<img src="images/iconShou.png" style="width:7mm; height:7mm">
</div>
<!-- 5.2 收件人姓名/电话/地址 -->
<div
class="recipientInfo"
style="display: inline-block; width: 62mm; font-family: 宋体; font-size: 9pt; text-align: left;"
>
<div>
<span>收货姓名</span>
<span>18510980989</span>
</div>
<div>
<span>收货地址北京市朝阳区摩登天空测试地址</span>
</div>
</div>
<!-- 5.3 单元区域编码 暂无-->
<!-- 6 代收货款 -->
<div class="iconCOD" style="display: inline-block;">
<!-- 6.1 COD -->
<img src="images/COD.jpg" style="width: 17mm; height:9mm">
</div>
</div>
</div>
<table
class="QrCodeArea"
border="1"
style="margin: 0 auto; border: 1px solid #000; width: 92.5mm; border-collapse:collapse;"
>
<tr>
<td class="daofuInfo" style="font-family: 宋体; font-size: 9pt;">
到付22元
</td>
<td rowspan="3" class="QrCode">
<img src="/usr/local/var/www/liquidnet-bus-v1/liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/admin/service/impl/utils/tmphtml/qrcode/out.png" style="width: 25mm; height: 25mm">
</td>
<!-- 13 已验视 -->
<td
rowspan="3"
class="yiyanshiInfo"
style="font-family: 黑体; font-size: 22pt; font-weight: bold; color: #272727b3; writing-mode: vertical-lr;"
>
已验视
</td>
<!-- 产品名称 限时限时KC24字段 -->
<td
rowspan="2"
class="limitTime"
style="font-family: 宋体; font-size: 12pt; width: 20mm;"
>
限时
KC24
</td>
</tr>
<tr>
<td rowspan="2" class="jigangInfo" style="font-family: 黑体; font-size: 22pt; font-weight: bold;">
A22
</td>
</tr>
<tr>
<td class="">
1A
</td>
</tr>
</table>
<!-- 14 寄方信息 -->
<div
class="jiInfo"
style="border-left: 1px solid #000;
border-right: 1px solid #000;
width: 92mm;
margin: 0 auto;
text-align: left;"
>
<div
class="imgShou"
style="display: inline-block; width: 9mm; text-align: center;"
>
<img src="images/iconJi.png" style="width:7mm; height:7mm">
</div>
<!-- 14.1 寄件人人姓名/电话/地址 -->
<div
class="recipientInfo"
style="display: inline-block; width: 62mm; font-family: 宋体; font-size: 9pt; text-align: left;"
>
<div>
<span>寄件人姓名</span>
<span>18510980989</span>
</div>
<div>
<span>寄件地址北京市朝阳区摩登天空测试地址</span>
</div>
</div>
</div>
<table
class="otherInfo"
border="1"
style="
margin: 0 auto;
border: 1px solid #000;
width: 92.5mm;
font-family: 宋体;
font-size: 9pt;
text-align: left;
border-collapse:collapse;"
>
<tr>
<!-- 15 托寄物 -->
<td rowspan="2">
托寄物:
</td>
<!-- 16 增值服务 -->
<td>
增值服务:
</td>
</tr>
<!-- 17 其他信息 -->
<tr>
<!-- 17. 1重量 -->
<!-- 17.2 付款方式、费用等 -->
<td>
<div>计费重量:1kg</div>
<div>实际重量: 1kg</div>
<div>费用合计:22元</div>
<div>付款方式:寄付现结</div>
</td>
</tr>
<tr>
<!-- 18 客户自定义区 -->
<td>
客户自定义区
备注
转寄协议客户
订单等信息
</td>
<!-- 19 图标区域 -->
<td>
图标区域
贴纸信息
</td>
</tr>
</table>
</div>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment