Преобразование PDF в SVG с группировкой и правильным преобразованием текста


2

Я пытаюсь конвертировать большой файл PDF в SVG (для создания веб-анимации с помощью Java-скрипта). Я пробовал различные методы, которые доступны в моей системе:

  • Преобразование с помощью инструмента под названием pdf2svg
  • Преобразование с pdftocairo -svg
  • Импорт с помощью Inkscape
  • Конвертация с pstoedit -f plot-svg -dt -ssp eqn.ps eqn.svg объяснением здесь http://svgkit.sourceforge.net/SVGLaTeX.html

Первые два варианта визуально дают мне лучшие результаты. Кажется, что текст преобразуется в пути, а вывод выглядит как оригинал. Тем не менее, трудно работать с источником полученного SVG. Сгруппированные объекты в оригинальном PDF не сгруппированы в выводе. Напротив, третий метод дает SVG, который, кажется, содержит сгруппированные объекты, так, как мне нужно, каждый с идентификатором. Однако здесь текст, очевидно, импортируется как текст, и шрифт изменяется, так что результат визуально не является привлекательным (это, кажется, не зависит от параметров, которые я использую при импорте).

Есть ли другой способ, который дает мне как правильное преобразование текста, так и сгруппированных объектов? Если нет, то как я могу изолировать и адаптировать механизм, который Inkscape использует для этого преобразования? Обратите внимание, что я использую Linux и что оригинальный файл PDF получен с помощью xelatex.


Просто дикая догадка: может случиться так, что проблемы со шрифтом с третьими опциями явно связаны с неправильным именем шрифта, используемым в импортированном SVG. Если у вас есть небольшое количество шрифтов в вашем PDF, вы можете попытаться решить проблему, применив поиск и заменив эти неправильные имена шрифтов.
Wrzlprmft

Как мне найти их и как найти правильные (могу ли я найти их в PDF)?
Highsciguy

У большинства программ просмотра PDF есть опция, которая показывает встроенные шрифты, хотя и с загадочными именами . Конечно, если вы сгенерировали PDF самостоятельно, вы должны знать шрифты. Чтобы заменить их, просто посмотрите, какой шрифт используется в текстовом поле импортированного SVG, и выполните поиск и замену исходного кода SVG.
Wrzlprmft

Хорошо, я попробую это. Я полагаю, что у меня будет svg, который не является переносимым, если нет способа также встроить шрифты в svg (я думаю, они встроены в pdf).
Highsciguy

Похоже, можно сначала преобразовать шрифты в путь на стороне PDF с помощью gs -o target.pdf -dNoOutputFonts -sDEVICE=pdfwrite source.pdf. Тем не менее, я чувствую, что либо вывод svg с inkscape становится намного больше, чем PDF (кажется, связано с графикой), или, если я не встраивать цифры, размер файла в порядке, но это нужно очень долго для отображения в браузере так как он загружает все файлы.
Highsciguy
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.