Java 文档到PDF转换,为什么FileOutputStream生成损坏的PDF?

Java 文档到PDF转换,为什么FileOutputStream生成损坏的PDF?,java,file,fileoutputstream,Java,File,Fileoutputstream,我尝试过将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");

我尝试过将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已创建,但无法打开。有人能解释问题的原因和解决方法吗?

  • PDF
    DOC
    文件的基本语法完全不同

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

    这是我的建议

  • PDF是由Adobe开发的

    这是我的建议

他们的架构完全不同。因此,只需从一个
doc
文件中读取,然后尝试将其写入另一个扩展名为
.pdf
的文件,这样只会创建一个损坏的文件。但是,如果您使用
.dox
格式保存它,或者将它作为doc打开,那么您可以毫无疑问地阅读它


这就是您无法打开已创建(且已损坏)文件的原因。

那么,有没有任何方法可以使用输入和输出流对其进行转换?逻辑上是可能的。如果您将文档语法映射为相同的pdf语法,然后开始转换,那么这将是可能的。