我想使用JAVA中的PDFBOX将顶级书签添加到现有的pdf文件中。
不确定以下代码为何不起作用,有人可以帮助我吗?谢谢。
下面是Document.pdf在书签部分的外观。
Top
---Node-1
-------Node-11
-------Node-12
....
---Node-2
-------Node-21
....
Java代码(程序中的一部分):
PDDocument document = PDDocument.load(new File("C:/Users/Desktop/document.pdf"))
PDDocumentOutline documentOutline = new PDDocumentOutline();
document.getDocumentCatalog().setDocumentOutline(documentOutline);
PDOutlineItem pagesOutline = new PDOutlineItem();
pagesOutline.setTitle("All Pages");
documentOutline.addFirst(pagesOutline);
pagesOutline.openNode();
documentOutline.openNode();
document.getDocumentCatalog().setPageMode(PageMode.USE_OUTLINES);
document.save("C:/Users/Desktop/document.pdf");
document.close()
答案 0 :(得分:1)
这是我的尝试,如果稍后出现问题,我将保留文件名。
我所做的是将旧大纲包装到新项目中。无法一一添加现有项,因为只能添加“孤立项”。
def ssh_server(server, username, password, pg_pass, ps_user, database):
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=server, username=username, password=password)
stdin_2, stdout_2, stderr_2 = client.exec_command("SET PGPASSWORD=secret_pw")
stdin, stdout, stderr = client.exec_command(
"pg_dump -U {} {} > kp_{}.sql\n".format(
ps_user, database, ts_str), get_pty=True)
client.close()