Информация о подписи
Aspose.PDF for Python via .NET предоставляет PdfFileSignature фасад для инспектирования цифровых подписей в PDF‑документах. После подписания документа вы можете использовать его для чтения имён подписей и получения метаданных, таких как имя подписанта, контактная информация, время подписи, причина и место.
Этот пример демонстрирует четыре распространённых задачи по работе с информацией о подписи:
- Перечислите все имена подписей в подписанном PDF.
- Прочитайте детали подписанта для выбранной подписи.
- Получите дату и время подписи.
- Прочитайте причину и место подписи.
Получение имена подписей
Используйте этот метод, когда PDF может содержать одну или несколько подписей, и вы хотите проверить, какие записи подписи доступны. Пример открывает документ и выводит список, возвращённый get_sign_names().
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def get_signature_names(infile):
pdf_signature = create_pdf_file_signature(infile)
try:
signature_names = list_signature_names(pdf_signature)
print(f"Signature Names: {signature_names}")
finally:
pdf_signature.close()
Получение сведения о подписанте
Как только вы узнаете название подписи, вы можете получить метаданные, специфичные для подписанта. В этом примере читаются имя подписанта и контактная информация для первой доступной подписи в документе.
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def get_signer_details(infile):
pdf_signature = create_pdf_file_signature(infile)
try:
sign_name = require_signature_name(pdf_signature)
signer_name = pdf_signature.get_signer_name(sign_name)
contact_info = pdf_signature.get_contact_info(sign_name)
print(
f"Signer Details for '{sign_name}': "
f"signer_name={signer_name}, contact_info={contact_info}"
)
finally:
pdf_signature.close()
Получение дату и время подписи
Используйте get_date_time() чтобы определить, когда была применена конкретная подпись. Это полезно для аудита и отображения истории подписей в рабочих процессах с документами.
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def get_signature_date_and_time(infile):
pdf_signature = create_pdf_file_signature(infile)
try:
sign_name = require_signature_name(pdf_signature)
signature_date = pdf_signature.get_date_time(sign_name)
print(f"Signature Date and Time for '{sign_name}': {signature_date}")
finally:
pdf_signature.close()
Получение причину подписи и местоположение
Цифровые подписи также могут хранить описательные метаданные, такие как причина подписи и место её создания. В этом примере оба значения извлекаются для выбранной подписи и выводятся вместе.
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def get_signature_reason_and_location(infile):
pdf_signature = create_pdf_file_signature(infile)
try:
sign_name = require_signature_name(pdf_signature)
signature_reason = pdf_signature.get_reason(sign_name)
signature_location = pdf_signature.get_location(sign_name)
print(
f"Signature Reason and Location for '{sign_name}': "
f"reason={signature_reason}, location={signature_location}"
)
finally:
pdf_signature.close()