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));
创新互联致力于互联网品牌建设与网络营销,包括成都网站设计、成都网站建设、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队10多年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
document.Open();
PdfContentByte content = writer.DirectContent;
PdfTemplate template = content.CreateTemplate(rect.Width, rect.Height);
PdfGState state = null;
template.SaveState();
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();
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();
template.SaveState();
//处理同一组内的元素,设置组的透明度为0.5,这样组内元素重叠的时候是后画的图形覆盖先画的图形,不会应为设置了透明度,让元素重叠的部分颜色加深或者相互影响
state = new PdfGState();
state.FillOpacity = 0.5f;//设置透明度为0.5
template.SetGState(state);
PdfTemplate _template = template.CreateTemplate(rect.Width, rect.Height);
//设置透明为为一个组
PdfTransparencyGroup group = new PdfTransparencyGroup();
group.Isolated = false;//标示是否独立
_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();
_template.SaveState();
_template.SetColorFill(Color.RED);
_template.SetColorStroke(Color.BLUE);
_template.SetLineWidth(3);
_template.Rectangle(350, 150, 100, 100);
_template.FillStroke();
_template.RestoreState();
template.AddTemplate(_template, 0, 0);
template.RestoreState();
content.AddTemplate(template, 1, 0, 0, -1, 0, rect.Height);
document.Close();
文章标题:itextsharp处理一个组与非一个组内的元素
分享路径:http://scgulin.cn/article/gcdoos.html