如何使用itextsharp在一个页面上组合图形和文本(段落,表格)?

时间:2013-06-12 14:16:35

标签: itextsharp

我正在使用itextsharp生成PDF报告。报告的格式大致如下: 一些文本(段落),后跟一个表格,后跟一个图表,然后是另一个表格。 我使用PdfPTable绘制表格,使用段落编写文本,使用PdfContentByte绘制图形。 问题是,第二个表没有正确定位,即它不是在图形之后绘制的。 我想问题是我正在尝试将更高级别(使用Document对象)与更低级别(使用直接内容)操作相结合。 谁能帮助我找到一个更好的解决方案来解决我的问题?谢谢。

1 个答案:

答案 0 :(得分:0)

ParagraphPdfPTable是高级对象。您使用PdfContentByte执行的操作是低级操作。您正在以错误的方式将高级方法与低级方法混合使用。

您需要创建一个PdfTemplate对象(请参阅PdfContentByte中的CreatTemplate方法)并将图形绘制到该PdfTemplate对象;把它想象成一个小的,可重复使用的长方形帆布。

完成后,您可以将PdfTemplate包裹在Image对象中。别担心:它不会被光栅化;它将保持基于矢量的图形对象。拥有该图像后,您可以继续使用Document.Add(),并且低级操作不会与高级对象重叠。