2016-11-30 2 views
0

Я пытаюсь проверить, будет ли загружен документ PDF, имеет следующие свойства документа: Копирование содержимого & Копирование содержимого для доступности разрешено/запрещено с помощью iTextSharp PDFReader. Есть ли какое-либо свойство для проверки этой функции. Я вставил пример кода, который НЕ возвращает ожидаемый результат.iTextSharp - Проверка свойств документа PDF - Копирование содержимого, Копирование содержимого для доступности

В поисках решения с использованием iTextSharp

PDF Document Properties

Пример кода:

  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"); 
       } 
      } 
+0

опечатка исправлена. – user7121382

ответ

1

Значение Permissions вы проверяете инициализируется только для зашифрованных файлов PDF. Образец диалога, который вы вставили здесь, с другой стороны, показывает No Security, поэтому ваш образец документа не зашифрован. Таким образом, значение 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"); 
} 
+0

спасибо за разъяснение. Есть ли какое-либо свойство, чтобы проверить, разрешено или не разрешено удаление страницы, если в документе PDF нет метода безопасности? – user7121382

+0

@ user7121382 Существуют, по существу, три типа ограничений: *** A ** Те, которые можно установить как часть процесса шифрования; для не зашифрованных PDF-файлов они явно не применяются. ** B ** те, которые могут быть установлены как часть процесса подписания или которые присущи ему; эти ограничения применяются только к разрешенным или запрещенным изменениям в документе. ** C ** Приложения, наложенные программой просмотра PDF. * Как показывает ваш пример, «Извлечение страницы» является примером ** C **: ваш пример не зашифрован и не подписан (иначе вы бы так сказали, 't вы), поэтому остается только ** C ** ... – mkl

+0

@ user7121382 И то, что разрешено в данном зрителе, зависит от самого зрителя. Например. вы открыли документ в Adobe Acrobat Reader. В полной версии Adobe Acrobat, скорее всего, все разрешено. По сути, нужно знать, что «сводка ограничений на документы» на самом деле является «Сбором ограничений для документов, интерпретируемым этим средством просмотра», и что некоторая его информация не может быть получена только из PDF-файла ... – mkl

Смежные вопросы