1、如果是收据或者其他不是A4大小的票据,首先将票据用打印机扫描成图片格式,用ps等工具裁剪成实际票据的大小备用。
2、设计一张实际票据大小的空白pdf模板,备用。
3、用Adobe 等pdf编辑工具打开上面制作的空白模板,点击编辑,在更多->背景->添加->选文件->浏览,选中步骤1制作的票据点击确定。
4、在菜单栏中选择准备表单,点击开始,保存到相应的文件夹。
5、在需要填入值的地方添加文本域,设置域名称,需要注意的一点
- 设置外观->文字大小选项中,一定设置文字大小和
字体(实际操作中,如果填入值只涉及数字不需要,如果有汉字最好设置一下,后期赋值很可能页面不显示汉字)
6、添加完文本域,选择工具,编辑->更多->背景->删除,删除背景,只留下文本域,保存成模板。
至此,itextpdf模板制作完成。下来就是往里面进行赋值,将生成的临时文件按文件流返回给前端,进行打印即可。
代码如下:
//预缴款收据
@Override
public String queryByPdfPrint(PdfPrintVo pdfPrintVo, String templateName, String type) {
//服务器地址
String upFiles = uploadpath;
String files = "files";
String temp = "pdfPrint";
//查询模板的位置 File.separator 表示路径中的\或者/
String templatePath = upFiles + File.separator + files + File.separator + temp + File.separator + templateName ;
if (templatePath.contains("\\")) {
templatePath = templatePath.replace("\\", "/");
}
ElderInfo elderInfo = elderInfoService.getOne(new QueryWrapper<ElderInfo>().eq("elder_number",pdfPrintVo.getElderNumber()).orderByAsc("create_time").last("limit 1"));
File file = new File(upFiles + File.separator + files + File.separator + elderInfo.getId());
if (!file.exists(