У вас может быть много файлов 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 г.