Java如何将Word文件转成PDF文件

zy_think123 2014-08-30 04:52:13
现在想要将Word文件转成PDF文件,但是呢!好像不能直接转(或许可以,但是我没有找到方法),于是就有人说可以先将其转换成Html文件,然后转成PDF文件,求大神告知代码?给个例子也好呀!
关于组件:象什么Jcom呀,由于要用dll文件这种类似的东西,但是现在我们是不能操作服务器的,所以这种方法是不可行的,我也知道了用POI的方式操作,但是对Word的支持是在不咋样的,而且Bug一大堆

最终觉得IText或者PDFBox挺靠谱的,可是只是知道思路无从下手呀!希望大家给个意见!在此谢过了,不胜感激!


由于Word文件是用户上传的,所以里面是很有可能有图片的,也有可能有表格,当然有文字了。

现在想要将Word中的格式原封不动的搬到PDF中(字体呀,颜色呀这些可以忽略不计了),大家给帮个忙嘛!分不够再加


...全文
38614 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
commonFa 2017-03-04
  • 打赏
  • 举报
回复
windows环境下好做多了,可用jcom、jacob、itext、docx4j等.......,现在我也遇到困难就是服务器是Linux,不能用.dll的方式了,所有现在用itext先转html 再用jsoup处理html,最后再转成pdf,比较麻烦的就是图片
Zest_wang 2016-09-20
  • 打赏
  • 举报
回复
楼主,这个功能解决了吗?QQ:8989507939.能教教我吗?
zxy86229303 2016-08-31
  • 打赏
  • 举报
回复
用工具做了一个PDF模版不太好用
xiaosi41 2016-08-22
  • 打赏
  • 举报
回复
楼主 最后怎么解决的呢?
IOjust 2016-06-27
  • 打赏
  • 举报
回复
so,问题就解决否啊。。
飞舞花下 2016-05-27
  • 打赏
  • 举报
回复
import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Font; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; public class vonversion{ //将Word内容写入pdf MultipartFile public boolean writePDF(MultipartFile partfile,String filePath) throws IOException{ System.out.println("=============================="); System.out.println("Write to pdf start:==========="); boolean flag = false; final int margin = 10; // String contents = getContents(partfile); //将 MultipartFile 转换为file CommonsMultipartFile cf= (CommonsMultipartFile)partfile; //这个partfile是MultipartFile的 DiskFileItem fi = (DiskFileItem)cf.getFileItem(); File file = fi.getStoreLocation(); String cont = getWord(file); // File file = new File(filePath); if(file.length()>0){ Document doc = null; FileOutputStream fos = null; PdfWriter pdfWriter = null; try { BaseFont baseFT = BaseFont.createFont("c://windows//fonts//simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); //BaseFont baseFT = BaseFont.CreateFont("c://windows//fonts//simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); //BaseFont bFont = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false); Font font = new Font(baseFT); font.setSize(8); doc = new Document(PageSize.A4, margin, margin, margin, margin); //转换后的PDF的文件路径 fos = new FileOutputStream("C:/Users/Administrator/Desktop/aaa.pdf"); pdfWriter = PdfWriter.getInstance(doc, fos); doc.open(); doc.addTitle(filePath.replace("D:\\", "")); doc.add(new Paragraph(cont, font)); flag=true; System.out.println("Write to pdf end:==========="); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } finally{ if(doc != null){ doc.close(); } if(pdfWriter != null){ pdfWriter.close(); } if(fos != null){ fos.close(); } } } return flag; } //读取Word public static String getWord(File file) { System.out.println("=============================="); System.out.println("Extract word start:==========="); // File file = new File(path); String returnString = ""; InputStream is; try { is = new FileInputStream(file); WordExtractor extractor = new WordExtractor(is); returnString=extractor.getText(); System.out.println("Extract word end:==========="); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return returnString; } }
qq_22913365 2016-05-25
  • 打赏
  • 举报
回复
引用 11 楼 ldh911 的回复:
你用Java实现,然后又说不能操作服务器,这是个啥意思?你Java运行在什么地方?以什么形态运行的? 常规建议方案是:先找一个支持 Word2PDF 的软件,且该软件提供命令行功能;然后Java使用Runtime去执行该软件的命令行来完成转换工作。
意思是服务器不能用安装软件,插件可以。有解决的吗?我现在也在弄这个问题,还是个新手救命啊
  • 打赏
  • 举报
回复
楼主我现在也需要把 word转换成pdf,楼主有没有具体的实现代码
千i世 2015-08-26
  • 打赏
  • 举报
回复
楼主
引用 17 楼 lin9118 的回复:
我曾干过这事,用poi可以实现将word转成PDF,但是图片就没办法了
我想问下你是怎么实现的,我这块没图片,
自愿来加班 2015-06-25
  • 打赏
  • 举报
回复
楼主的问题解决了吗?怎么做的啊?我现在也想把word转成pdf,不知道怎么做,希望楼主帮忙!
qq_1514131033 2015-06-10
  • 打赏
  • 举报
回复
楼主 怎么能的啊 我今天也遇到这问题了
jceide5478 2015-04-10
  • 打赏
  • 举报
回复
免费word转pdf http://www.pc6.com/softview/SoftView_129869.html
Neil_cc 2015-01-26
  • 打赏
  • 举报
回复
楼主有答案了吗
tony4geek 2014-09-04
  • 打赏
  • 举报
回复
web项目现在就在用啊。没问题。
zy_think123 2014-09-04
  • 打赏
  • 举报
回复
引用 14 楼 rui888 的回复:
jacob.dll saveAs 方法
你说的用过,但是普通JAVA项目可以使用,但是放在web项目中无法使用,可能是配置原因吧!我去试一试,结贴了
sinat_17113693 2014-09-03
  • 打赏
  • 举报
回复
你是不是yz
nash0921 2014-09-03
  • 打赏
  • 举报
回复
2 楼正解,就是jacob.dll文件配置的地方有点多
tony4geek 2014-09-03
  • 打赏
  • 举报
回复
jacob.dll saveAs 方法
zy_think123 2014-09-03
  • 打赏
  • 举报
回复
引用 12 楼 xmt1139057136 的回复:
我是想要抽取word中的内容然后转成PDF,同时由于某些条件不能用软件转好 这样的话,就有点不好做了 给你个网址,你好好学习一下! http://wenku.baidu.com/view/2dde228783d049649b6658d7.html
用这种方式特别奇葩,就是一个简单的JAVA工程可以运行但是把它移到web工程中去的时候就不能运行,直接跑到finally代码中去了,也没有抛出异常
Gaken 2014-09-03
  • 打赏
  • 举报
回复
我曾干过这事,用poi可以实现将word转成PDF,但是图片就没办法了
加载更多回复(12)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧