如果从Java代码生成pdf,如何解决损坏的pdf文件?

问题描述 投票:0回答:1

我正在使用Java语言进行函数生成pdf报告,但是我的报告来自jasper。 Java代码将通过调度程序运行,这是我的pdf报告将由服务器调度程序在清晨自动生成。问题是,我已经生成的一些pdf无法打开。它已损坏。并非所有pdf都面临此问题,只有一个或两个pdf会被破坏。

下面的代码是将生成我的pdf的部分。

public static void saveFileFromUrlWithJavaIO(String fileName, String fileUrl)
        throws MalformedURLException, IOException {
    BufferedInputStream in = null;
    FileOutputStream fout = null;

    try {
        in = new BufferedInputStream(new URL(fileUrl).openStream());
        fout = new FileOutputStream(fileName);

        byte data[] = new byte[1024];
        int count;
        while ((count = in.read(data, 0, 1024)) != -1) {
            fout.write(data, 0, count);

        }
        fout.flush();
        logger.debug("ADD FLUSH");
    }catch(IOException e) {

        logger.debug("For exception: {}", e);
    }catch(Exception e) {
        logger.debug("For exception 123: {}", e);
    }  finally {
        if (in != null) {
            in.close();
        }
        if (fout != null) {
            fout.close();
        }
    }
}

有关信息,我已经在代码中插入了刷新,但是文件仍然损坏。任何人都可以帮助我,我真的很感激。谢谢

java pdf buffer inputstream fileinputstream
1个回答
0
投票

无法在PDF查看器中打开这些“ PDF文件”的原因(至少对于示例文件而言,是因为该文件为no PDF文件,开头为HTML文件!

更确切地说是TIBCO Jaspersoft:JasperReports服务器错误页面显示

错误消息

服务器上出现错误。再试一次或联系站点管理员。 (错误UID:fcefabf1-6158-4549-969c-25c9ec4f9ba2)

因此,当您的Java代码尝试检索报告时,有时很可能无法生成计划的报告,或者只是尚未完成。

© www.soinside.com 2019 - 2024. All rights reserved.