我正在尝试使用iText Stamper更改PDF文件,以便它始终以全页显示方式打开。我试过了,
PdfStamper stamper = new PdfStamper(new PdfReader(src), new FileOutputStream(dest));
PdfWriter writer = stamper.getWriter();
PdfAction action = PdfAction.gotoLocalPage(1, new PdfDestination(PdfDestination.FIT), writer);
writer.setAdditionalAction(PdfWriter.DOCUMENT_OPEN, action);
但未定义DOCUMENT_OPEN。我怎样才能做到这一点?我应该改用stamper.addJavascript吗?但是什么JS代码将设置初始视图?
我可以使用setPageAction(PAGE_OPEN,action,1)起作用,但是我认为,如果用户每次查看页面1时,视图都会改变,这可能会使用户感到烦恼。
顺便说一句,最初我尝试使用PDF Open Parameters,但是它们非常不可靠。我使用显示了pdf
<embed src='myfile.pdf#view=Fit'>
而且Adobe Reader经常无缘无故地忽略视图。这就是为什么我试图在PDF本身中设置初始视图。
最佳答案
尝试以下方法:
writer.setOpenAction(action);
另请参见documentation for setOpenAction。