Я использую CairoSVG для превращения SVG в PDF. Я нашел ошибку, где каждая строка текста имеет 1 мерную метку в конце, когда PDF загружен в CorelDraw.Движение цифрового курсора, записанное в формате PDF, видимое в CorelDraw
Я считаю, что это верно даже с самым простым и насущным из SVGs. Затем я решил заглянуть в источник Python CairoSVG, чтобы исправить проблему в ее корне. Я нашел text.py в качестве места, где возникает проблема.
https://github.com/Kozea/CairoSVG/blob/master/cairosvg/text.py
В частности, for [x, y, dx, dy, r], letter in letters_positions:
цикл. Я могу фактически манипулировать значком, делая это после цикла for.
surface.context.move_to(100, 100)
surface.context.save()
surface.context.text_path(' ')
surface.context.restore()
В зависимости от значений я вхожу, он будет двигаться один из пунктов (в этом случае нижняя правая точка знака). Это говорит о том, что когда CairoSVG выполняется с линией текста, поверхность переместит курсор на начало последней буквы, которую он рисует. По какой-то причине последний раз, когда он это делает, фактически записывается в PDF, хотя для большинства читателей в формате PDF он не отображается. Я попытался точно настроить эту отметку, чтобы две точки были одинаковыми, но поскольку это местоположение отличается каждый раз в зависимости от буквы и местоположения и т. Д., Я не могу точно настроить это число, чтобы исчезнуть метка, даже если вы используете доступные ширина и высота переменных
Обратите внимание, что surface.context не файл или функцию и поверхность pprint
-е изд, как <cairosvg.surface.PDFSurface object at 0x7f647802ec90>
, это своего рода интерфейс Cairo для взаимодействия с файлом PDF непосредственно через своего рода PDF API, хотя я гаванью Не найдено никаких документов.
Я пробовал много дешевой работы вокруг, как сохранение PDF в другой программе, а затем открытие в Corel, однако элементы теряются или изменяются способами, которые неприемлемы.
Я также, конечно, пробовал комментировать этот файл по 1 строке за раз, затем куски кода за раз, но не повезло.
Я также изучал другие файлы, такие как path.py, parser.py и многое другое, но text.py представляется наиболее перспективным местом.
Как я могу предотвратить появление этой метки в моих PDF-файлах?