2014-11-22 2 views
1

누구나 iTextSharp를 사용하여 불규칙한 모양의 클릭 가능한 주석을 만들 수 있습니다.ITextShape 클릭 가능한 다각형 또는 경로

이 나는 ​​그래픽 경로 말에, 나는이 대답 Draw a GraphicsPath in a PDF을 본 것을 할 수있는 방법을이

float x1 = 100, x2 = 200, y1 = 150, y2 = 200; 

    iTextSharp.text.Rectangle r = new iTextSharp.text.Rectangle(x1, y1, x2, y2); 
    PdfName pfn = new PdfName(lnk.LinkID.ToString()); 
    PdfAction ac = new PdfAction(lnk.linkUrl, false); 
    PdfAnnotation anno = PdfAnnotation.CreateLink(stamper.Writer, r, pfn, ac); 

    int page = 1; 
    stamper.AddAnnotation(anno, page); 

같은 직사각형을 만들 수 있습니다 알고 있지만, 그냥 클릭 할 수없는 모양을 그립니다.

답변

2

당신은 내가 당신에게 AddPolygonLink 예를 나타내는 사용하는 방법 QuadPoints 설명 허용 QuadPoints ;-)

라고 찾고있는 비밀 재료.

님 이미 예를 들어, 구성 및 경로를 그리는 방법을 발견했습니다 : 나는 우리가 클릭을 할 수 있습니다 불규칙한 형태를 보여에만이 코드를 사용하고

canvas.moveTo(36, 700); 
canvas.lineTo(72, 760); 
canvas.lineTo(144, 720); 
canvas.lineTo(72, 730); 
canvas.closePathStroke(); 

.

당신은 이미 직사각형 모양으로 클릭 할 수있는 링크를 생성하는 방법을 알고 :

Rectangle linkLocation = new Rectangle(36, 700, 144, 760); 
PdfDestination destination = new PdfDestination(PdfDestination.FIT); 
PdfAnnotation link = PdfAnnotation.createLink(stamper.getWriter(), 
    linkLocation, PdfAnnotation.HIGHLIGHT_INVERT, 
    1, destination); 

이 코드에 해당이 이미 귀하의 질문에 제공 니펫. 이제

의 일부 QuadPoints 소개하자 : ISO-32000-1에 따르면

PdfArray array = new PdfArray(new int[]{72, 730, 144, 720, 72, 760, 36, 700}); 
link.put(PdfName.QUADPOINTS, array); 

을 QuadPoints은 다음과 같습니다

기본에 n 개의 사각형 의 좌표를 지정하는 8 × n 개의 숫자의 배열 사용자 공간은 링크가 활성화되어야하는 영역을 포함한다. 각 사각형의 좌표는 반대 순서 사변형의 네 꼭지점들을 지정 순서

x1 y1 x2 y2 x3 y3 x4 y4 

에 주어진다. 밑줄 테두리 스타일을 적용 할 때와 같이 방향을 지정하는 경우 사각형의 밑면은 (x1, y1)(x2, y2)으로 구성된 선이됩니다.

이 항목이 없거나 해당 판독기가 인식하지 못하는 경우 Rect 항목으로 지정된 영역을 사용해야합니다. QuadPoints 배열의 좌표가 Rect으로 지정된 영역 밖에있는 경우 무시됩니다.

linkLocation 매개 변수는 불규칙한 모양이 그 사각형 내부에 맞도록 정의되었습니다.

경고 :이 예를 테스트하여이 기능을 시도 할 수 있습니다 :이 Adobe Reader에서 파일을 볼 때 작동하는 동안 것을 link_polygon.pdf을하지만, 인식, 이것은 QuadPoints를 구현하지 않은 열등 PDF 뷰어 작동하지 않을 수 있습니다 기능.

+0

감사합니다. 내게 걸림돌이 무엇인지 알지 못합니다. – Ksliman