2014-10-29 44 views
0

我正在試圖在JAVA中創建一個自動化程序。 我有一個示例doc文件。我需要填寫空白部分或<>來自數據庫的「簽名」部分, 比創建pdf文件。JAVA閱讀示例doc文件,填寫數據並生成PDF

我試着讀單詞:

import java.io.*; 
import org.apache.poi.hwpf.HWPFDocument; 
import org.apache.poi.hwpf.extractor.WordExtractor; 

public class ReadDocFile { 
public static void main(String[] args) { 
File file = null; 
WordExtractor extractor = null ; 
try { 

    file = new File("c:\\New.doc"); 
    FileInputStream fis=new FileInputStream(file.getAbsolutePath()); 
    HWPFDocument document=new HWPFDocument(fis); 
    extractor = new WordExtractor(document); 
    String [] fileData = extractor.getParagraphText(); 
    for(int i=0;i<fileData.length;i++){ 
    if(fileData[i] != null) 
     System.out.println(fileData[i]); 
    } 
} 
catch(Exception exep){} 
    } 
} 

但這attemption在許多方式造成不好的,我只需要編寫一些部件,這種方法使從DOC單個測試。

所以,你可以諮詢我一些API,在一個Word文檔例如寫:after Name :in the 5 row write this: 而當它與字完成它應該產生一個pdf,做一遍......

我找一個解決方案,我發現xssfworkbook與一些額外的功能(生成文檔的PDF)。

或閱讀樣本pdf並填入數據並保存爲新的pdf。

THX

回答

2

使用的iText(http://sourceforge.net/projects/itext/) 和Apache POI項目http://poi.apache.org/index.html

示例代碼:

 import java.io.BufferedInputStream; 
    import java.io.FileInputStream; 
    import java.io.FileNotFoundException; 
    import java.io.FileOutputStream; 
    import java.io.IOException; 
    import java.io.InputStream; 

    import org.apache.poi.hwpf.extractor.WordExtractor; 

    import com.itextpdf.text.Document; 
    import com.itextpdf.text.DocumentException; 
    import com.itextpdf.text.Paragraph; 
    import com.itextpdf.text.pdf.PdfWriter; 

    public static void main(String[] args) { 
      String pdfPath = "C:/"; 
      String pdfDocPath = null; 
      try { 
       InputStream is = new BufferedInputStream(new FileInputStream("C:/Test.doc")); 

       WordExtractor wd = new WordExtractor(is); 
       String text = wd.getText(); 
       /* FOR DOCX 
       // IMPORT 
       import org.apache.poi.openxml4j.exceptions.InvalidFormatException; 
       import org.apache.poi.xwpf.extractor.XWPFWordExtractor; 
       import org.apache.poi.xwpf.usermodel.XWPFDocument; 
       // CODE 
       XWPFDocument hdoc = new XWPFDocument(is); 
       extractor = new XWPFWordExtractor(hdoc); 

       String text = extractor.getText(); 
       */ 
       Document document = new Document(); 
       PdfWriter.getInstance(document, new FileOutputStream(pdfPath + "viewDoc.pdf")); 
       document.open(); 
       document.add(new Paragraph(text)); 
       document.close(); 
       pdfDocPath = pdfPath + "viewDoc.pdf"; 
       System.out.println("Pdf document path is" + pdfDocPath); 
      } 
      catch (FileNotFoundException e1) { 
       System.out.println("File does not exist."); 
      } 
      catch (IOException ioe) { 
       System.out.println("IO Exception"); 
      } 
      catch (DocumentException e) { 
       e.printStackTrace(); 
      } 
     } 
+0

,你能告訴我你的進口,它總是給我一些錯誤,從來沒有讀過任何東西總是停在wordextractor – Csanesz 2014-10-29 14:47:45

+0

我已編輯我的文章,並添加我的導入。 – stacky 2014-10-29 15:55:18