JAVA阅读示例doc文件,填充数据并生成PDF

时间:2014-10-29 13:48:32

标签: java 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){}
  }
}

但是这种尝试在很多方面都很糟糕,因为我只需要编写一些部分,而且这种方法可以从doc进行单一测试。

那么你能告诉我一些写在单词doc中的api,例如:after Name :in the 5 row write this: 当它结束时,它应该生成一个pdf并再次执行...

我正在寻找一个解决方案,我发现xssfworkbook有一些额外的功能(生成文档的pdf)。

  

或阅读样本pdf并填写数据并保存到新的pdf。

Thx

1 个答案:

答案 0 :(得分: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();
            }
        }