Вы предполагаете, что для аннотаций, в частности аннотаций виджета поля формы подписи,
исходные координаты должны быть из левого нижнего угла
и в комментарии укажите пример
Я использую следующий код. Координата начала координат - это левый нижний угол
Rectangle rect = new Rectangle(0, 0, 200, 100);
appearance.setPageRect(rect);
Ваше предположение неверно, начало координат системы координат может быть в любом месте , внутри или снаружи видимой области. Это действительно часто находится в левом нижнем углу видимой области страницы, но это просто происходит, потому что это часто является наиболее простым вариантом для обработки программного обеспечения для создания PDF.
На самом деле даны диапазоны координат видимой области страницы с помощью записи CropBox на соответствующей странице:
CropBox прямоугольник (необязательно; наследуемый) прямоугольник, выраженный у пользователя по умолчанию космические единицы, которые должны определять видимую область пространства пользователя по умолчанию. Когда страница отображается или печатается, ее содержимое должно быть обрезано (обрезано) до этого прямоугольника.
(ISO 32000-1 Таблица 30 - Записи в объекте страницы)
Таким образом, если у вас есть координаты относительно левого нижнего края видимой области для размещения аннотации, вы должны добавить эти относительные координаты к координатам нижнего левого угла поля обрезки.
Используя iText 7, вы позиционируете PdfSignatureAppearance appearance
на PdfPage page
относительно его нижнего левого угла следующим образом:
Rectangle crop = page.getCropBox();
Rectangle rect = new Rectangle(crop.getLeft() + 0, crop.getBottom() + 0, 200, 100);
appearance.setPageRect(rect);
(getCropBox
уже учитывает, что CropBox наследуется, проверяя узлы-предки в дереве Pages , а также является необязательным, если по умолчанию используется MediaBox страницы.)