У вас может быть много файлов PDF на вашем диске или в базе данных; чтобы автоматизировать или обработать файлы PDF, вам необходимо найти все поврежденные файлы и предпринять необходимые действия. Но кому-то утомительно открывать каждый файл с помощью PDF-ридера, чтобы проверить, поврежден он или нет.

Чтобы сэкономить силы и время, Syncfusion PDF Library предоставляет вам поддержку для выявления поврежденных файлов PDF с использованием C # или VB.NET путем проверки синтаксиса формата PDF из бета-версии 3 тома 2019.

Давайте подробно рассмотрим, как найти поврежденные файлы PDF:

  • Класс PdfDocumentAnalyzer можно использовать для поиска поврежденных файлов PDF путем анализа структуры и синтаксиса документа PDF.
  • Метод AnalyzeSyntax () класса PdfDocumentAnalyzer инициирует анализ структуры и синтаксиса документа PDF и вернет результат (экземпляр SyntaxAnalyzerResult ).
  • Свойство IsCorrupted объекта SyntaxAnalyzerResult используется для определения того, поврежден ли обработанный файл PDF.

Используя эти API, вы можете убедиться, что документ PDF не поврежден, и начать его обработку.

Например:

  • Чтобы избежать загрузки поврежденных отчетов в формате PDF или резюме в ваши веб-приложения.
  • Чтобы избежать неожиданного поведения или зависания приложения при программном вызове PDF-печати.

В следующем примере кода C # проверяется, поврежден ли данный PDF-файл.

static void Main(string[] args)
{
//Load the PDF file as stream.
using (FileStream pdfStream = new FileStream(“inputFile.pdf", FileMode.Open, FileAccess.Read))
{
//Create a new instance of PDF document syntax analyzer.
PdfDocumentAnalyzer analyzer = new PdfDocumentAnalyzer(pdfStream);
//Analyze the syntax and return the results.
SyntaxAnalyzerResult analyzerResult = analyzer.AnalyzeSyntax();
//Check whether the document is corrupted or not.
if (analyzerResult.IsCorrupted)
{
StringBuilder strBuilder = new StringBuilder();
strBuilder.AppendLine("The PDF document is corrupted.");
int count = 1;
foreach (PdfException exception in analyzerResult.Errors)
{
strBuilder.AppendLine(count++.ToString() + ": " + exception.Message);
}
Console.WriteLine(strBuilder);
}
else
{
Console.WriteLine("No syntax error found in the provided PDF document");
}
analyzer.Close();
}
}

Открыть и восстановить PDF-файл

Библиотека Syncfusion PDF может исправить основные проблемы смещения перекрестных ссылок в файлах PDF и открыть их для дальнейшей обработки. Это делается с помощью перегрузок конструкторов PdfLoadedDocument с параметрами openAndRepair.

В следующем примере кода будут устранены основные проблемы смещения перекрестных ссылок и открыт документ PDF.

static void Main(string[] args)
{
using (FileStream pdfStream = new FileStream(@"input.pdf", FileMode.Open, FileAccess.Read))
{
//load the corrupted document by setting the openAndRepair flag to true to repair the document.
PdfLoadedDocument loadedPdfDocument = new PdfLoadedDocument(pdfStream, true);
//Do PDF processing.
//Save the document.
using (FileStream outputStream = new FileStream(@"result.pdf", FileMode.Create))
{
loadedPdfDocument.Save(outputStream);
}
//Close the document.
loadedPdfDocument.Close(true);
}
}

Примечание. Он не может исправить сложные повреждения документа.

Вы можете использовать эти API-интерфейсы для проверки и восстановления PDF-файлов в приложениях .NET Framework, .NET Core, UWP и Xamarin.

Образец GitHub

Вы можете загрузить образцы, чтобы проверить наличие поврежденных файлов PDF и восстановить файл PDF из этого места.

Заключение

Как видите, Syncfusion PDF Library предоставляет API для определения того, поврежден ли файл PDF, путем анализа его структуры и синтаксиса. Он также предоставляет API-интерфейсы для исправления основных искажений на уровне смещения перекрестных ссылок в файлах PDF. Их можно использовать, чтобы избежать неожиданного поведения при обработке файлов PDF в приложениях .NET.

Если вы новичок в нашей библиотеке PDF, мы настоятельно рекомендуем вам следовать нашему Руководству по началу работы.

Если вы уже являетесь пользователем Syncfusion, вы можете скачать настройку продукта здесь. В противном случае вы можете скачать бесплатную 30-дневную пробную версию здесь.

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

Если вам понравилась эта запись в блоге, мы думаем, что вам также понравятся следующие статьи по теме:

Первоначально опубликовано на https://www.syncfusion.com 1 октября 2019 г.