JAVA pdfbox和GROOVY在打开PDF时显示书签,setPageMode不工作
我正在尝试合并所有的PDF文件和创建书签,它工作得很好。 最后一步是设置一个在打开PDF时自动显示书签的功能
我已经在pdfbox-2.0.20中测试了以下代码
下面的部分代码
totalPages = totalPages + pdfDocPages
println it["TLF_NUM"] + ": " + it["TLF_TITLE"]
def page = pages.get( totalPages - pdfDocPages);
def dest = new PDPageFitWidthDestination()
dest.setPage(page)
def bookmark = new PDOutlineItem()
bookmark.setDestination(dest)
bookmark.setTitle( it["TLF_NUM"] + ": " + it["TLF_TITLE"] )
pagesOutline.appendChild( bookmark )
}
}
}
pagesOutline.openNode()
outline.openNode()
pdfDocument.getDocumentCatalog().setPageMode(PageMode.USE_OUTLINES)
pdfDocument.save(pdfoutfullpath)
pdfDocument.close()
}
下面列出了我遇到的错误
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No
signature of method: org.apache.pdfbox.pdmodel.PDDocumentCatalog.setPageMode() is applicable for
argument types: (org.apache.pdfbox.pdmodel.PageMode) values: [USE_OUTLINES]
Possible solutions:
setPageMode(java.lang.String), getPageMode()
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:95)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at MergePDFBookmarks.invokeMethod(Script1.groovy)
at org.codehaus.groovy.runtime.InvokerHelper$2.run(InvokerHelper.java:415)
Caused by: groovy.lang.MissingMethodException: No signature of method:
org.apache.pdfbox.pdmodel.PDDocumentCatalog.setPageMode() is applicable for argument types:
(org.apache.pdfbox.pdmodel.PageMode) values: [USE_OUTLINES]
Possible solutions:
setPageMode(java.lang.String), getPageMode()
# 1 楼答案
根据评论,您使用的是1.8而不是2.0。删除。来自您不使用的版本的jar文件。你不能两者都用
在1.8中,使用
或