Java pdf中的书签不会指向正确的页面,也不会指向与此相关的任何页面。为什么会这样?
我正在使用Netbeans和iText pdf api。所以我有下面的方法来创建一个可以插入到pdf中的哈希表。在这种情况下,它们是要放置在文档末尾的pdf中的图像文件Java pdf中的书签不会指向正确的页面,也不会指向与此相关的任何页面。为什么会这样?,java,image,pdf,itextpdf,Java,Image,Pdf,Itextpdf,我正在使用Netbeans和iText pdf api。所以我有下面的方法来创建一个可以插入到pdf中的哈希表。在这种情况下,它们是要放置在文档末尾的pdf中的图像文件 private HashMap<String, Object> newTmp = new HashMap<>(); //to generate bookmarks from images, another object is made private ArrayList<HashMap<Str
private HashMap<String, Object> newTmp = new HashMap<>(); //to generate bookmarks from images, another object is made
private ArrayList<HashMap<String, Object>> bookmarks = new ArrayList<>(); //an array list is instantiated for bookmarks to be saved
private void bookmarkGen(String imageList[]) {
int n = 0; //counter used to progress each bookmark.
for (int i = 0; i < imageList.length; i++) {
if (imageList[i] != null) {
bookmarks.add(newTmp);
newTmp.put("Title", imageList[i].substring(imageList[i].lastIndexOf("/"), imageList[i].lastIndexOf(".")));
newTmp.put("Action", "GoTo");
newTmp.put("Page", String.format("%d Fit", n++));
System.out.print(n + "\n");
System.out.print("Bookmark Added\n");
}
}
}
每当我这样做时,其中一个书签只会转到一个页面,而其余的书签没有指定页面。我做错了什么?您创建了一次
newTmp
,并多次将其添加到列表中,每次都覆盖其条目。因此,最终会有一个列表,其中包含对newTmp
的许多引用,这些引用的值是在循环的最后一次迭代中设置的
要解决此问题,请移动
private HashMap<String, Object> newTmp = new HashMap<>();
private HashMap newTmp=new HashMap();
进入循环
private HashMap<String, Object> newTmp = new HashMap<>();