ITextSharp Merge Pdf Exception - PullRequest
       5

ITextSharp Merge Pdf Exception

0 голосов
/ 20 февраля 2019

Я пытаюсь объединить целую кучу PDF-файлов.Это то, что у меня до сих пор

            using (FileStream stream = new FileStream(OutputDirectory+"/"+ OutputFileName+".pdf", FileMode.Create))
            {
                Document pdfDoc = new Document();
                PdfCopy pdf = new PdfCopy(pdfDoc, stream);
                pdfDoc.Open();
                Console.WriteLine("Merging files count: " + Input.Count);
                int i = 1;
                foreach (var item in Input)
                {
                    Console.WriteLine(i + ". Adding: " + item.FileName);
                    pdf.AddDocument(new PdfReader(item.FileWithPath));
                    i++;
                }
                pdfDoc.Close();
                Console.WriteLine("PDF merge complete.");
            }

Однако, после того, как некоторые PDF-файлы были правильно объединены, я получаю следующее исключение:

iTextSharp.text.exceptions.InvalidPdfException: 'Rebuildне удалось: трейлер не найден .;Исходное сообщение: PDF startxref не найден. '

Он указывает на мой pdf.AddDocument (новая строка PdfReader

Я посмотрел вокруг, и в некоторых комментариях упоминалось, что мой файл поврежден.Тем не менее, я могу без проблем открывать и читать исходные pdf-файлы. Я не уверен, как продолжить сейчас.

1 Ответ

0 голосов
/ 20 февраля 2019

Я осмотрелся и в некоторых комментариях упоминалось, что мой файл поврежден.

Скорее всего, найденная вами информация верна, файл, который вы пытаетесь прочитать, вероятно, поврежден.

Однако я могу открыть и прочитать исходный кодPDF-файлы без каких-либо проблем.

Просмотрщики PDF часто пытаются исправить некоторую степень коррупции под капотом.Поскольку человек, просматривающий PDF-файл, обычно может быстро распознать, успешно ли выполнено восстановление, или остались только некоторые страницы, заполненные мусором, это нормально, т. Е. Меньше ошибок и больше возможностей.

Библиотеки, которые автоматически обрабатывают PDF-файлы,с другой стороны, не следует пытаться это делать (по крайней мере, не так часто, как это делают зрители), поскольку их результаты могут напрямую попадать в какой-либо архив, который никогда не будет проверяться до аудита, проведенного несколько лет спустя.Документ, полный мусора, тогда вызовет много проблем.

Я не уверен, как продолжить сейчас.

Попробуйте восстановить рассматриваемый PDF-файл.

Если вы откроете его в текущем Adobe Acrobat Reader, программа обычно после закрытия документа спросит, хотите ли вы сохранить документ.Это фактически сохранит отремонтированную версию, которую iText, скорее всего, примет без дальнейших церемоний.

Если это не сработает, т. Е. Если Adobe Acrobat Reader не предлагает безопасную отремонтированную версию или iText даже не принимаетотремонтированные версии, пожалуйста, поделитесь этим вопросом в PDF для дальнейшего анализа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...