iTextSharp (4.1.6.0)의 사용되지 않는 버전을 사용하여 내 MVC3 응용 프로그램에서 PDF를 생성하고 실제로 다른 객체 위에 반투명 도형을 배치 할 수 있어야합니다. 모양 및 이미지, 목표는 이미지 아래의 이미지 색상을 희미하게하거나 회색으로 표시합니다. 나는이 모양이 채우기의 색상을 선택하는 알파 채널을 설정하는 것처럼 간단 할 것이라고 생각, 그래서 나는이 시도했을 :iTextSharp에서 반투명 채우기 도형 그리기 4.1.6.0
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"C:/Filepath/doc.pdf", FileMode.Create))
doc.Open();
PdfContentByte over = writer.DirectContent;
// draw shape to be faded out
over.Rectangle(10, 10, 50, 50);
over.SetColorFill(Color.BLUE);
over.Fill();
// draw shape over the top to do the fading (red so i can easily see where it is)
over.Rectangle(0, 0, 60, 60);
over.SetColorFill(new Color(255,0,0,150)); // rgba
over.Fill();
doc.Close();
내가이 페이지의 왼쪽 하단 근처에 두 개의 사각형을 그릴 기대를 작은 파란색 하나는 더 큰 빨간색, 반투명 한 것으로 겹쳐 지지만 빨간색은 반투명이 아닙니다.
그래서 나는 약간의 인터넷 검색을했고, 그들이이 같은 채우기 불투명도 설정 PdfGstate
을 사용하는 것이 좋습니다 iText를하지 iTextSharp에 대해 실제로이 page 발견 :
PdfGState gstate = new PdfGState();
gstate.setFillOpacity(0.3);
을하지만을 나는 gstate
개체가 있음을하려고 할 때 .setFillOpacity()
과 같은 방법이 없습니다! 누구든지 올바른 방향으로 나를 가리킬 수 있다면 가장 감사 할 것입니다.
아 내가 볼
gstate.FillOpacity = 0.3f;
올 것입니다. 오류가 발생하지는 않지만 투명성을 초래하지는 않습니다. 나는 adobe reader 11과 windows 8의 pdf reader에서 같은 결과를 보여주고 있습니다. – Ben나는 PdfGState를 적용하기위한 답을 수정했다. 그것은 나를 위해 작동하고 빨간색 사각형은 이제 투명합니다. – VahidN
우수! 그게 완벽하게 감사합니다. 그러나 알파 값 설정은 아무런 차이가 없으며 투명도 수준은 FillOpacity에 전적으로 달려 있습니다. – Ben