DOC到PDF转换,为什么FileOutputStream生成损坏的PDF ?



我试过用这段代码将Word文档转换为PDF。

import java.io.*;
class DocToPdf {
public static void main(String[] args) throws FileNotFoundException, IOException {
FileInputStream fis = new FileInputStream("C:/Users/Samudra Ganguly/Desktop/ABC.docx");
FileOutputStream fos = new FileOutputStream("C:/Users/Samudra Ganguly/Desktop/ABC.pdf");
int i;
while ((i = fis.read()) != -1) {
System.out.println(i);
fos.write(i);
fos.flush();
}
fis.close();
fos.close();
}
}

PDF已创建,但无法打开。谁能解释一下问题的原因和解决办法?

  • PDFDOC文件的底层语法完全不同。

  • Doc是word文档的二进制格式,由Microsoft开发。

    这是微软文档规范。

  • PDF是由Adobe开发的。

    这是pdf格式的规范。

它们的架构完全不同。因此,只需从一个doc文件中读取,并尝试将其写入另一个扩展名为.pdf的文件,这将只创建一个损坏的文件。但是如果你保存它的.dox格式或打开它的as doc,那么你可以阅读没有任何问题。

这就是为什么您无法打开已创建(并已损坏)的文件。

最新更新