绘制简单的形状并保存到文件(pdf)

时间:2012-01-09 17:30:54

标签: python draw

我正在寻找一个python库,我可以使用它来绘制简单的形状和字符,然后保存到文件(格式为可转换为pdf)。如果我不需要运行X-server,我更愿意。

E.g。可能看起来像这样

import drawing_lib
obj = drawing_lib.Object()
for i in range(5):
    obj.draw_line(from=(i*10, 20), to=(i*10+10, 35))
obj.save_pdf('five_inclined_lines.pdf')

任何想法?

3 个答案:

答案 0 :(得分:7)

你可以用cairo做到这一点。

import math,cairo

width, height = 768,768
surface = cairo.PDFSurface ("circle.pdf", width, height)
ctx = cairo.Context (surface)
ctx.set_source_rgb(1,1,1)
ctx.rectangle(0,0,width,height)
ctx.fill()
ctx.set_source_rgb(1,0,0)
ctx.move_to(width/2,height/2)
ctx.arc(width/2,height/2,512*0.25,0,math.pi*2)
ctx.fill()
ctx.show_page()

另见:

答案 1 :(得分:1)

有几个这样的库。

我个人建议reportlab具有高度多样性。

答案 2 :(得分:0)

正如Roman Susu和Dov Grobgeld所说,确实有一些图书馆可以做到这一点。

我自己做了一些实验。除了(如前所述,开罗和reportlab)之外,我觉得其中三个也值得一提。

  1. Python的FPDF端口:https://pyfpdf.readthedocs.io/en/latest/
  2. PyX(https://pyx-project.org/),这是使用LaTeX处理PDF的方式
  3. 编写PostScript(PS)文件并使用Ghostscript进行转换。

数字3比您想象的要高效。 PS处于最低水平,这是可以理解的,可以为您提供很多控制。当然,一切都取决于您的情况。