2012-11-14 3 views

답변

4

예를 들어, "ABC"라는 색과 같은 일부 별색을 사용하는 기존 PDF가 있고 해당 PDF를 조작하여 이름이 "XYZ"가되도록하고 싶습니다.

가능하지만 저수준 PDF 구문 조작이 필요합니다.

PdfReader 인스턴스를 만들고 별색을 정의하는 사전을 찾고 이름을 변경 한 다음 변경된 PdfReader 인스턴스를 기반으로 새 파일을 만들려면 PdfStamper를 사용해야합니다.

특정 질문에 답변하는 방법에 대한 기성품 예제가 없습니다. (다른 사람은 의심 스럽지만 iText의 원래 개발자가이 질문에 답할 것입니다.) 코드를 보면 영감을 얻을 수 있습니다 "액션이 iText"번째 판 13 장으로부터 샘플이 예에서 http://itextpdf.com/examples/iia.php?id=239 URL이 원리는 상술 사용하여 다른 하나에 의해 대체된다

http://itextpdf.com/book/chapter.php?id=13는 예를 들면이 예에서 manipulatePdf() 방법 참조.

별색 이름이 저장되는 장소의 경로를 찾고 해당 이름을 변경하고 변경 사항을 유지하도록이 예제를 수정해야합니다.

힌트 : 스폿 컬러 이름은 첫 번째 요소가 이름 (/ 분리) 인 배열에 있고, 두 번째 항목은 변경할 이름이됩니다 (이것은 대체하려는 이름입니다). 새로운 PdfName 인스턴스), 등등.

어떻게이/분리 배열을 찾을 수 있습니까? 나는 페이지 위로 반복 할 것이고 (getPageN() 메소드는 페이지 사전을 줄 것이다) 모든 페이지의 자원을 얻고 (pageDict.getAsDict(PdfName.RESOURCES)),/Colorspace 사전의 존재를 찾은 다음 그 사전에있는 모든/Separation 색을 찾는다. 변경할 이름이있을 때마다 두 번째 요소를 대체하십시오.

13 장의 예는 ISO-32000-1 (Adobe.com 사이트에서 다운로드 할 수 있음)과 함께 사용하면 길을 선도합니다.

관련 문제