2

我收到 java.lang.UnsupportedOperationException: RectangleReadOnly: this Rectangle is read only。当我尝试创建一个 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);
4

1 回答 1

0

当你这样做

Rectangle pg = PageSize.getRectangle("LETTER");

根据在 GitHub 上的搜索,RectangleReadOnly它返回对由 class 对象static final Rectangle实现预定义的引用RectangleReadOnly。这是一种Rectangle强制其自身不变性的特化,因此您无法修改您可以要求的“常量”命名矩形。

试试吧

Rectangle pg = new Rectangle(PageSize.getRectangle("LETTER"));

Rectangle改为创建不可变对象的可变克隆。

可以说这是库中的一个错误。它应该为你做对象克隆。

于 2017-03-23T05:57:23.750 回答