我使用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();
}
}
}
作为信息,我已经将刷新插入到代码中,但文件仍然损坏。 任何人都可以帮助我,我真的很感激。 谢谢
最佳答案
您无法在 PDF 查看器中打开这些“PDF 文件”的原因(至少对于您的示例文件而言)是因为该文件不是 PDF 文件首先,它是一个 HTML 文件!
更确切地说,它是TIBCO Jaspersoft:JasperReports服务器错误页面显示
Error Message
There was an error on the server. Try again or contact site administrators. (Error UID: fcefabf1-6158-4549-969c-25c9ec4f9ba2)
因此,当您的 Java 代码尝试检索报告时,有时计划报告的生成可能会失败或根本尚未完成。
关于java - 如果pdf是从java代码生成的,如何解决损坏的pdf文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60628024/