2014-01-20 5 views
1

카탈로그에 사전을 만들고 있습니다.COSDictionary를 업데이트하는 방법은 무엇입니까?

PDDocumentCatalog catalog = template.getDocumentCatalog(); 
COSDictionary dssDictionary=new COSDictionary(); 
dssDictionary.setItem(COSName.getPDFName("Certs"), cosCerts);; 
catalogDictionary.setNeedToBeUpdate(true);  
catalogDictionary.setItem(COSName.getPDFName("DSS"), dssDictionary); 

확인. 모든 것이 작동합니다!

질문 1) 이제 사전을 업데이트해야한다고 가정 해보십시오.

나는이 사전에 다음과 같이 얻을 수 있습니다 :

COSBase dssCosBase = catalogDictionary.getDictionaryObject(COSName.getPDFName("DSS")); 

좋아, 그것은 내 인증서를 conataint. 하지만 여기에 다른 인증서를 어떻게 추가 할 수 있습니까? 그것을 위해 어떤 방법을 사용합니다.

질문 2) 나는 COSBase 개체를 얻을 수 있지만 어떻게 COSDictionary 개체를 얻을 수 있습니까? 내 댓글 답변 만들려면

+0

** Q2 ** * COSBase 객체를 얻을 수 있지만 어떻게 COSDictionary 객체를 얻을 수 있습니까? * -'instanceof'로 확인하고 캐스트합니다. ** Q1 ** *하지만 여기에 다른 인증서를 추가 할 수 있습니까? * - 캐스팅 (Q2에 대한 답변 참조) 후에 ** Certs ** 사전을 가져올 수 있으며 다시 캐스팅 한 후 ... – mkl

+0

작동합니다. 귀하의 질문에 대답을 작성하고 나는 그것을 대답으로 확인합니다 :) – grep

+0

대단히 감사합니다. COSDictionary dssDictionary = (COSDictionary) catalogDictionary.getDictionaryObject (COSName.getPDFName ("DSS")); – grep

답변

2

...

나는 마지막으로 첫 번째 질문에 대한 답변 :

내가 COSBase 개체를 얻을 수 있지만, 어떻게 COSDictionary 개체를 얻을 수 있습니다 2) 질문 ?

는 간단하게는 COSBase 당신이 가지고있다, 또한 instanceof를 사용 COSDictionary의 인스턴스인지 여부를 확인합니다. 인 경우 COSDictionary으로 전송합니다.

질문 1) 어떻게 다른 인증서를 여기에 추가 할 수 있습니까? 캐스팅 후

(위 참조) 당신이 인증서 표시 사전 포함 얻을 수 있고, 다시 캐스팅 후, 당신이 사전에 작업 할 수 있습니다, 예를 들어, 다른 인증서를 추가합니다. 코멘트에 반응에서

, 당신은 당신이 원하는대로 일을 다음과 발견이 확실히 유효 PAdES에 대한 부분 4/PDF 버전 2 문서 보안 저장소를 작동하지만

COSDictionary dssDictionary = (COSDictionary) catalogDictionary.getDictionaryObject(COSName.getPDFName("DSS")); 

을, 일반적으로 당신은해야한다 카탈로그의 DSS이 다른 유형의 손상된 문서가 있다는 것을 알고 있어야합니다. 따라서, 나는 항상 먼저 instanceof으로 확인합니다.

관련 문제