Уравнение
Похоже, вы пытаетесь интерпретировать уравнение
tx = ((w0 - Tj/1000) * Tfs + Tc + Tw) * Th
в глифе вместо текстового пространства, по крайней мере, значения, которые вы вставляете, указывают на это. Вместо этого интерпретируйте его в текстовом пространстве независимо от типа шрифта.
В частности:
w0
- использовать ширину соответствующего символа из массива ширины в словаре шрифтов PDF и разделить его на 1000; Я ожидаю, что значение около 0,667 для столицы А.
Tj
- использовать значение из параметра операционного массива TJ , например, 120.
Tfs
- использовать размер шрифта из графического состояния, которое является параметром размера шрифта из соответствующей операции Tf , например, 10.
Tc
- использовать значение из графического состояния, которое является параметром соответствующей Tc или " операции.
Tw
- используйте 0 или (в случае однобайтового кода символа 32) значение из графического состояния, которое является параметром из соответствующих Tw или " работа.
Th
- использовать значение из графического состояния, которое является параметром соответствующей операции Tz , деленное на 100.
Ваш файл примера
К сожалению, вы не показываете x координаты вашего кода, рассчитанного для происхождения глифов, поэтому я не могу сказать, неверны ли ваши вычисления или что-то еще в вашем коде.
Поскольку значения в основном тривиальны (размер шрифта 1, без Tc или Tw, Th 1), я вручную вычислил x координаты происхождения глифов для первых нескольких символов:
character x coordinate
'1' 734.204784
'0' 745.564784
' ' 756.908784
'm' 765.452784
'e' 779.468784
'i' 790.012784
' ' 796.076784
'1' 804.620784
'9' 815.980784
'1' 827.324784
'8' 838.684784
' ' 850.028784
'd' 858.572784
Согласно вашему изображению, ваши координаты здесь уже довольно неправильны.
Координаты, которые я вычислил, кажутся правильными, хотя, в частности, они соответствуют координатам инструкций векторной графики, рисующим «тени» глифов.
Таким образом, пожалуйста, сравните с координатами, рассчитанными вашим кодом. Если ваши отличаются, в частности, если они различаются в большей степени, вы все равно не выполняете вычисления, как описано выше, по крайней мере, не совсем точно (возможно, вы используете числовой тип, который является слишком потерянным в этих вычислениях?). Если ваши не отличаются, то ваша проблема не в расчете координат, а в их использовании; Вы, в частности, затем используете их по-разному для текста и инструкций по векторной графике.