У меня есть файл в формате PDF, и я хочу проверить, подписан ли он цифровой подписью или нет. используя iTextsharp, код в C#.Как проверить, подписан ли файл PDF или нет, используя iTextsharp в C#?
ответ
Я бы посоветовал взглянуть на официальные примеры.
Они содержат, например, пример «SignatureInfo», который выводит несколько информационных элементов на все подписи, встроенные в PDF; таким образом, они, в частности, определяют, подписан ли файл вообще.
Это вы используете iTextSharp 5.5.x, ваш основной код этого
public void InspectSignatures(String path) {
Console.WriteLine(path);
PdfReader reader = new PdfReader(path);
AcroFields fields = reader.AcroFields;
List<String> names = fields.GetSignatureNames();
SignaturePermissions perms = null;
foreach (String name in names) {
Console.WriteLine("===== " + name + " =====");
perms = InspectSignature(fields, name, perms);
}
Console.WriteLine();
}
(на примере iTextSharp C5_02_SignatureInfo.cs)
Как вы видите, метод AcroFields.GetSignatureNames()
получает вас имена всех подписанных полей подписи. Если этот список не пуст, PDF подписывается.
Если вы используете IText 7 для .Net, ваш основной код заключается в следующем:
public virtual void InspectSignatures(String path)
{
// System.out.println(path);
PdfDocument pdfDoc = new PdfDocument(new PdfReader(path));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, false);
SignaturePermissions perms = null;
SignatureUtil signUtil = new SignatureUtil(pdfDoc);
IList<String> names = signUtil.GetSignatureNames();
foreach (String name in names)
{
System.Console.Out.WriteLine("===== " + name + " =====");
perms = InspectSignature(pdfDoc, signUtil, form, name, perms);
}
System.Console.Out.WriteLine();
}
(от IText 7, например .Net C5_02_SignatureInfo.cs)
Как вы видите , метод SignatureUtil.GetSignatureNames()
получает имена всех подписанных полей подписи. Если этот список не пуст, PDF подписывается.
Кстати, как вы не указали дальше, я предполагаю, что вы имеете в виду регулярные комплексные подписи PDF, в частности, ни обособленных подписей, ни подписей XFA.
Это должно быть отмечено как решение! Это отлично работает для меня. –
Вы (как человек, который спросил) - это тот, кто может это сделать: нажмите галочку в левом верхнем углу ответа. – mkl
- 1. создать файл PDF, используя itextsharp в C#
- 2. Этот файл манифеста подписан или нет?
- 3. Как проверить, защищен ли файл PDF или нет в PHP
- 4. Можно ли проверить, что опубликованный файл является pdf или нет?
- 5. проверить, подписан ли подписчик activemq на тему или нет?
- 6. Проверьте, подписан ли файл
- 7. Как проверить, защищен ли файл Excel, или нет в C#?
- 8. Как проверить, доступен ли xml-файл или нет в C#?
- 9. Сделайте pdf-файл, совместимый с PDF, используя только iTextSharp
- 10. Как проверить, пуст ли файл или нет?
- 11. Как проверить, заблокирован ли файл или нет?
- 12. Опираясь на PDF, используя ITextSharp, не создавая новый PDF-файл
- 13. Как проверить, существует ли файл PDF?
- 14. Как проверить, имеет ли файл контент или нет c?
- 15. Itextsharp создал файл PDF
- 16. Mailjet Как проверить адрес электронной почты подписан или нет
- 17. проверить, является ли файл пустым или нет в c
- 18. Как открыть pdf-файл с помощью itextsharp
- 19. Проверить файл существует или нет в PHP
- 20. Переупорядочить страницы в pdf-файле, используя itextsharp
- 21. Как проверить PDF-файл Reader включен или не используется C#?
- 22. Заполните xml в формате pdf, используя itextsharp в C#
- 23. powershell - проверить, зашифрован ли PDF
- 24. проверить, существует ли файл или нет
- 25. Как добавить PDF в другой файл iTextSharp?
- 26. iTextSharp - Как добавить PDF-файл в PDFPTable?
- 27. Как добавить один pdf-файл в другой файл pdf, используя itextsharp
- 28. iTextsharp PDF Document Properties
- 29. Программно проверить, является ли pdf форматом с iTextSharp
- 30. как повернуть pdf, используя библиотеку itextsharp
Какой код вы используете и какую конкретную проблему у вас с этим? – BACON