几种方案:
方法一:用apache pio 读取doc文件,然后转成html文件用Jsoup格式化html文件,最后用itext将html文件转成pdf。
方法2:使用jdoctopdf来实现,这是一个封装好的包,可以把doc转换成pdf,html,xml等格式,调用很方便
地址:http://www.maxstocker.com/jdoctopdf/downloads.php
需要注意中文字体的写入问题。
方法3:使用jodconverter来调用openOffice的服务来转换,openOffice有个各个平台的版本,所以这种方法跟方法1一样都是跨平台的。
jodconverter的下载地址:http://www.artofsolving.com/opensource/jodconverter
首先要安装openOffice,下载地址:http://www.openoffice.org/download/index.html
安装完后要启动openOffice的服务,具体启动方法请自行google
方法4:效果最好的一种方法,但是需要window环境,而且速度是最慢的需要安装msofficeWord以及SaveAsPDFandXPS.exe(word的一个插件,用来把word转化为pdf)
Office版本是2007,因为SaveAsPDFandXPS是微软为office2007及以上版本开发的插件
SaveAsPDFandXPS下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7
jacob 包下载地址:http://sourceforge.net/projects/jacob-project/
② java 将图片生成pdf 问题
在Java中生成PDF文档时,你可以使用iText库来处理图片并将其转换为PDF。具体来说,你可以通过以下步骤完成这一任务。首先,你需要创建一个PDF文档对象,例如:Document doc = new Document(null, 0, 0, 0, 0);。然后,你需要通过指定图片路径获取图片对象,例如:Image image = Image.getInstance(imgPath);。接着,你需要实例化PdfWriter对象,将文档与输出流关联,例如:PdfWriter.getInstance(doc, fos);。
除此之外,你需要打开文档进行写入操作,并添加图片到文档中。打开文档的方法为:doc.open();。接着,你可以将图片添加到文档中,例如:doc.add(image);。最后,记得关闭文档以确保所有数据都被正确写入输出流,例如:doc.close();。
在实际操作中,你可能会遇到一些问题,比如图片大小和格式不兼容的问题。为了解决这些问题,你可以在获取图片对象时使用一些额外的参数进行调整,例如:Image image = Image.getInstance(imgPath, null, 100, null);。这里,100代表的是缩放比例,你可以根据需要进行调整。
另外,如果你的图片较多,或者需要频繁生成PDF文档,建议使用iText的流式处理方法,这可以提高生成PDF的效率。同时,为了确保生成的PDF文档质量,你还可以通过设置文档的边距、字体等属性来优化文档的外观。
总之,使用iText库生成PDF文档是一个相对简单的过程,只要遵循正确的步骤和方法,你就能成功地将图片转换为PDF文件。