Java 将Graphics2D嵌入itext,无需绝对定位

Java 将Graphics2D嵌入itext,无需绝对定位,java,pdf,itext,graphics2d,Java,Pdf,Itext,Graphics2d,我正在用iText(LGPL)创建PDF,其中包括一些文本和自绘(Graphics2D)图像 我目前的解决方案是在BuffereImage上绘制图像,然后将其包含在PDF中,这有几个缺点: 如果打印出来,图像看起来很难看,一种避免这种情况的方法是使用更大的图像,使用3000*3000看起来就可以了。但这导致了下一个问题:时间。压缩一个图像需要几秒钟的时间(我还没有找到禁用它的方法,如果不压缩,文件会很大) iText中的PdfGraphics2d看起来不错,但有一个主要缺点:它只能绘制PDF的背

我正在用iText(LGPL)创建PDF,其中包括一些文本和自绘(Graphics2D)图像

我目前的解决方案是在BuffereImage上绘制图像,然后将其包含在PDF中,这有几个缺点:
如果打印出来,图像看起来很难看,一种避免这种情况的方法是使用更大的图像,使用3000*3000看起来就可以了。但这导致了下一个问题:时间。压缩一个图像需要几秒钟的时间(我还没有找到禁用它的方法,如果不压缩,文件会很大)

iText中的PdfGraphics2d看起来不错,但有一个主要缺点:它只能绘制PDF的背景,而且似乎无法将其封装在某种元素中


有没有一种方法可以在不使用绝对位置的情况下绘制PDF?我之所以使用Graphics2d,是因为它还用于在UI中提供预览。

您可以将
PdfTemplate
包装在
图像
对象中,而不会损失任何矢量图像的质量。在大多数情况下,您将使用
图像
对象将光栅图像作为图像XObject添加到PDF文档中。但是,在这种情况下,
PdfTemplate
将使用其原始向量数据添加为表单XObject。发生这种情况的另一种情况是添加WMF文件;例如,文件会自动转换为PDF语法。

发布您尝试的代码。具体是哪个?所有的例子都只涉及绝对定位,我还没有找到一种在元素上绘制的方法(例如,我假设PdfTemplate正是我所需要的,但它没有扩展元素)。我认为这是不可能的,我只是想确定一下。正如文档中所解释的,您可以将
PdfTemplate
包装在
图像
对象中,而不会丢失矢量图像的任何质量。另外:请升级!您正在使用一个版本的iText,您不应该再使用它,原因如下:@BrunoLowagie Works。谢谢如果你把它作为答案贴出来,我会接受的。