pdfContentByte 类 图像和文本的绝对位置

本文介绍了如何在PDF文档中精确控制布局,包括使用PdfContentByte类进行绘图及利用FormXObjects创建模板以提高效率。

在PDF中当涉及到布局问题时(不再是自动地添加文本、图片等等,对元素在页面上的位置有一定的要求),有时我们希望将一些图像或者文本放置在某页的指定位置,为实现该功能,我们将使用PdfContentByte类。

PdfContent对象可以通过在使用Writer对象中使用getDirectContent()方法来得到该对象。例:

PdfWriter writer= PdfWriter.GetInstance(document, new FileStream("D:\\hellowrold.pdf", FileMode.OpenOrCreate));

PdfContentByte cb=writer.DirectContent;

简单图形的绘制:

我们可以使用诸如moveTo和lineTo方法移动到页面上当前位置然后画一条直线到其他位置。例如

cb.LineWidth=10f;

cb.moveTo(100,700);

cb.lineTo(200,800);

cb.stroke();

 模板(Form xObjects)

在页眉和页脚的解决方案时,我们可以选择定义一小块添加到每一页的信息,实际上,该小块信息写到了文件的每一个新页上。这并不是最经济的解决方案,更好的方法是将该信息作为一个Form Xobject 仅在文档中添加一次,在其可见位置重复出现。

1.创建一个PdfTemplate

2.创建PdfTemplate的最好方法是调用pdfContentByte对象中的createTemplate方法:PdfTemplate template=cb.createTemplate(500,200);

这样,该模板的宽度为500,高度为200。通过该模板我们可以做像PdfContentByte同样的事情

template.moveTo(0,200);

template.lineTo(500,0);

template.stroke();

添加一个文档到模板,通过下面一样在绝对位置添加一个模板

cb.addTemplate(template,0,400);

转载于:https://www.cnblogs.com/xuezhi/archive/2012/11/29/2793917.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值