2012-01-09 6 views
4

私はシンプルな図形や文字を描き、PDFに変換できる形式でファイルに保存するためのPythonライブラリを探しています。私は、Xサーバが動作している必要がなければ、私は好きです。シンプルな図形を描いてファイルに保存する(PDF)

など。このようなものになる可能性があります

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') 

どのようなアイデアですか?

答えて

6

これはカイロで行うことができます。

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() 

も参照してください:

+0

私は最初に描画コマンドを書いてから、あらかじめ固定幅と高さを設定するのではなく、幅と高さをすべてに合わせて(境界線なしで)設定したいと思っています。誰にどのようにこれを行うにはどのようなアイデア? –

+1

バージョン1.10では、cairoはRecordingSurfaceを導入しました。このサーフェスでは、描画コマンドを記録したり、完了したら "ink-extents"を要求したりできます。次に、pdfサーフェスを作成し、 'ctx.paint()'コマンドで記録面の内容をペイントします。参照してください:http://cairographics.org/manual/cairo-Recording-Surfaces.html –

+0

@DovGrobgeld:私はこれを動作させようとしましたが、[いくつかの問題がありました](https://stackoverflow.com/questions/25066437/)作物 - カイロ生成pdf)。おそらくあなたには考えがありますか? – Richard

1

そのようないくつかのライブラリがあります。

私は個人的には、その多彩な性質のためにreportlabをお勧めします。

関連する問題