我收到java.lang.UnsupportedOperationException:RectangleReadOnly:这个Rectangle是只读的。 当我尝试创建一个Rectangle对象然后旋转它时获取异常。 使用的jar文件是-com.lowagie.text-2.1.7.jar
Rectangle pg = PageSize.getRectangle("LETTER");
if (isLandscape) pg = pg.rotate(); (exception coming on this line)
if (!TextOp.isEmpty(pageBGColor)) {
pg.setBackgroundColor(PDFUtil.getColor(pageBGColor));
}
document_ = new Document(pg);
答案 0 :(得分:0)
当你这样做时
Rectangle pg = PageSize.getRectangle("LETTER");
根据a search on GitHub for RectangleReadOnly
,它返回对类static final Rectangle
的对象实现的预定义RectangleReadOnly
的引用。这是Rectangle
的专门化,强制执行自己的不变性,因此您无法修改您可以要求的“常量”命名矩形。
尝试改为
Rectangle pg = new Rectangle(PageSize.getRectangle("LETTER"));
创建一个不可变Rectangle
对象的可变克隆。
可以说这是图书馆中的一个错误。它应该为你做对象克隆。