医院网站建设趋势,信息技术制作网站,服务好又优惠的网站制作,公司建设哪个方便一、免费方式
优点#xff1a;1、免费#xff1b;2、在众多免费中挑选出的转换效果相对较好#xff0c;并且不用像openOffice那样安装服务
缺点#xff1a;1、对字体支持没有很好#xff0c;需要安装字体库或者使用宋体#xff08;对宋体支持很好#xff09;2、对于使…一、免费方式
优点1、免费2、在众多免费中挑选出的转换效果相对较好并且不用像openOffice那样安装服务
缺点1、对字体支持没有很好需要安装字体库或者使用宋体对宋体支持很好2、对于使用freeMarker模板转化过来的doc无法读取转换
第一步 dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion3.17/version/dependencydependencygroupIdfr.opensagres.xdocreport/groupIdartifactIdfr.opensagres.poi.xwpf.converter.pdf-gae/artifactIdversion2.0.1/version/dependency
第二步
public static void main(String[] args) throws Exception {FileInputStream fileInputStream new FileInputStream(D:\\test\\研判报告docx.docx);XWPFDocument xwpfDocument new XWPFDocument(fileInputStream);
// 将word中字体转化为宋体防止其他字体无法正常显示setFontType(xwpfDocument);FileOutputStream fileOutputStream new FileOutputStream(D:\\test\\研判报告11.docx);PdfConverter.getInstance().convert(xwpfDocument,fileOutputStream,pdfOptions);fileInputStream.close();fileOutputStream.close();}/**** 将文档的文字设置为宋体 防止其他字体转pdf不显示* Description:* param xwpfDocument* return:*/private static void setFontType(XWPFDocument xwpfDocument) {//转换文档中文字字体ListXWPFParagraph paragraphs xwpfDocument.getParagraphs();if(paragraphs ! null paragraphs.size()0){for (XWPFParagraph paragraph : paragraphs) {ListXWPFRun runs paragraph.getRuns();if(runs !null runs.size()0){for (XWPFRun run : runs) {run.setFontFamily(宋体);}}}}//转换表格里的字体 我也不想俄罗斯套娃但是不套真不能设置字体ListXWPFTable tables xwpfDocument.getTables();for (XWPFTable table : tables) {ListXWPFTableRow rows table.getRows();for (XWPFTableRow row : rows) {ListXWPFTableCell tableCells row.getTableCells();for (XWPFTableCell tableCell : tableCells) {ListXWPFParagraph paragraphs1 tableCell.getParagraphs();for (XWPFParagraph xwpfParagraph : paragraphs1) {ListXWPFRun runs xwpfParagraph.getRuns();for (XWPFRun run : runs) {run.setFontFamily(宋体);}}}}}}
二、收费方式
除了收费没啥缺点
1、freemarker生成word模板
①、自己新建一个word文档内容就按照需要的格式内容
②、word文档另存为选择xml格式 ③、修改xml后缀为ftl放在如图位置 ④代码 public static void main(String[] args) throws Exception {//1.创建配置类Configuration configurationnew Configuration(Configuration.getVersion());//2.设置模板所在的目录configuration.setDirectoryForTemplateLoading(new File(.\\template));//3.设置字符集configuration.setDefaultEncoding(utf-8);//4.加载模板Template template configuration.getTemplate(研判报告docx.ftl);//5.创建数据模型Map mapnew HashMap();map.put(name,姓名姓名);map.put(idCard,身份证号码);map.put(age,36);map.put(sex,男);MapString, Object data1 new HashMap();data1.put(item,map);Writer out new FileWriter(new File(.\\template\\研判报告docx.docx));//7.输出template.process(data1, out);//8.关闭Writer对象out.close();} 2、word转pdf
①、新建asposeLicense.xml放到如图位置 asposeLicense.xml内容
LicenseDataProductsProductAspose.Total for Java/ProductProductAspose.Words for Java/Product/ProductsEditionTypeEnterprise/EditionTypeSubscriptionExpiry20991231/SubscriptionExpiryLicenseExpiry20991231/LicenseExpirySerialNumber8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7/SerialNumber/DataSignaturesNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppod0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU/Signature
/License
②、代码
public static void main(String[] args) {String docPath .\\template\\研判报告docx.docx;String savePath .\\template\\研判报告docx4.pdf;word2pdf(docPath, savePath);}public static void word2pdf(String docPath, String savePath) {try {ClassPathResource resource new ClassPathResource(asposeLicense.xml);InputStream inputStream resource.getInputStream();License license new License();license.setLicense(inputStream);com.aspose.words.Document document new com.aspose.words.Document(docPath);document.save(new FileOutputStream(new File(savePath)), SaveFormat.PDF);} catch (Exception e) {e.printStackTrace();}}