2016-11-03 2 views
0

아래는 처음에 직사각형을 설정하는 코드입니다 (이 코드는 작동합니다). 같은 코드를 사용하여 다른 색상으로 설정할 수 있다고 생각했으나 작동하지 않았습니다.iTextSharp에서 PdfContentByte를 사용하여 동일한 사각형의 배경색을 설정 한 후 기존 Rectangle의 배경색을 어떻게 변경합니까?

AcroFields.FieldPosition f = form.GetFieldPositions(key)[0]; 
PdfContentByte pdfContentByte = stamper.GetUnderContent(f.page); 
Rectangle rect = f.position.GetRectangle(f.position.Top, f.position.Bottom); 
BaseColor yellowColor = new BaseColor(System.Drawing.Color.Yellow); 
rect.BackgroundColor = yellowColor; 
pdfContentByte.Rectangle(rect); 
+2

해당 코드의 코드 사용자 'stamper.GetUnderContent'. 따라서 두 번째로 사각형을 추가 할 때 기존 사각형 아래에 사각형을 추가합니다. 따라서 두 번째 사각형은 첫 번째 사각형에 의해 숨겨집니다. – mkl

답변

0

다른 것들을 혼합하고 있습니다.

필드의 위젯 주석의 배경색을 으로 변경하고 싶습니다. 이는 합법적 인 요구 사항입니다. 놀랍게도, 그것은 당신이 당신의 코드에서하는 것이 아닙니다.

  • 페이지 내용이 언급 된 PDF 구문의 (a)는 스트림 (들)로 구성 코드에서는 stamper.GetUnderContent(f.page);

    주석 및 페이지 내용이 완전히 분리 된 것들 사용하여 페이지의 내용을 변경 /Contents 페이지 사전에 입력하십시오.

  • 주석은이 내용 위에 렌더링되는 객체입니다. 주석 사전은 페이지 사전의 /Annots 항목에서 참조됩니다.

위젯 주석의 배경색을 변경하고 페이지 내용에 직사각형을 그리지 않아야합니다. 형태 form의 필드 key의 배경 변경은 다음과 같이 수행됩니다

form.SetFieldProperty(key, "bgcolor", BaseColor.YELLOW, null); 

아직 다른 색상, 그냥 같은 라인을 사용하여 해당 색상을 변경하려면

하지만 다른 색상 매개 변수.

관련 문제