# EMSSheet **Repository Path**: codfisher/emssheet ## Basic Information - **Project Name**: EMSSheet - **Description**: 生成EMS打印面单 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2023-02-17 - **Last Updated**: 2024-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: EMS, 打印, pdf, Java ## README # EMSSheet #### 介绍 用JAVA实现生成EMS打印面单。样式如下: ![展示效果](https://foruda.gitee.com/images/1677569713444218525/9aebd005_2175883.png "屏幕截图") #### 使用说明 单独生成一张EMS打印单 ``` EMS ems = new EMS(); ems.setSender("XX:1234567899 \n济南市历下区xxxxxxxx"); ems.setReceiver("XX:1234567899 \n济南市历下区xxxxxxxx济南市历下区xxxxxxxx"); ems.setCompany("xxxxx股份有限公司"); ems.setComments( "这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注这是一段备注"); ems.setRoutecode("1航站 京A1北京航站-粤A2广州航站 1航站 京A1北京航站-粤A2广州航站"); ems.setWaybillNO("1237777777777777"); ems.setPrintTime("2021-9-22 21:57:03"); new EMSBuilder().buildPDF(ems); ``` 批量生成EMS打印单 ``` List EMSList = new ArrayList<>(); for (int i = 0; i < 50; i++) { EMSList.add(ems); } OutputStream target = Files.newOutputStream(new File("merged.pdf").toPath()); new EMSBuilder().buildPDF(EMSList, target); target.close(); ``` 详细的代码参考,请看测试类 EMSBuilderTest.java #### 技术方案说明 ##### 制作PDF模板表单 1. 通过WPS、word编辑设置好文档格式,保存为PDF。 2. 将准备好的PDF,在[https://www.pdfescape.com/](https://www.pdfescape.com/) 中设计表单。或者用其他工具设计表单。参见下图: ![pdf表单](https://foruda.gitee.com/images/1677571206599433060/950767d1_2175883.png "屏幕截图") 3. 设置表单 name值,代码中通过该值给表单进行赋值。 ##### 通过代码给pdf表单赋值 ##### 通过openpdf 进行EMS打印单合并 #### 参与贡献 0. 欢迎大家贡献代码 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 感谢 > 参考链接: > https://pdfbox.apache.org/ > https://www.pdfescape.com/ > https://www.cnblogs.com/yjd_hycf_space/p/7942444.html