Вопрос

я пишу код в vb.net, который будет генерировать файл PDF.я собираюсь поместить текст и изображения в файл PDF.вместо того, чтобы методом проб и ошибок позиционировать текст и изображения с использованием координат пикселей, я хотел бы иметь возможность точно знать координаты чего-либо в PDF-файле.так, например, я хотел бы навести указатель мыши на файл PDF, и он автоматически отобразит пиксельные координаты того места, где находится мышь.

Вопрос в том, есть ли в vb.net инструмент или что-то еще, которое покажет мне, например, координаты того места, где находится моя мышь?

Это было полезно?

Решение

Я подозреваю, что к тому времени, когда вы внедрите инструмент для этой цели, вы сможете завершить его с помощью метода проб и ошибок.

Когда мне пришлось сделать то же самое (используя iTextSharp, как и вы), я начал с попытки записать текст в произвольную позицию формы, скажем, x = 100 и y = 100.Когда я увидел, где он оказался в PDF-файле, я скорректировал его.Немного проделав это, вы получите представление о том, в каких координатах должна находиться следующая точка.

СОВЕТ №1:
Помните, что 0, 0 относятся к левому нижнему углу вашего документа..По мере увеличения этих чисел ваша позиция в документе повышается вверх и вправо.

СОВЕТ № 2:
Подумайте о том, как содержимое вашего PDF-файла выстраивается по вертикальной и горизонтальной осям.Найдите эти значения и объявите их как константы в своей программе и ссылайтесь на эти константы в своем коде.Это сокращает количество точек, которые вам нужно найти, и делает вашу программу более читабельной.

Например, в документе, который я создаю, есть форма с текстом, состоящим из нескольких строк, идущих горизонтально (представьте себе общие значения оси Y) и полей, которые выстраиваются вертикально (представьте себе общие значения оси X).

Поэтому я определил расположение линий по оси Y и объявил их следующим образом (на C#):

const float Line1Y = 200f;
const float Line2Y = 150f;
//etc.

Я также определил расположение блоков по оси X и объявил их значения по оси X следующим образом:

const float Column1X = 100f;
const float Column2X = 200f;
//etc.

В моем коде, когда пришло время позиционировать элементы, я ссылался на константы следующим образом:

content.SetTextMatrix(Column1X, Line1Y);
content.SetTextMatrix(Column2X, Line1Y);
content.SetTextMatrix(Column1X, Line2Y);

Другие советы

В Acrobat Professional есть инструмент для измерения расстояния, также вы можете попробовать инспектор Enfocus PDF. Он также имеет инструмент измерения, оба соответствуют вашим требованиям.но оба являются платными программами, вы можете попробовать пробные версии.Я думаю, что оба доступны для 30-дневной пробной версии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top