我正在使用itextsharp生成PDF报告。报告的格式大致如下: 一些文本(段落),后跟一个表格,后跟一个图表,然后是另一个表格。 我使用PdfPTable绘制表格,使用段落编写文本,使用PdfContentByte绘制图形。 问题是,第二个表没有正确定位,即它不是在图形之后绘制的。 我想问题是我正在尝试将更高级别(使用Document对象)与更低级别(使用直接内容)操作相结合。 谁能帮助我找到一个更好的解决方案来解决我的问题?谢谢。
答案 0 :(得分:0)
Paragraph
和PdfPTable
是高级对象。您使用PdfContentByte
执行的操作是低级操作。您正在以错误的方式将高级方法与低级方法混合使用。
您需要创建一个PdfTemplate
对象(请参阅PdfContentByte
中的CreatTemplate方法)并将图形绘制到该PdfTemplate
对象;把它想象成一个小的,可重复使用的长方形帆布。
完成后,您可以将PdfTemplate
包裹在Image
对象中。别担心:它不会被光栅化;它将保持基于矢量的图形对象。拥有该图像后,您可以继续使用Document.Add()
,并且低级操作不会与高级对象重叠。