当前位置: 首页 > news >正文

网站设计的英文深圳seo优化培训

网站设计的英文,深圳seo优化培训,wordpress 页面显示分类文章列表,怎么在外国网站上找产品做跨境电商java导出pdf,前端下载 1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接 使用注意点 因为原来制作的pdf表单内容过于复杂,下面代码只包含前两行的操作。 本次操作需要前端向后端发起请求,后端返回数据给前端…

java导出pdf,前端下载

    • 1、制作pdf模板
    • 2、获取pdf导出中文需要的文件
    • 3、实现
    • 4、前端发起请求并生成下载链接

使用注意点
因为原来制作的pdf表单内容过于复杂,下面代码只包含前两行的操作。
本次操作需要前端向后端发起请求,后端返回数据给前端用于下载,所以没有在本地进行保存。
第 1 步制作pdf模板需要的pdf编辑软件基本上都需要钱,可以去买一个
第 2 步获取的pdf导出的中文需要的文件,如果pdf输出的内容有中文就需要去弄一下这个文件,在代码中用于读取设置中文字体

包含内容
1、导出pdf
2、设置斜体水印

1、制作pdf模板

先将需要的pdf模板通过word制作出来,然后导出为pdf
先准备一个pdf
使用Adobe Acrobat DC 打开并制作模板(其他pdf编辑软件也可以)
在这里插入图片描述
选择打开前面导出的pdf模板
在这里插入图片描述
点击准备表单
在这里插入图片描述
点击之后,可以针对没一个位置进行编辑,选中双击就可以进行编辑了,要注意,每个位置的名字都需要是唯一的
在这里插入图片描述
全部赋值后保存即可

2、获取pdf导出中文需要的文件

获取中文字体需要的文件
在这里插入图片描述
在电脑这个路径下选择下载一个就行
在这里插入图片描述

3、实现

pom依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.2.3</version><type>pom</type>
</dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version>
</dependency>

controller接口

    @GetMapping("/exportPDF/{applyId}")public ResponseEntity<byte[]> exportPDF(@PathVariable("applyId") String applyId, HttpServletResponse response) throws IOException,ParseException,Exception {byte[] res = applyService.exportPDF(applyId);HttpHeaders headers = new HttpHeaders();headers.add("Content-Disposition", "attachment; filename=filled_form.pdf");headers.add("Content-Type", "application/pdf");return ResponseEntity.ok().headers(headers).body(res);}

service具体实现

	public static byte[] exportPDF1() throws Exception {String inputTemplateName = "template";try {pdfBytes = null;Map<String, String> map = new HashMap<>();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");// map预填数据,用于后面读取输出到pdf文件上map.put("department-1", "研发中心");map.put("submitDate-1", sdf.format(new Date()));map.put("submitPerson-1", "张三");map.put("travelPerson-1", "李四");map.put("receivePerson-1","王五");// 设置中文字体PdfFont chineseFont = PdfFontFactory.createFont("src/main/resources/file/simsun.ttc,0");// 模板路径String templatePath = "src\\main\\resources\\file\\" + inputTemplateName + ".pdf";// 重点,这一个关联了reader 和 writerByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();// 读取文件FileInputStream pdfInputStream = new FileInputStream(new File(templatePath));// 定义 reader 和writerPdfReader reader = new PdfReader(pdfInputStream);PdfWriter writer = new PdfWriter(byteArrayOutputStream,new WriterProperties().setStandardEncryption(null,null,EncryptionConstants.ALLOW_PRINTING, // 允许打印EncryptionConstants.ENCRYPTION_AES_128 // 加密方式));// 根据 reader 和writer 创建 PdfDocumentPdfDocument pdfDocument = new PdfDocument(reader,writer);// 下面是给文件添加水印,不需要的可以直接删掉// 获取 pdf 模板页数int numberOfPages = pdfDocument.getNumberOfPages();// 遍历每一页并添加水印for (int i = 1; i <= numberOfPages; i++) {PdfPage page = pdfDocument.getPage(i);// 获取页面尺寸(在这里我没有用)int pageWidth = (int) Math.floor(page.getPageSize().getWidth());int pageHeight = (int) Math.floor(page.getPageSize().getHeight());// 创建一个 PdfCanvas 对象PdfCanvas canvas = new PdfCanvas(page);// 保存当前坐标系状态canvas.saveState();// 水印内容旋转double angle = Math.toRadians(45);double cos = Math.cos(angle);double sin = Math.sin(angle);canvas.concatMatrix(cos, sin, -sin, cos, 0, 0);// 设置水印的字体和透明度canvas.setFontAndSize(PdfFontFactory.createFont(), 20);canvas.setFillColorRgb(0.75f, 0.75f, 0.75f);  // 灰色canvas.setLineWidth(2);// 正常应该根据获取到的页面尺寸进行 x y 轴的遍历并// 但是我这边没有铺满,就自己设置了遍历的范围for (int x = -90; x < 2000; x += 300) {for (int y = -190; y < 2000; y += 200) {// 绘制水印文字canvas.beginText();canvas.setTextMatrix(x, y);  // 设置水印位置canvas.showText("Watermark Text this is just a test");  // 水印文字内容canvas.endText();}}// 恢复坐标系状态canvas.restoreState();}// form 可以理解为把pdf文件看做一个form表单,以key value键值对保存PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDocument, true);// 遍历上面预填的 map 并将值根据 key 赋值到formfor (Map.Entry<String, String> entry : map.entrySet()) {form.getField(entry.getKey()).setValue(entry.getValue());form.getField(entry.getKey()).setFont(chineseFont).setFontSize(8);}pdfDocument.close();// 返回文件流pdfBytes = byteArrayOutputStream.toByteArray();return pdfBytes;} catch (Exception e) {e.printStackTrace();}finally {return pdfBytes;}}

4、前端发起请求并生成下载链接

	exportPdf(applyId) {exportPDF(applyId).then(res => {// 创建一个 Blob 对象,指定类型为 PDF 文件const blob = new Blob([res.data], { type: 'application/pdf' });// 创建一个 URL 对象,指向 Blob 数据const url = URL.createObjectURL(blob);// 创建一个下载链接const link = document.createElement('a');link.href = url;link.download = 'generated_with_form.pdf'; // 设置下载文件名// 模拟点击下载链接link.click();// 下载完成后释放 URL 对象URL.revokeObjectURL(url);})},
http://www.hkea.cn/news/647065/

相关文章:

  • 盘锦网站建设公司网络营销策略包括哪些
  • 简述电子商务网站开发的基本原则一站式网络营销
  • 商丘网站网络推广员的工作内容和步骤
  • 取消wordpress邮箱认证北京搜索优化排名公司
  • 千库网素材南宁seo优势
  • 西安机场商务宾馆百度做网站怎么在百度上做网站
  • ps网站建设seo网络公司
  • 网站建设步骤 教 程网站怎么做谷歌推广
  • 网站制作需要注意什么潍坊做网站哪家好
  • 专门做团购的网站有哪些色盲图
  • 百度做网站续费费用百度营业执照怎么办理
  • 深圳网站建设方维网络企业网站制作要求
  • 制作好网站黑帽seo教程
  • 云南 网站建设网站seo优化对网店的推广的作用为
  • 网站建设免费国外舆情服务公司
  • 怎么做网站banner查排名网站
  • 做网站好看的背景图片相关搜索优化软件
  • 怎么查网站是哪家制作公司做的百度收录查询
  • 企业年金交了有好处吗网络优化工程师吃香吗
  • python做网站开发百度6大核心部门
  • 自己做网站平台企业网站优化价格
  • 淘宝网网站建设的需求分析百度会员登录入口
  • 建网站的专业公司推广网站多少钱
  • 网站不去公安局备案自己怎么搭建网站
  • 外贸网站建设入门深圳网络推广哪家
  • 网站模板资源公司网站推广
  • 广东省建设教育协会官方网站首页html简单网页代码
  • 个人网站意义阿里指数官网最新版本
  • 网站开发方式有哪四种搜索引擎优化课程总结
  • 申请做网站、论坛版主app推广接单