5

Мне нужен способ вставлять высококачественные PDF-рисунки в Word без их искажений.

В основном это научные графики, созданные с помощью Python и Matplotlib. Основная проблема заключается в том, что текстовые метки на графиках не отображаются правильно.

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

Мой текущий рабочий процесс, таким образом, заключается в экспорте рисунков в виде файлов PNG с разрешением 300 точек на дюйм с использованием Inkscape. Однако качество изображения все еще неудовлетворительное, и когда я увеличиваю DPI, видимого увеличения качества не наблюдается.

Кто-нибудь знает хороший способ вставить высококачественные графики в Word?

2 ответа2

3

Бесконечная битва Word против PDF или Eps

С растровыми изображениями вы должны найти компромисс между разрешением и размером. Если вы знаете, что документ будет напечатан с разрешением 600 точек на дюйм, вы можете импортировать изображения с этим определением. Но если завтра у вас будет принтер высокой четкости, вам следует начать заново. Если вы увеличите DPI, ваш документ увеличится в размере, и вам потребуется больше ресурсов для вашей системы.

Если вы можете работать с векторным изображением, вы не будете сталкиваться с проблемами, связанными с определением изображения, но вы можете найти проблемы, связанные с установленным шрифтом, или у вас может быть файл большего размера, например, в случае, когда вы выводите 1 миллиард данных. ..

Когда вам нужно импортировать внутри слова файл, вы можете:

  • Перейти к источнику: вы можете заменить или добавить формат (и, в конечном итоге, размер), необходимый непосредственно в сценарии, который сгенерировал график. Читайте с сайта matplotlib [ 1 ]. Лучше, если вы сможете сохранить в формате векторной графики [ 1b ].

    plt.savefig(pp, format='pdf') 
    plt.savefig(pp, format='png')
    plt.savefig(pp, format='svg')
    

    или даже

    fig.savefig('test.pdf')
    fig.savefig('test.png')
    
  • Используйте imagemagick [ 2 ] или Inkscape [ 2b ] или gimp [ 2b ], чтобы конвертировать PDF в PNG (или в другие растровые форматы, TIFF, JPG ...) или в SVG (или в другом формате векторной графики).

    Это зависит от того, является ли это PDF-файл с векторной графикой [ 3 ] или нет.
    В первом случае вы должны найти редкие проблемы с рендерингом или шрифтами, но без проблем с определением.
    В последнем случае вы должны выбрать плотность и размеры для окончательного изображения.
    Прочитайте что-нибудь еще, например, по этому ответу [ 4 ].
    Вы закончите писать что-то похожее на:

    convert file.pdf file.svg                                  # If pdf with vector
    convert -density 600 file.pdf -resize 4961x7016 mypic.png  # With fixed grid
    

Заметка
Если файл PDF был создан с растровыми изображениями с определенным определением, например, 300 DPI, вы не добьетесь большого успеха с любой программой, увеличивающей DPI до 400 или 600 ... :-)
Как правило большого пальца (оно обычно работает), вы можете предположить, что в растровом pdf есть строка /image .
Так, например, в Linux вы можете запустить grep и посчитать вхождения этой строки:

grep  -c -i "/image" *pdf
MyRasterPdf.pdf:3    # > 0  if raster pdf
MyVectorPdf.pdf:0    # = 0  if vector pdf

И последнее, но не менее важное, рассмотрим LaTex, возможно, с графическим интерфейсом в качестве texmaker.

1

По состоянию на май 2018 года Microsoft Word в выпуске Office 365 внес два изменения, которые изменяют ответ на этот вопрос:

Это означает, что лучшим способом обработки высококачественной графики является создание в Matplotlib фигуры, которая имеет правильный размер (с использованием plt.figure(figsize=(width_in_inches, height_in_inches)), а затем экспортирует фигуру с помощью plt.savefig('filename.svg') . Вы можете вставить этот файл непосредственно в Word, и он будет корректно отображаться даже при конвертации в PDF.

Это видео показывает весь процесс и сравнивает форматы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .