【发布时间】:2017-10-20 08:34:29
【问题描述】:
当 PDF 表面上出现大约一千个以上时,绘制一个普通的实心圆数组会失败,但相同上下文的 PNG 渲染没有问题。我已经尝试了一系列解决方案,但无法轻易获得错误消息或其他线索——请问有什么想法吗? (在 Mac OS X 10.12.6 下,安装了最新的库)
import cairo
Pi=3.14159265
# this works, Python 2.7
surface = cairo.PDFSurface("cairoTest.pdf", 595, 842)
cntxt = cairo.Context(surface)
cntxt.set_source_rgb(.3, .1, .6)
for xstep in range(0,50,1):
for ystep in range(0,31,1):
cntxt.arc(xstep*10.+30, ystep*10.+30, 3., 0., 2.*Pi)
cntxt.fill()
surface.write_to_png("example.png") # Output to PNG
surface.finish
# this produces zero-byte file
surface = cairo.PDFSurface("cairoTestFkd.pdf", 595, 842)
cntxt = cairo.Context(surface)
cntxt.set_source_rgb(.3, .1, .6)
for xstep in range(0,55,1):
for ystep in range(0,35,1):
cntxt.arc(xstep*10.+30, ystep*10.+30, 3., 0., 2.*Pi)
cntxt.fill()
surface.write_to_png("exampleFkd.png") # Output to PNG
surface.finish
【问题讨论】:
-
fails是什么意思?一些圆圈是不可见的还是所有的都是不可见的?还是有什么问题? -
有时会生成不可读的文件,但最常见的是零长度的 PDF 文件。
-
surface.finish 是一个函数