阅读并创建PDF成功但不能打开

时间:2015-03-01 09:20:42

标签: pdf

这是我的代码: 这段代码可以读取并创建一个pdf,但是如果打开这个文件,我会收到消息“这个pdf文档可能无法正确显示。”

URL url;
    try {
        url = new URL("http://localhost/ta/A11.pdf");

        InputStream inputStream = url.openConnection().getInputStream();
        BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
        Writer writer = null;
        String inputLine= null;
        try {
            writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:/update/xampp/htdocs/ta/newpdf.pdf"), "utf-8"));
            while ((inputLine = in.readLine()) != null) {
                writer.write(inputLine);
            }
        } catch (IOException ex) {
          // report
        } finally {
           try {writer.close();} catch (Exception ex) {}
        }
        in.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

如果在notepad ++中打开 C:/update/xampp/htdocs/ta/newpdf.pdf:

%PDF-1.4%����117 0 obj<</Length 2566

C:/update/xampp/htdocs/ta/A11.pdf

%PDF-1.4
%ÿÿÿÿ
117 0 obj
<</Length 2566

1 个答案:

答案 0 :(得分:0)

你这是完全错误的方式。你不能在像PDF这样的东西上使用ReadLine因为PDF不是文本文档,它包含很多其他数据,这些数据会因使用你的方法读取和写入而被破坏。您需要使用二进制方法来读取和写入,例如直接使用BufferedInputStreamBufferedOutputStream而不是围绕它包装读取器或写入器。