Как решить поврежденный файл PDF, если PDF генерируется из java кода? - PullRequest
0 голосов
/ 11 марта 2020

Я использую java язык для функции создания отчета в формате PDF, но мой отчет от Джаспера. Код 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();
        }
    }
}

Для информации, я уже вставил flu sh в код, но файл все еще поврежден. Любой может помочь мне, я действительно ценю. Спасибо

1 Ответ

0 голосов
/ 13 марта 2020

Причина, по которой вы не можете открыть эти «файлы PDF» в средстве просмотра PDF (по крайней мере, в случае вашего файла примера), заключается в том, что файл отсутствует PDF файл для запуска с, это HTML файл!

Точнее, это TIBCO Jaspersoft: страница ошибки сервера JasperReports , показывающая

Сообщение об ошибке

Произошла ошибка на сервере. Попробуйте еще раз или свяжитесь с администраторами сайта. (UID ошибки: fcefabf1-6158-4549-969 c -25c9ec4f9ba2)

Весьма вероятно, поэтому иногда генерация запланированных отчетов либо не выполняется, либо просто еще не завершена, когда ваш Java код пытается получить отчет.

...