iTextSharp - проверка свойств документа PDF - копирование контента, копирование контента для доступности
Я пытаюсь проверить, имеет ли документ PDF для загрузки следующие свойства документа: "Копирование контента" и "Копирование контента для доступности" разрешено / не разрешено с помощью iTextSharp PDFReader. Есть ли свойство для проверки этой функциональности. Я вставил пример кода, который НЕ возвращает ожидаемый результат.
В поисках решения с помощью iTextSharp
Образец кода:
using (PdfReader r = new PdfReader(@"xxx\yyy.pdf"))
{
if (PdfEncryptor.IsScreenReadersAllowed((int)(r.Permissions)))
{
Console.WriteLine("Content Accessibility Enabled");
}
if (PdfEncryptor.IsCopyAllowed((int)(r.Permissions)))
{
Console.WriteLine("Copy Enabled");
}
if (PdfEncryptor.IsAssemblyAllowed((int)(r.Permissions)))
{
Console.WriteLine("Document Assembly Enabled");
}
}
1 ответ
Permissions
проверяемое вами значение инициализируется только для зашифрованных PDF-файлов. Образец диалога, который вы вставили сюда, с другой стороны, показывает отсутствие защиты, поэтому ваш образец документа не зашифрован. Таким образом Permissions
значение не установлено в какое-либо значимое значение.
Ни одно из ограничений, которые PDF-файл может получить в процессе шифрования, не распространяется на незашифрованные PDF-файлы. Таким образом, вы можете обновить свои тесты до
if (PdfEncryptor.IsScreenReadersAllowed((int)(r.Permissions)) || !r.IsEncrypted())
{
Console.WriteLine("Content Accessibility Enabled");
}
if (PdfEncryptor.IsCopyAllowed((int)(r.Permissions)) || !r.IsEncrypted())
{
Console.WriteLine("Copy Enabled");
}
if (PdfEncryptor.IsAssemblyAllowed((int)(r.Permissions)) || !r.IsEncrypted())
{
Console.WriteLine("Document Assembly Enabled");
}