Пожалуйста, никогда не создавайте объект PDF вручную, не ознакомившись с ISO-32000-1.
Вы хотите создать действие GoToR. Такое действие выражается в виде словаря PDF, который может содержать следующие ключи:
![ISO-32000-1 Таблица 200](https://i.stack.imgur.com/1h9JV.png)
В этой таблице нет клавиши с именем Zoom, поэтому ваш код неверен.
Вам понадобится клавиша D, а поскольку вы хотите создать ссылку на страницу и определить коэффициент масштабирования, вам необходимо указать пункт назначения:
![ISO-32000-1 Таблица 151](https://i.stack.imgur.com/rAzkM.png)
Другими словами, пункт назначения должен быть PdfArray
! PdfName.FIT
недостаточно!
(Все снимки экрана взяты из копии ISO-32000-1, предоставленной Adobe на ее веб-сайте.)
Обновление:
Если вы хотите добавить ссылку на удаленную страницу, вы также можете следовать примеру на странице 197-198 в iText в действии - Второе издание: см. пример LinkActions, в котором используется gotoRemotePage().
Внутренне этот метод выглядит так:
public static PdfAction gotoRemotePage(String filename, String dest, boolean isName, boolean newWindow) {
PdfAction action = new PdfAction();
action.put(PdfName.F, new PdfString(filename));
action.put(PdfName.S, PdfName.GOTOR);
if (isName)
action.put(PdfName.D, new PdfName(dest));
else
action.put(PdfName.D, new PdfString(dest, PdfObject.TEXT_UNICODE));
if (newWindow)
action.put(PdfName.NEWWINDOW, PdfBoolean.PDFTRUE);
return action;
}
Обратите внимание, что это предполагает, что у вас есть именованный пункт назначения в целевом файле.
Я думаю, что вы бы предпочли использовать конструктор, который принимает номер страницы:
public PdfAction(String filename, int page) {
put(PdfName.S, PdfName.GOTOR);
put(PdfName.F, new PdfString(filename));
put(PdfName.D, new PdfLiteral("[" + (page - 1) + " /FitH 10000]"));
}
Конечно, это не использует PdfName.FIT
. Если вы действительно хотите определить место назначения самостоятельно, вам нужна строка, которая выглядит так:
put(PdfName.D, new PdfLiteral("[" + (page - 1) + " /Fit]"));
person
Bruno Lowagie
schedule
14.04.2015