Рекомендации для простой библиотеки 2D-графики Python, которая может выводить на экран и PDF? - PullRequest
3 голосов
/ 28 апреля 2010

Я ищу простой в использовании графический lib для Python, который может выводить на экран, а также в PDF. Таким образом, я использовал бы код, чтобы нарисовать некоторые вещи (простые простые числа, такие как овалы, прямоугольники, линии и точки) для отображения на экране, а затем, когда все выглядит хорошо, вывести его в pdf.

Ответы [ 6 ]

3 голосов
/ 28 апреля 2010

Если вы используете Tkinter, вы можете рисовать на виджете Canvas, а затем использовать его метод .postscript для сохранения содержимого в виде файла PostScript, который можно преобразовать в PDF с помощью ps2pdf.

postscript (self, cnf = {}, ** kw) Распечатать содержимое холста в постскриптум файл. Допустимые параметры: colormap, colormode, file, fontmap, высота, pageanchor, pageheight, pagewidth, pagex, pagey, вращаться, с, х, у.

2 голосов
/ 28 апреля 2010

Matplotlib должен уметь это делать. Смотрите обработку событий здесь: http://matplotlib.sourceforge.net/examples/event_handling/index.html

1 голос
/ 28 апреля 2010

Вы можете использовать Python Imaging Library для рисования изображений, которые могут быть легко отображены в различных пользовательских интерфейсах, например, отображая JPG. Затем используйте ReportLab . Вот пример , который показывает, как использовать ReportLab с изображением.

Я не уверен, что вы подразумеваете под «экраном», т. Е. Если вы работаете с определенным инструментарием пользовательского интерфейса. Но если можно рисовать и отображать PDF-файлы без использования промежуточного изображения (jpg и т. Д.), Вы можете рассмотреть библиотеку PyX , которая упрощает создание графики с PDF-файлами.

0 голосов
/ 28 апреля 2010

Создание PDF-файлов - это всегда боль, не имеет смысла, если вы не стремитесь потерять здравомыслие.

С учетом сказанного вы стремитесь сделать две совершенно разные вещи: когда вы рисуете на экран, вы рисуете в растровое растровое изображение, в то время как PDF-файлы в основном динамические, такие как HTML. (в отличие от HTML они более склонны быть одинаковыми на разных платформах, но это не относится к делу)

Если вы действительно хотите это сделать, решение может найти что-то, что выводит PDF-файлы, и затем , отображающий сгенерированный PDF-файл на экране на каждом этапе. Я полагаю, что это единственный способ получить результаты WYSIWYG.

0 голосов
/ 28 апреля 2010

Это сложный вопрос, потому что так много доступных библиотек - существует компромисс между красотой и легкостью.

То, что я сделал и отлично работает, - это создание PostScript напрямую, это совсем не сложно, и вы можете просмотреть его с помощью Ghostview; Преобразование Tyo PDF тривиально (ps2pdf). Научиться сообщать PostScript, что нужно создавать линии и круги, очень просто.

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

Удачи.

0 голосов
/ 28 апреля 2010

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

Тогда есть Pygame . Но я не уверен, что он может сгенерировать PDF, однако вы можете сделать 2D-графику с ним.

Существует нечто, называемое ReportLab , которое может генерировать PDF. Здесь - это набор учебных пособий по его использованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...