itextsharp處理一個組與非一個組內的元素

string filename = DateTime.Now.ToString("yyyyMMddHHmmss").ToString() + ".pdf";
   float w = PageSize.A4.Width;
   float h = PageSize.A4.Height;
   Rectangle rect = new Rectangle(0, 0, w, h);
   Document document = new Document(rect);
   PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(Server.MapPath(filename), FileMode.Create));ide

   document.Open();
   PdfContentByte content = writer.DirectContent;
   PdfTemplate template = content.CreateTemplate(rect.Width, rect.Height);
   PdfGState state = null;
   template.SaveState();spa

   template.SetColorFill(Color.RED);
   template.SetColorStroke(Color.GREEN);
   template.SetLineWidth(3);
   state = new PdfGState();
   state.FillOpacity = 0.5f;
   state.AlphaIsShape = false;
   template.SetGState(state);
   template.Rectangle(100, 100, 100, 100);
   template.FillStroke();
   template.RestoreState();ci

   template.SaveState();
   template.SetColorFill(Color.RED);
   template.SetColorStroke(Color.BLUE);
   template.SetLineWidth(3);
   state = new PdfGState();
   state.FillOpacity = 0.5f;
   state.AlphaIsShape = false;
   template.SetGState(state);
   template.Rectangle(150, 150, 100, 100);
   template.FillStroke();
   template.RestoreState();string

   template.SaveState();it

//處理同一組內的元素,設置組的透明度爲0.5,這樣組內元素重疊的時候是後畫的圖形覆蓋先畫的圖形,不會應爲設置了透明度,讓元素重疊的部分顏色加深或者相互影響
   state = new PdfGState();
   state.FillOpacity = 0.5f;//設置透明度爲0.5
   template.SetGState(state);
   PdfTemplate _template = template.CreateTemplate(rect.Width, rect.Height);class

//設置透明爲爲一個組
   PdfTransparencyGroup group = new PdfTransparencyGroup();
   group.Isolated = false;//標示是否獨立pdf

   _template.Group = group;
   _template.SaveState();
   _template.SetColorFill(Color.RED);
   _template.SetColorStroke(Color.GREEN);
   _template.SetLineWidth(3);
   _template.Rectangle(300, 100, 100, 100);
   _template.FillStroke();
   _template.RestoreState();file

   _template.SaveState();
   _template.SetColorFill(Color.RED);
   _template.SetColorStroke(Color.BLUE);
   _template.SetLineWidth(3);
   _template.Rectangle(350, 150, 100, 100);
   _template.FillStroke();
   _template.RestoreState();float

   template.AddTemplate(_template, 0, 0);im

   template.RestoreState();   content.AddTemplate(template, 1, 0, 0, -1, 0, rect.Height);   document.Close();

相關文章
相關標籤/搜索