Java 使用iText将word文档转换为pdf时出错
下面是我用来将word文档转换为pdf的代码。编译代码后,将生成PDF文件。但该文件包含一些垃圾字符以及word文档内容。请帮助我知道我应该做什么修改来摆脱垃圾字符。 我使用的代码是:Java 使用iText将word文档转换为pdf时出错,java,pdf,itext,Java,Pdf,Itext,下面是我用来将word文档转换为pdf的代码。编译代码后,将生成PDF文件。但该文件包含一些垃圾字符以及word文档内容。请帮助我知道我应该做什么修改来摆脱垃圾字符。 我使用的代码是: import com.lowagie.text.Document; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; import java.io.File; import java.io.FileOutpu
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 PdfConverter
{
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();
System.out.println("PDF has been generted");
}
catch (Exception exception)
{
System.out.println("Document Exception!" + exception);
}
}
public static void main(String args[])
{
PdfConverter pdfConversion = new PdfConverter();
pdfConversion.createPdf("C:/test.doc", "C:/test.pdf");//, true);
}
}
谢谢你的帮助。只是因为你把你的类命名为PdfConverter,而你没有。你所要做的就是把二进制内容读成字符串,然后把它写成一个段落(这就是你看到的)。这种方法肯定不会成功。有关类似问题,请参见
如果您只对word文档的内容感兴趣,那么您可能希望尝试在更高的抽象级别上阅读文档,而不是在二进制级别上阅读文档。如果Word文档的结构简单(我指的是非常简单),您可能会得到合理的结果。要做到这一点,您必须正确读取文档文件,然后使用读取的数据创建PDF文件 您现在正在做的是从doc文件中读取数据,因为您没有使用正确的API读取数据,所以该文件具有垃圾值,然后将获得的垃圾数据存储在PDF文件中。这就是问题所在