Я реализовал функциональность для добавления относительной ссылки в pdf с помощью библиотеки pdfbox. Ниже приведен код, который я использую для добавления ссылки:
PDAnnotationLink txtLink = new PDAnnotationLink();
PDActionRemoteGoTo remoteGoto = new PDActionRemoteGoTo();
PDComplexFileSpecification fileDesc = new PDComplexFileSpecification();
fileDesc.setFile(System.IO.Path.GetFileName(path));
remoteGoto.setOpenInNewWindow(true);
remoteGoto.setFile(fileDesc);
txtLink.setAction(remoteGoto);
txtLink.setRectangle(rect);
page.getAnnotations().add(txtLink);
Вот команда, введенная в pdf:
14 0 obj
<<
/Type /Filespec
/F (A-201-NORTH & SOUTHSITE ELEVATIONS.pdf)
>>
endobj
Ссылки работают в adobe, ios viewer. Но не работает в PSPDF. Кроме того, у меня есть файл, ссылка на который работает в PSPDF. Но команды в этом файле немного отличаются от приведенных выше. Вот команда link, которая работает в PSPDF:
113 0 obj
<<
/Type /Filespec
/F (A8.1 - INTERIOR ELEVATION.pdf)
/UF (A8.1 - INTERIOR ELEVATION.pdf)
/Desc()
>>
Итак, как мне создать эту команду с помощью pdfbox.