自己写的用aspose.words将word转pdf过程及一些注意问题
项目需求要提供合同打印导出功能,打印是前端同学用js做的,我不关心,导出即提供下载功能,开始思路是直接输出流到pdf,老大给了个方案:freemarker和itext结合使用,另一个同事负责开发,基本做出来了,问题是这个方案有严苛的要求,对字体等方面要求,比如宋体不识别,要替换为SimSun,空白占位符不识别等等问题,有些局限。所以我采用了另一种方案,曲线救国,先输出流到doc文档,这里不会产生任何问题,然后将文档转化为pdf。期间都很顺利,最终提测发现对历史数据有不支持的现象,转化为pdf后标签貌似它未识别,原封不动的给打印了出来,而不是以格式的形式进行渲染。第一个想法对比正常转化的新数据和不能正确转化的老数据,同样都是<p></p>标签形式,实在未发现任何不妥,后怀疑是一些空格等导致的问题,思路是排查标签带来的影响,后经多次排查未发现异常。转移突破点到生成doc中,突然想到是不是应该加上完整的<html></html>闭合标签,因为这一现象总结来看是它不识别标签当做正文来转的,所以要强迫它识别,后尝试成功。我所不能理解的是新数据同样的格式确能正常转化,当然加上标签以后也没有影响,也许是这样更规范吧。附两张对比图:
左侧为转化后pdf效果图,右侧为源码,这是没有<html></html>标签情况
左侧为转化后pdf效果图,右侧为源码,这是有<html></html>标签情况
所以初步判定应该是需要有<html></html>标签情况下能完美支持。路漫漫其修远,继续努力吧。
2019年11月19日 16:22:47
看到自己的博客里,这篇是访问量最高的,想必遇到这样需求的人比较多,其实这个方案并不是最优,当时解决了问题,但是存在另外的问题(之所以要记录下这篇博客,这也是成长的一个足迹,我觉得对我自己很有意义)。后来我个人是抛弃了这个方案,采用python版生成pdf,用的是pdfkit库,效果不错,使用也非常简单。有兴趣可以移步我的另一篇博客https://blog.csdn.net/qq_39314099/article/details/103145261
自己写的用aspose.words将word转pdf过程及一些注意问题相关推荐
- aspose win/linux WORD转PDF(及其解决乱码方式)
aspose win/linux WORD转PDF(及其解决乱码方式) 1.工具类 2.控制台 3.解决乱码 4.JAR包 之前自己用的docm4j 本地进行转换是ok 在服务器中就异常了: 后来在网 ...
- Aspose.Java实现word转pdf,添加水印等操作
Aspose.Java实现word转pdf,添加水印等操作 一. word转pdf 二. 文档插入水印 Aspose是一款商用版控件,支持各类文档操作,这里主要介绍如何在Springboot项目中使用 ...
- 使用Aspose组件将WORD、PDF、PPT转为图片
using System; using System.Collections.Generic; using System.Text; using OMCS.Engine.WhiteBoard; usi ...
- JAVA 使用 com.aspose.words将word转换PDF等
因为公司前端需要在线查看word和PDF,后台上传需求将word等文件转换为PDF,原本使用的是liboffice进行转换,后来部署到服务器端之后,发现并不是很适合,由此找到com.aspose.wo ...
- 利用Aspose.Words编辑word生成pdf
开发工具:vs2019 语言:C# 数据库:Oracle 一.利用NuGet程序包安装Aspose.Words; 二.新建Word文档,使用插入书签功能 三.代码 private void Creat ...
- 使用Aspose txt转Word或PDF乱码问题
出现乱码问题有两种可能 1. 系统无中文字体(通常发生在Linux系统下,自行百度Linux如何安装中文字体) 2. TXT的byte流没有选择合适的编码,不能写死为UTF-8,需要根据实际文本的编码 ...
- java根据word模板导出_java根据模板生成,导出word和pdf(aspose.words实现word转换pdf)...
相关一部分java文件和jar包 pom文件 com.aspose aspose-words 18.2 word模板 其中的内容要在设置在表格里面 js导出方法 functionf_export(){ ...
- 使用Aspose.Words将word转PDF并且去水印。
- Java word转pdf Linux/windows跨平台 格式完美(利用命令行调用libreoffice)
参考了里面的libreoffice的用法:https://blog.csdn.net/qwert678000/article/details/72770109 需求描述 最近在做word报表的自动生成 ...
最新文章
- .NET Remoting中的通道注册
- 激光+视觉+IMU+GPS如何做融合?
- Spring boot返回JSON类型响应及Content-Type设置
- Cocoapods警告 - CocoaPods没有设置项目的基本配置,因为您的项目已经有自定义配置集
- 容易混淆的php函数,个人笔记
- IDEA+Maven运行调试MapReduce程序
- 我新买的GTX1050为何装上去一直是黑屏
- python标准库——time模块
- ESP8285烧写问题备忘
- 微信小程序数据库操作之更新数据(转载)
- 百度排名批量查询_企业网站核心关键词排名消失,什么原因?
- 银尔达-----合宙Air724全网通4g DTU无线透传模块串口UART(TTL)+RS485核心板
- 鼠标跟随flash代码_Flash动画设计之 MTV实例创作《不说再见》
- 溴PEG溴,Br-PEG-Br
- Linux下QT安装
- 手把手教你iPhone 3G手机软件开发
- python数据分析可视化项目——游戏销售量
- 怎样拍摄全景照片?全景图片拍摄流程
- Express项目中用javascript实现连接mysql数据库
- 将edge浏览器设置为IE浏览器
热门文章
- 【数据库】【Mysql - Workbench1】 :如何解决WPS/excel数据导入时Table Data Import报错问题?
- prim 最小生成树算法 java实现
- 说说ShellExecuteEx
- 深度理解运放增益带宽积
- 图嵌入前篇之词嵌入模型 Wrod2Vec
- 重装系统后,启动MySQL(不用重装mysql)
- 在surface go 2上安装ubuntu 20.04
- 前端小作业~小人动画案例
- 【CG】透视变换(Perspective Transformation)
- oracle如何将f8设置成执行,恢复F8(恢复到出厂设置)功能