Низкоуровневый PDF: добавление текста в виде невидимого слоя с каждой буквой в определенной позиции - PullRequest
0 голосов
/ 06 декабря 2011

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

У меня есть координаты каждой буквы, что-то вроде этого:

    x0  y0  x1  y1
a = 345,200,350,210
n = 352,201,360,209
d = 365,200,371,212

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

В качестве альтернативы я мог бы сделать это только с координатами для каждого слова, если это лучше.

В каком формате записывается это в объект контента?

Большое спасибо за помощь!

1 Ответ

2 голосов
/ 06 декабря 2011

Есть много способов сделать это. Вам нужно будет использовать текстовый блок:

BT 
%..you need to set a font... 
/f1 10 Tf
%..you need to set the text matrix to include Tx and Ty (if not already done)..
1 0 0 1 345 200 Tm
(a) Tj % or (and) Tj to display the word in one go (position of chars depends on font selected)
1 0 0 1 352 201 Tm
(n) Tj
% etc.
ET

Вы также упомянули, что хотите, чтобы текст был невидимым. Если вы полностью контролируете содержимое страницы, вы можете установить обводку текста и цвет заливки таким же, как цвет фона (который, вероятно, будет белым)

1 1 1 RG
1 1 1 rg

В противном случае вы можете закрасить текст, он все равно будет доступен для выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...