iText-java.lang.RuntimeException:不平衡的保存/还原状态运算符

iText-java.lang.RuntimeException:不平衡的保存/还原状态运算符,itext,Itext,当我在使用Graphics2对象(从iText的cb.createGraphics(…)获取)绘制过程中多次尝试使用setClip(…)时,我收到错误消息“java.lang.RuntimeException:不平衡的保存/还原状态运算符”” 其他信息: 单线程应用程序 调用setClip()10次后出错 始终一对setClip(路径)和setClip(空) 发生在版本2.1.4中;对于版本2.1.7,错误甚至出现得更早 没有setClip(…)时,一切都按预期绘制,没有错误 有人知道这个问

当我在使用Graphics2对象(从iText的cb.createGraphics(…)获取)绘制过程中多次尝试使用setClip(…)时,我收到错误消息“java.lang.RuntimeException:不平衡的保存/还原状态运算符”

其他信息:

  • 单线程应用程序
  • 调用setClip()10次后出错
  • 始终一对setClip(路径)和setClip(空)
  • 发生在版本2.1.4中;对于版本2.1.7,错误甚至出现得更早
  • 没有setClip(…)时,一切都按预期绘制,没有错误
有人知道这个问题的解决方案吗,或者有人对此有所暗示吗? 此错误是否也出现在版本5?(在我购买第5版许可证之前;-)

谢谢大家!

FileOutputStream fos=newfileoutputstream(“c:\\temp\\test.pdf”);
单据=空;
矩形rect=PageSize.A3.rotate();
文件=新文件(rect);
PdfWriter writer=PdfWriter.getInstance(文档,fos);
document.open();
PdfContentByte cb=writer.getDirectContent();
Graphics2D g=cb.createGraphics(rect.getWidth(),rect.getHeight());
int x[]={1010001000,10};
int y[]={10,1010001000};
多边形po=新多边形();

对于(int i=0;i请显示相关代码。为什么不使用iText 5进行测试?当然,您不需要仅测试库的许可证。请注意,不平衡的保存/还原异常通常是由iText之外的错误引起的,因此查看您的代码或an非常重要。感谢您的回答。我终于可以提取产生错误的必要步骤:请参阅上面的代码。异常与最后一行g.setclip(null)一起引发;它不依赖于文件名或数字。在转到下一页之前(
document.newPage()
)您必须处理
g
。在新页面上,您可以获得一个新的
图形2D
。每个页面都是一个单独的画布。谢谢。正如您所说,它可以工作!但我不明白,为什么它可以与任何其他图形命令一起工作-除了setClip()-使用代码片段的方式(只获取图形2D一次)。