嗨〜我尝试使用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();