Java 如何使用iText 7中的Graphics2D函数创建PDF文件?

Java 如何使用iText 7中的Graphics2D函数创建PDF文件?,java,pdf,itext,itext7,Java,Pdf,Itext,Itext7,嗨~我正在尝试使用iText 5将源代码迁移到iText 7,但我遇到了一个问题 使用iText5时,我通过createGraphicsShapes()创建了PdfGraphics2D的实例,然后使用Graphics2D的API绘制对象 但是iText 7不提供createGraphicsShapes(),因此我需要帮助 当然,我发现我可以使用PdfCanvas而不是PdfGraphics2D绘制对象 但如果可能的话,我希望重用使用Graphics2D API的源代码,而不进行修改(因为该代码是

嗨~我正在尝试使用iText 5将源代码迁移到iText 7,但我遇到了一个问题

使用iText5时,我通过createGraphicsShapes()创建了PdfGraphics2D的实例,然后使用Graphics2D的API绘制对象

但是iText 7不提供createGraphicsShapes(),因此我需要帮助

当然,我发现我可以使用PdfCanvas而不是PdfGraphics2D绘制对象

但如果可能的话,我希望重用使用Graphics2D API的源代码,而不进行修改(因为该代码是其他功能中使用的常见代码)

有好的选择吗

AffineTransform t = new AffineTransform();
t.scale(PDF_API_SCALE, PDF_API_SCALE);
t.translate(100, 100);

Rectangle pageRect = writer.getPageSize();
PdfGraphics2D g2d = (PdfGraphics2D)contentByte.createGraphicsShapes(pageRect.getWidth(), pageRect.getHeight());
g2d.transform(t);


// the code that needs to reuse - start
g2d.fillRect(x, y, width, height);
g2d.drawString(str, x, y);
...
// the code that needs to reuse - end

g2d.dispose();

如果你需要一个PDFGrace2D类,你可以考虑OrthPdF:戴维,谢谢你的建议。但是我必须使用ITEXT 7来支持高棉语言。PDFGrICICS2D实现从ITEXT 7中删除,因为以这种方式产生的PDF存在相当大的问题。如果您需要PDFGrace2D类,您可以考虑OrthPdF:戴维,谢谢您的建议。但是我必须使用iText 7来支持高棉语。由于以这种方式生成的PDF存在大量问题,因此从iText 7中删除了PdfGraphics2D实现。