关于itext:我希望Java代码将word文件(包含文本,图像,表等的doc文件)转换为pdf文件。

I want Java code to convert word file (doc file having text, images, tables etc. ) into pdf file.

我已经添加了所有必需的JAR文件,包括itextpdf-5.1.0.jar,但它仍然会给出错误。请参考以下代码。我在网上查过,但没用。

导入时出错

1
2
3
com.lowagie.text.Document;
com.lowagie.text.Paragraph;
com.lowagie.text.pdf.PdfWriter;

不明白怎么回事。我添加了最新版本的iText jar文件,但没有得到解决方案。

请给我正确的解决方案或代码。请逐步提及。因为我第一次这么做…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    import com.lowagie.text.Document;  
    import com.lowagie.text.Paragraph;    
    import com.lowagie.text.pdf.PdfWriter;    
    import java.io.File;
    import java.io.FileOutputStream;    
    public class Doc2Pdf2 {    
        /**
         * This method is used to convert the given file to a PDF format
         *
         * @param inputFile
         *            - Name and the path of the file
         * @param outputFile
         *            - Name and the path where the PDF file to be saved
         * @param isPictureFile
         */

        private void createPdf(String inputFile, String outputFile,
                boolean isPictureFile) {
            Document pdfDocument = new Document();
            String pdfFilePath = outputFile;
            try {
                FileOutputStream fileOutputStream = new FileOutputStream(
                        pdfFilePath);
                PdfWriter writer = null;
                writer = PdfWriter.getInstance(pdfDocument, fileOutputStream);
                writer.open();
                pdfDocument.open();    
                if (isPictureFile) {                    pdfDocument.add(com.lowagie.text.Image.getInstance(inputFile));
                } else {
                    File file = new File(inputFile);
                    pdfDocument.add(new Paragraph(org.apache.commons.io.FileUtils
                            .readFileToString(file)));
                }
                pdfDocument.close();
                writer.close();
            } catch (Exception exception) {
                System.out.println("Document Exception!" + exception);
            }
        }    
        public static void main(String args[]) {
            PDFConversion pdfConversion = new PDFConversion();
            pdfConversion.createPdf("C:/demo.doc","C:/demopdf.pdf", true);    
        }    
    }


您使用的是高于5的IText版本(带有包com.itextpdf),但是您正在从包com.lowagie导入类(是的,这是我的名字;我是IText的原始作者),这些类只存在于IText 5之前的IText版本中。因此,没有找到正在使用的类是正常的。你应该用com.itextpdf替换com.lowagie

顺便说一句:你的问题标题与问题不匹配,因为iText不将Word文档转换为PDF格式。


您可以学习如何将数据写入PDF的教程。

生成PDF

创建PDF

创建PDF示例Hello程序

阅读文档文件最好是Apache Tika:

使用Java中的Apache TIKA查看文档文件:

我正在阅读文档文件中的内容并将其写入文本文件,但学习后,您可以将数据写入PDF。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public class Tikaconvrt {

    public static void main(String [] args) throws IOException, SAXException, TikaException
    {
        Tikaconvrt tc=new Tikaconvrt();


        File Re_F = new File("/home/rahul/Documents/212/ANIR.docx");

        String F_Name=Re_F.getName();
        int eof=F_Name.lastIndexOf('.');
        F_Name=F_Name.substring(0, eof);

        String s1 = tc.contentEx(Re_F);
        tc.files(s1, F_Name);
        }


    public String contentEx(File f) throws IOException, SAXException,
            TikaException {

        InputStream is = new FileInputStream(f);

        Parser ps = new AutoDetectParser();

        BodyContentHandler bch = new BodyContentHandler();
        Metadata metadata = new Metadata();
        ps.parse(is, bch, metadata, new ParseContext());

        return bch.toString();
    }

    public void files(String st,String fname) throws IOException {
        FileWriter fw = new FileWriter("/home/rahul/Documents/txt/"+fname+".txt",
                true);
        BufferedWriter bufferWritter = new BufferedWriter(fw);
        bufferWritter.write(st +"
"
);
        bufferWritter.close();
    }

}


您需要在Java构建路径中添加最新的JAR。检查您的项目构建路径并确保jar存在于其中。做一个干净的构建和发布,它应该工作。如果没有,那么您甚至可以尝试直接将JAR粘贴到项目部署位置(lib文件夹)。