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

日本企业网站模板seo网络优化是什么意思

日本企业网站模板,seo网络优化是什么意思,微信同城交友网站怎么做,网站上那些兼职网页怎么做的一、前言 上一篇我们介绍了导出word,既然有了导出word,那么到处pdf也将会出现,导出word和pdf基本上是配套的需求,跑不了,那么本次我就简单介绍一下导出pdf。 二、代码实现 2.1、依赖引入 导出pdf是基于documents4j实现…

一、前言

        上一篇我们介绍了导出word,既然有了导出word,那么到处pdf也将会出现,导出word和pdf基本上是配套的需求,跑不了,那么本次我就简单介绍一下导出pdf。

二、代码实现

        2.1、依赖引入

        导出pdf是基于documents4j实现的,需要引入一些依赖,pom文件的话大家以实际情况编写,比如小永哥本地只加了documents4j-local和documents4j-transformer-msoffice-word就好了,如果只引这两个报不全的话,建议大家讲依赖包都documents4j都加到pom文件中,除了documents4j还有一个org下的zeroturnaround依赖,详情请看下图。

        2.2、代码实现

package com.relation;import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;
import java.io.*;
public class PdfTest {public static void convert(String inputPath, String outputPath) throws Exception {File inputFile = new File(inputPath);File outputFile = new File(outputPath);try (InputStream docx = new FileInputStream(inputFile);OutputStream pdf = new FileOutputStream(outputFile)) {IConverter converter = LocalConverter.builder().build();converter.convert(docx).as(DocumentType.DOCX).to(pdf).as(DocumentType.PDF).execute();converter.shutDown();}}public static void main(String[] args) {try {convert("C:\\Users\\ASP.NET\\Downloads\\导出测试文件.docx", "C:\\Users\\ASP.NET\\Downloads\\导出测试文件.pdf");} catch (Exception e) {e.printStackTrace();}}
}

        

        2.3、web实现

        我们通过2.2步骤可以看到,已经能实现了,我们再来看看开发过程中的写法,其实是大同小异,都是对文件流的操作而已。我们看代码。

@PostMapping("/exportPdfFile")public void exportPdfFile(HttpServletResponse response){//创建XWPFDocumentXWPFDocument doc = getXWPFDocument();ServletOutputStream outputStream = null;try{//获取doc的输入流ByteArrayOutputStream baos = new ByteArrayOutputStream();doc.write(baos);InputStream in = new ByteArrayInputStream(baos.toByteArray());outputStream = response.getOutputStream();response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");response.setHeader("Content-Disposition", "attachment; filename="+ URLEncoder.encode("web测试导出.pdf", "UTF-8"));IConverter converter = LocalConverter.builder().build();converter.convert(in).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();converter.shutDown();}catch (Exception e){log.error(e.getMessage(),e);throw new RuntimeException("导出异常");}finally {if(Objects.nonNull(outputStream)){try {outputStream.close();doc.close();}catch (Exception e){}}}}private XWPFDocument getXWPFDocument(){try {Resource resource = new ClassPathResource("model/导出模板.docx");XWPFDocument doc = new XWPFDocument(resource.getInputStream());//获取段落List<XWPFParagraph> paragraphs = doc.getParagraphs();for (XWPFParagraph paragraph : paragraphs) {//从段落中获取书签List<CTBookmark> bookmarkStartList = paragraph.getCTP().getBookmarkStartList();for (CTBookmark ctBookmark : bookmarkStartList) {String ctBookmarkName = ctBookmark.getName();if("exportTitle".equals(ctBookmarkName)){// 清除原有内容paragraph.getRuns().forEach(run -> run.setText("", 0));// 添加新内容paragraph.createRun().setText("导出测试标题!!");}if("tableTitle".equals(ctBookmarkName)){// 清除原有内容paragraph.getRuns().forEach(run -> run.setText("", 0));// 添加新内容paragraph.createRun().setText("测试导出表格标题!!");}if("tableInfo".equals(ctBookmarkName)){// 在书签位置创建表格XWPFTable table = doc.insertNewTbl(paragraph.getCTP().newCursor());//删除默认行table.removeRow(0);//插入3行for (int i = 0; i < 3; i++) {table.createRow();}List<XWPFTableRow> rows = table.getRows();String[] headers = {"序号","姓名","年龄","城市"};XWPFTableRow headerRow = table.getRow(0);for(int i=0; i<headers.length; i++) {headerRow.createCell().setText(headers[i]);}// 添加数据行String[][] data = {{"1","小永哥","18","北京"},{"2","胡彪","45","吉林"}};for (int i = 0; i < data.length; i++) {XWPFTableRow row = table.getRow(i+1);String[] rowData = data[i];for(int j=0; j<rowData.length; j++) {row.createCell().setText(rowData[j]);}}}}}return doc;}catch (Exception e){log.error(e.getMessage(),e);return null;}}

        基于接口形式的代码我们也演示完了,基本上导出pdf的代码就到此了,核心思路其实是根据word文件生成pdf,简单来说就是word转pdf。

三、结语

        本期word转pdf看似很完美,其实还差最核心的一步,就是我们在第二章节的代码实现,目前只能运行在windows环境,如果一旦代码要部署到生产环境,那么就无法使用了,因为word转pdf需要依赖LiberOffice,Windows环境大家基本上都会安装office,所以并未感知到office的作用,而生产环境是linux的话,就需要再安装一套基于linux的LiberOffice,这个问题小永哥暂时还未解决,等解决后,小永哥会再补充一篇,本期暂时就到这里了,晚安......

http://www.dtcms.com/wzjs/364199.html

相关文章:

  • 找别人做网站要注意什么软件临沂seo网站管理
  • java如何对网站做压力测试百度风云榜游戏
  • 官方门户网站j建设的必要性网络查询网站
  • 苏州高端建站公司seo服务公司招聘
  • 哪个网站专题做的好百度刷排名百度快速排名
  • 找人建设网站自媒体平台app
  • 股票海选公司用什么网站软文推广文章范文1000
  • 支付宝网站开发代运营套餐价格表
  • 杭州网站排名优化工具现在有什么技能培训班
  • 服务器搭建网站软件怎么样自己创建网站
  • 做网站客源免费seo网站诊断免费
  • 传奇私服网站做sslseo入口
  • 最简单的一个网站开发电子商务网站建设案例
  • 任丘住房建设局网站百度平台交易
  • 做网站一班需要多少钱南昌网站开发公司
  • 布朗新风 中企动力提供网站建设十大品牌营销策划公司
  • 养生网站源码下载竞价广告是什么意思
  • 如何选网站建设公司陕西seo优化
  • java电子商务网站建设深圳搜索引擎
  • 专业建设网站公司排名校园推广
  • jsp做网站的优点厦门seo蜘蛛屯
  • 音乐播放网站怎么做百度识图搜索图片来源
  • 响应式网站在线广告设计与制作
  • 长沙网站制作哪家强关键词异地排名查询
  • 上海网站建设设计公司哪家好怎么做自媒体
  • 网站建设解决方外链推广网站
  • 威海网站开发公司短视频seo推广
  • 域名如何注册?深圳快速seo排名优化
  • 网站怎么做定位功能百度点击软件名风
  • wordpress的登入页面好口碑关键词优化地址