измерение пикселей - PullRequest
0 голосов
/ 28 августа 2009

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

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

Ответы [ 2 ]

1 голос
/ 28 августа 2009

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

1 голос
/ 28 августа 2009

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

Когда я должен был сделать то же самое (используя 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...