我使用的是pdfbox library 2.0版本。我需要在新的浏览器选项卡(即打印视图)中打开pdf。
好像我们正在从itext迁移到pdfbox,下面是itext的现有代码。
有了下面的代码,就有pdfaction类来实现了。它是,
PdfAction action = new PdfAction(PdfAction.PRINTDIALOG);
要在文档上应用打印javascript,
copy.addJavaScript(action);
我需要与pdfbox等效的解决方案。
Document document = new Document();
try{
outputStream=response.getOutputStream();
// step 2
PdfCopy copy = new PdfCopy(document, outputStream);
// step 3
document.open();
// step 4
PdfReader reader;
int n;
//add print dialog in Pdf Action to open file for preview.
PdfAction action = new PdfAction(PdfAction.PRINTDIALOG);
// loop over the documents you want to concatenate
Iterator i=mergepdfFileList.iterator();
while(i.hasNext()){
File f =new File((String)i.next());
is=new FileInputStream(f);
reader=new PdfReader(is);
n = reader.getNumberOfPages();
for (int page = 0; page < n; ) {
copy.addPage(copy.getImportedPage(reader, ++page));
}
copy.freeReader(reader);
reader.close();
is.close();
}
copy.addJavaScript(action);
// step 5
document.close();
}catch(IOException io){
throw io;
}catch(DocumentException e){
throw e;
}catch(Exception e){
throw e;
}finally{
outputStream.close();
}
我也尝试了以下参考,但找不到 print()
pddocument类型的方法。
参考链接
请用这个指引我。
这是在“浏览器”选项卡中显示文件时的外观:
1条答案
按热度按时间92dk7w1h1#
这段代码再现了文件的内容,即文档目录中名称字典中javascript项的名称树中的javascript操作。()打开文档时,将执行此名称树中的所有操作,定义javascript函数以供文档中的其他脚本使用“-pdf规范)可能有一种更简单的方法来执行此操作,例如使用openaction。