提问人:Neil 提问时间:10/31/2023 更新时间:10/31/2023 访问量:33
PDFBox 不保留页面子类
PDFBox not keeping page subclass
问:
这似乎很奇怪。我正在使用 PDFBox 3。我正在尝试使用页面的子类,以便可以向其添加布局功能。
当我将子类的一页添加到文档并尝试取回它时,我得到的是一个 PDPage 实例,而不是我的子类实例。
下面是一个简单的子类:
package pdfBox;
import org.apache.pdfbox.pdmodel.PDPage;
public class MyPage extends PDPage {
}
下面是一段测试代码:
package pdfBox;
import org.apache.pdfbox.pdmodel.PDDocument;
public class PageTest {
public static void main(String[] args) {
PDDocument doc = new PDDocument();
doc.addPage(new MyPage());
MyPage myPage = (MyPage)doc.getPage(0);
}
}
当我尝试投射页面时,我收到此异常:
java.lang.ClassCastException: class org.apache.pdfbox.pdmodel.PDPage cannot be cast to class pdfBox.MyPage
有什么想法为什么 PDFBox 不保留子类吗?
答:
2赞
Tilman Hausherr
10/31/2023
#1
不缓存 PDPage 对象。每次从 COSDictionary 结构中创建一个新的。这是你的目标,所以你自己保留它。
评论