[英]Converting word(.docx) to pdf using Apache POI and itext
[英]error in converting word document to pdf using 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.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类命名,你没有。 您所做的只是将二进制内容作为字符串读取并将其写为一个段落(这就是您所看到的)。 这种方法肯定不会成功。 有关类似问题,请参阅https://stackoverflow.com/questions/437394 。
如果您只对word文档的内容感兴趣,那么您可能希望为Apache POI - Microsoft文档的Java API尝试阅读您的文档,而不是在二进制级别,而是在高抽象级别。 如果你的Word文档有一个简单的(我的意思是一个非常简单的)结构,你可能会得到合理的结果。
为此,您必须正确读取doc文件,然后使用读取数据创建PDF文件。
你现在正在做的是你正在读取doc文件中的数据,因为你没有使用适当的API来读取数据,然后将获得的垃圾数据存储在PDF文件中,因此它具有垃圾值。 因此这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.