1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでPDFに図形を描く(線、矩形、楕円など)

Posted at

PDFに図形を描くことで、文書の視覚効果を高めることができます。実線、破線、長方形、円など、さまざまな種類の図形を追加することで、文書をより鮮明にして読者の注意を引くことができます。これは特に、レポートやプレゼンテーション、教材を作成する際に便利です。この記事では、PythonでPDFにさまざまな図形を描く方法を、以下の3つの例で紹介します。

Python PDF API

PDFに様々な図形を追加するには、Spire.PDF for Pythonライブラリが必要です。以下のpipコマンドで直接インストールできます:

pip install Spire.Pdf

PythonでPDFに実線・破線を描画する

Spire.PDF for Pythonライブラリは、PDFページ上の指定された位置に線を描画する PdfPageBase.Canvas.DrawLine() メソッドを提供します。Pdfペンのスタイルを設定することにより、実線や破線を描くことができます。

Pythonのコード:

from spire.pdf.common import *
from spire.pdf import *
 
# PDF文書の作成
pdf = PdfDocument()
 
# ページを追加する
page = pdf.Pages.Add()
 
# 現在の描画状態を保存する
state = page.Canvas.Save()
 
# 線の開始X座標とY座標を指定する
x = 100.0  
y = 50.0   
 
# 線の長さを指定する
width = 300.0  
 
# 色と太さを指定したPDFペンの作成
pen = PdfPen(PdfRGBColor(Color.get_Blue()), 2.0)  
 
# ペンを使ってページに実線を引く
page.Canvas.DrawLine(pen, x, y, x + width, y)
 
# ペンのスタイルを破線に設定する
pen.DashStyle = PdfDashStyle.Dash  
 
# 破線のスタイルを [1, 4, 1] に設定する
pen.DashPattern = [1, 4, 1]  
 
# 破線の開始Y座標を指定する
y = 80.0  
 
# ペンでページに破線を引く
page.Canvas.DrawLine(pen, x, y, x + width, y)
 
# 以前に保存した描画状態を復元する
page.Canvas.Restore(state)
 
# PDF文書を保存する
pdf.SaveToFile("DrawLines.pdf")
pdf.Close()
pdf.Dispose()

PDFlines.png

PythonでPDFに矩形を描画する

PdfPageBase.Canvas.DrawRectangle() メソッドを使用すると、 PDF ページ上の指定した位置に矩形を描画することができます。このメソッドに異なるパラメータを渡すことで、矩形のサイズや塗りつぶしの色などを指定することができます。

Pythonのコード:

from spire.pdf.common import *
from spire.pdf import *
 
# PDF文書の作成
pdf = PdfDocument()
 
# ページを追加する
page = pdf.Pages.Add()
 
# 現在の描画状態を保存する
state = page.Canvas.Save()
 
# 色と太さを指定したPDFペンの作成
pen = PdfPen(PdfRGBColor(Color.get_Blue()), 1.5)
 
# ペンを使ってページに長方形を描く
page.Canvas.DrawRectangle(pen, RectangleF(PointF(20.0, 60.0), SizeF(150.0, 90.0)))
 
# 線形グラデーションブラシを作成する
linearGradientBrush = PdfLinearGradientBrush(PointF(220.0, 60.0), PointF(350.0, 180.0), PdfRGBColor(Color.get_Green()), PdfRGBColor(Color.get_Pink()))
 
# 線形グラデーションブラシで塗りつぶし矩形を描く 
page.Canvas.DrawRectangle (linearGradientBrush, RectangleF(PointF(220.0, 60.0), SizeF(150.0, 90.0)))
 
# 以前に保存した描画状態を復元する
page.Canvas.Restore(state)
 
# PDF文書を保存する
pdf.SaveToFile("DrawRectangle.pdf")
pdf.Close()
pdf.Dispose()

PDFrectangle.png

PythonでPDFに楕円を描く

PDF ページ上の指定した位置に楕円を描くには、 PdfPageBase.Canvas.DrawEllipse() メソッドを使用します。異なるPDFペンやブラシを指定することで、異なるスタイルの楕円を描くことができます。

Pythonのコード:

from spire.pdf.common import *
from spire.pdf import *
 
# PDF文書の作成
pdf = PdfDocument()
 
# ページを追加する
page = pdf.Pages.Add()
 
# 現在の描画状態を保存する
state = page.Canvas.Save()
 
# Penオブジェクトの作成
pen = PdfPens.get_Violet()
 
# ペンで楕円を描く
page.Canvas.DrawEllipse(pen, 30.0, 60.0, 150.0, 100.0)
 
# 塗りつぶし用のBrushオブジェクトの作成
brush = PdfSolidBrush(PdfRGBColor(Color.get_Violet()))
 
# 塗りつぶされた楕円形を描く
page.Canvas.DrawEllipse(brush, 220.0, 60.0, 150.0, 100.0)
 
# 以前に保存した描画状態を復元する
page.Canvas.Restore(state)
 
# PDF文書を保存する
pdf.SaveToFile("DrawEllipse.pdf")
pdf.Close()
pdf.Dispose()

PDFellipse.png


以下のリンクをクリックし、1ヶ月の無料ライセンスをリクエストすることで、生成されたドキュメントの赤い透かしを取り除くことができます:

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?