1) Слои не будут работать с полями.Слои PDF являются частью содержимого страницы.Поля формы, как и все аннотации, плавают над страницей.
2) Сказав это, вы можете скрывать и открывать поля формы с помощью Acrobat / Reader JavaScript.Объект "doc" обычно является "this" в точках входа в поле и страницу, поэтому для отображения заданного поля это просто:
var fld = this.getField("fieldName");
fld.hidden = false;
Существует довольно много разных мест, где вы можете добавить JS в PDF,Различные полевые события, события страницы и события документа.Вы также можете установить действие слоя для некоторого javaScript.Черт возьми, вы можете установить действие закладки как javascript вместо действия «перейти туда».
Обратите внимание, что слои называются «необязательными группами содержимого» (OCG) в техническом языке PDF.Если вы действительно хотите создать слой, похоже, он будет выглядеть примерно так:
// layer implements PdfOCG
PdfLayer layer = new PdfLayer("MyLayer", writer);
PdfContentByte cb = getAContentByteFromSomewhere();
cb.beginLayer(layer); // takes PDFOCG object
/* draw stuff to be part of that layer */
cb.endLayer();
На сайте iText есть несколько примеров, соответствующих "iText In Action"., 2-е издание »(мне не платят, автор - друг). Вышеупомянутые примеры можно найти здесь .
Повторяется: поля не могут быть частью OCG (слоя).Однако их можно записать так, чтобы они действовали так, как они есть.