Java:使用Apache POI如何将MS Word文件转换为PDF?

通过使用apache POI如何将ms word文件转换为pdf

我正在使用以下代码,但无法正常工作,提示错误,我想我导入了错误的类?

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.OutputStream;

import org.apache.poi.hslf.record.Document;

import org.apache.poi.hwpf.HWPFDocument;

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

import org.apache.poi.hwpf.usermodel.Paragraph;

import org.apache.poi.hwpf.usermodel.Range;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class TestCon {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

POIFSFileSystem fs = null;

Document document = new Document();

try {

System.out.println("Starting the test");

fs = new POIFSFileSystem(new FileInputStream("/document/test2.doc"));

HWPFDocument doc = new HWPFDocument(fs);

WordExtractor we = new WordExtractor(doc);

OutputStream file = new FileOutputStream(new File("/document/test.pdf"));

PdfWriter writer = PdfWriter.getInstance(document, file);

Range range = doc.getRange();

document.open();

writer.setPageEmpty(true);

document.newPage();

writer.setPageEmpty(true);

String[] paragraphs = we.getParagraphText();

for (int i = 0; i < paragraphs.length; i++) {

org.apache.poi.hwpf.usermodel.Paragraph pr = range.getParagraph(i);

// CharacterRun run = pr.getCharacterRun(i);

// run.setBold(true);

// run.setCapitalized(true);

// run.setItalic(true);

paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n", "");

System.out.println("Length:" + paragraphs[i].length());

System.out.println("Paragraph" + i + ": " + paragraphs[i].toString());

// add the paragraph to the document

document.add(new Paragraph(paragraphs[i]));

}

System.out.println("Document testing completed");

} catch (Exception e) {

System.out.println("Exception during test");

e.printStackTrace();

} finally {

// close the document

document.close();

}

}

}

回答:

得到了解决

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.OutputStream;

import com.lowagie.text.Document;

import com.lowagie.text.DocumentException;

import com.lowagie.text.Paragraph;

import com.lowagie.text.pdf.PdfWriter;

import org.apache.poi.hwpf.HWPFDocument;

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

import org.apache.poi.hwpf.usermodel.Range;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class TestCon {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

POIFSFileSystem fs = null;

Document document = new Document();

try {

System.out.println("Starting the test");

fs = new POIFSFileSystem(new FileInputStream("D:/Resume.doc"));

HWPFDocument doc = new HWPFDocument(fs);

WordExtractor we = new WordExtractor(doc);

OutputStream file = new FileOutputStream(new File("D:/test.pdf"));

PdfWriter writer = PdfWriter.getInstance(document, file);

Range range = doc.getRange();

document.open();

writer.setPageEmpty(true);

document.newPage();

writer.setPageEmpty(true);

String[] paragraphs = we.getParagraphText();

for (int i = 0; i < paragraphs.length; i++) {

org.apache.poi.hwpf.usermodel.Paragraph pr = range.getParagraph(i);

// CharacterRun run = pr.getCharacterRun(i);

// run.setBold(true);

// run.setCapitalized(true);

// run.setItalic(true);

paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n", "");

System.out.println("Length:" + paragraphs[i].length());

System.out.println("Paragraph" + i + ": " + paragraphs[i].toString());

// add the paragraph to the document

document.add(new Paragraph(paragraphs[i]));

}

System.out.println("Document testing completed");

} catch (Exception e) {

System.out.println("Exception during test");

e.printStackTrace();

} finally {

// close the document

document.close();

}

}

}

以上是 Java:使用Apache POI如何将MS Word文件转换为PDF? 的全部内容, 来源链接: utcz.com/qa/436343.html

回到顶部