2013-12-02 3 views
0

Мне нужно получить количество подписанных полей в pdf-документе. Сейчас я делаю это так:Считайте количество подписанных полей подписи

ServletContext app = getServletContext(); 
String path = app.getRealPath("/CompesationReportsPdfDocuments/mySignedPdf.pdf"); 
File thePdf = new File(path); 
int numberOfSignedFields=0; 
PdfReader reader = new PdfReader(path); 
AcroFields fields = reader .getAcroFields(); 
numberOfSignedFields=fields.getSignatureNames().size(); 
reader .close(); 

И когда я

System.out.printline("Number of signed fields :"+numberOfSignedFields); 

я

Number of signed fields :0 
+1

'fields.getSignatureNames(). Size()' должен делать все правильно. Поскольку это не сработает, можете ли вы предоставить образец документа для воспроизведения проблемы? (Кстати, мы говорим о подписях с цифровыми подписями, не так ли? И не эта простая наброска на какой-то сенсорной панели хранится как какая-то графическая ...) – mkl

+0

Да, мы делаем, это делает работу! Но теперь случается так, что когда я загружаю ранее загруженный и подписанный pdf, он показывается как недопустимый для adobe reader, хотя на локальном сервере он нормально работает - он открывается нормально, где-то в процессе загрузки в моем сервлете, я делаю ошибку, я опубликовал новый вопрос по этому вопросу ... –

ответ

0

Попробуйте это. Надеюсь, это вам поможет:

com.lowagie.text.pdf.PdfReader reader = new com.lowagie.text.pdf.PdfReader("MYPDF.pdf"); 

int position = reader.getAcroFields().getSignatureNames().size(); 
+0

Это по существу * есть * то, что сделал сам. – mkl

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