A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我想知道word文档转换成pdf,java代码怎么实现,有没有什么开源的接口,Api。。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

1 个回复

倒序浏览
本帖最后由 qqwwdr 于 2014-2-26 21:47 编辑

我在网上找到了一个  可以做出来,
我也测试过可行,
要导入几个包:tm-extractors.jar,bcprov-jdk16-145.jar,iText.jar,iTextAsian.jar;
这个网站上可以下载到这几个包,http://www.java2s.com/;

注意:为了偷懒,这里要求输入的 文件路径    以 “/”作为分割符,“\\"这样的分割符在程序里没有处理。
           而且,对路径没有做判断,小心 ,呵呵。
  1. package wxn.itheima.com;

  2. import java.io.*;
  3. import java.util.Scanner;

  4. import org.textmining.text.extraction.WordExtractor;

  5. import com.lowagie.text.Document;
  6. import com.lowagie.text.DocumentException;
  7. import com.lowagie.text.Font;
  8. import com.lowagie.text.PageSize;
  9. import com.lowagie.text.Paragraph;
  10. import com.lowagie.text.pdf.BaseFont;
  11. import com.lowagie.text.pdf.PdfWriter;

  12. public class Word2Pdf {
  13.         
  14.         public static void main(String[] args){
  15.                 System.out.println("请输入需要转换成pdf的word文档路径:");
  16.                 Scanner scanner = new Scanner(System.in);
  17.                 String  path = null;
  18.                 if(scanner.hasNext()){
  19.                         path = scanner.next();
  20.                 }
  21.                 if(path == null || path.length()<=3){
  22.                         System.out.println("路径错误");
  23.                 }
  24.                 //调用方法
  25.                 try {
  26.                         String fileName = path.substring(path.lastIndexOf('/') +1, path.lastIndexOf('.'));
  27.                         write(getWord(path),"D:/Download/"+fileName+".pdf");
  28.                 } catch (IOException e) {
  29.                         e.printStackTrace();
  30.                 }
  31.         }

  32.         public static String getWord(String path) {
  33.                 System.out.println("==============================");
  34.                 System.out.println("Extract word start:===========");
  35.                 File file = new File(path);
  36.                 String returnString = "";
  37.                 InputStream is;
  38.                 try {
  39.                         is = new FileInputStream(file);
  40.                         WordExtractor extractor = new WordExtractor();
  41.                         returnString = extractor.extractText(is);
  42.                         System.out.println("Extract word end:===========");
  43.                 } catch (FileNotFoundException e) {
  44.                         e.printStackTrace();
  45.                 } catch (IOException e) {
  46.                         e.printStackTrace();
  47.                 } catch (Exception e) {
  48.                         e.printStackTrace();
  49.                 }
  50.                 return returnString;
  51.         }

  52.         public static void write(String content, String filePath)
  53.                         throws IOException {
  54.                 System.out.println("==============================");
  55.                 System.out.println("Write to pdf start:===========");
  56.                 final int margin = 10;
  57.                 // create the file
  58.                 File file = new File(filePath);
  59.                 if (!file.exists()) {
  60.                         Document doc = null;
  61.                         FileOutputStream fos = null;
  62.                         PdfWriter pdfWriter = null;
  63.                                 
  64.                         try {
  65.                                 BaseFont bFont = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
  66.                                 Font font = new Font(bFont);
  67.                                 font.setSize(8);
  68.                                 doc = new Document(PageSize.A4, margin, margin, margin, margin);
  69.                                 fos = new FileOutputStream(file);
  70.                                 pdfWriter = PdfWriter.getInstance(doc, fos);
  71.                                 doc.open();                        
  72.                                 //doc.addTitle(filePath.replace("D:\\", ""));
  73.                                 doc.add(new Paragraph(content, font));
  74.                                 System.out.println("Write to pdf end:===========");
  75.                         } catch (FileNotFoundException e) {
  76.                                 e.printStackTrace();
  77.                         } catch (DocumentException e) {
  78.                                 e.printStackTrace();
  79.                         } finally {
  80.                                 if (doc != null) {
  81.                                         doc.close();
  82.                                 }
  83.                                 if (pdfWriter != null) {
  84.                                         pdfWriter.close();
  85.                                 }
  86.                                 if (fos != null) {
  87.                                         fos.close();
  88.                                 }
  89.                         }
  90.                 }
  91.         }

  92. }
复制代码


原网页:http://bbs.csdn.net/topics/390118992

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马