Экспорт PDF: шрифт не найден

Я пытаюсь экспортировать свою фигуру в формате PDF. Я столкнулся с проблемой, что когда я хочу его отредактировать (в данном случае Графический в macOS), шрифт не может быть найден редактором. У меня вопрос, как мне это решить? Могу ли я «установить» шрифты, используемые matplotlib?


Пример

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ax.plot([0,1], [0,1])

plt.savefig('test.pdf')

Этот PDF-файл отлично выглядит в предварительном просмотре:

Экспорт PDF: шрифт не найден

Но в редакторе дает тарабарщину:

Экспорт PDF: шрифт не найден


Неудачное решение

Параметр

matplotlib.rc("pdf", fonttype=42)

(см. этот ответ).


Частично рабочее решение

Что работает, так это установить все шрифты matplotlib. Я следил за этот ответ, чтобы найти все ttfs matplotlib, и установил их. Это работает и решает проблему.

Но... Это действительно решает проблемы, когда LaTeX включен, с помощью

import matplotlib

matplotlib.rcParams['text.usetex'] = True

Как мне теперь установить шрифты, которые использует matplotlib?

A solution here is to export as SVG. However, for some reason this takes ages on my system (see this bug).

Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
106
2

Ответы 2

Какой редактор PDF вы используете? Я не знаю, как проверить, работает ли попытка решить эту проблему ... но я всегда использую этот код для сохранения изображений в pdf или png:

plt.savefig('test.pdf', edgecolor='none', bbox_inches = "tight")

Спасибо за ответ. Пытаюсь редактировать в Графический. Я тоже редактировал вопрос. К сожалению, ваше предложение не решает проблему. Я подозреваю, что это связано с добавлением шрифтов типа «да / нет» в PDF или с поиском возможности преобразовать символы в пути, чтобы эту проблему можно было обойти.

Tom de Geus 19.06.2018 13:50

Я нашел обходной путь. Это необходимо для преобразования всех шрифтов в контуры перед редактированием. Один из способов сделать это - использовать GhostScript с опцией -dNoOutputFonts, как описано в этот ответ:

gs -o file-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite file.pdf

Другие вопросы по теме