激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - wxPython之解決閃爍的問題

wxPython之解決閃爍的問題

2021-01-05 00:09阿Bin先生 Python

下面小編就為大家分享一篇wxPython之解決閃爍的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

利用Python生成PDF文件時,對比了fpdf和reportlab兩個庫。fpdf最新更新還是2015年,

另外reportlab的資料網上更多一些。所以選擇使用reportlab。

pdfgen

pdfgen包是生成PDF文檔最底層的接口。一個pdfgen編程實質是一系列將一個文檔繪制到連續頁面上的操作指南。提供繪制操作的接口對象是pdfgen canvas。

canvas應該被認為一張白紙,上面的點用笛卡爾坐標來標記。默認頁面的左下角為原點(0,0),此外x軸向右,y軸向上。

示意圖如下:   

wxPython之解決閃爍的問題

繪制文本

首先演示一個繪制”hello world!”的PDF文件。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#引入所需要的基本包
from reportlab.pdfgen import canvas
#設置繪畫開始的位置
def hello(c):
 c.drawString(100, 100, "hello world!")
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#調用函數進行繪畫,并將canvas對象作為參數傳遞
hello(c)
#showPage函數:保存當前頁的canvas
c.showPage()
#save函數:保存文件并關閉canvas
c.save()

運行結果:

wxPython之解決閃爍的問題

canvas.Canvas構造函數

?
1
2
3
4
5
6
7
def __init__(self,filename,
   pagesize=(595.27,841.89),
   bottomup = 1,
   pageCompression=0,
   encoding=rl_config.defaultEncoding,
   verbosity=0
   encrypt=None):

其中:

filename:PDF文件名

pagesize:兩個數字的元組。canvas頁面大小默認是A4(國際標準紙張大小),A4不同于美國標準紙張大小letter。大多數紙張大小在reportlab.lib.pagesizes。例如:

?
1
2
3
from reportlab.lib.pagesizes import letter, A4
myCanvas = Canvas('myfile.pdf', pagesize=letter)
width, height = letter #keep for later

bottomup :目前是廢棄的

pageCompression:決定每頁PDF操作流是否被壓縮。默認設為0,不壓縮。因為壓縮會減慢文件生成過程。如果每頁有大量文本和矢量圖形,設置pageCompression = 1來壓縮節省空間。

encoding:決定字體編碼,默認值就很好了。

verbosity:決定多長信息被打印。

encrypted:決定PDF文檔是否加密。

添加字體

下面演示如何添加字體。首先下載微軟雅黑字體。

?
1
2
3
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
pdfmetrics.registerFont(TTFont('msyh', 'Msyh.ttf'))

解決繪制中文文本問題?只要注冊的字體本身支持中文,就能繪制。canvas默認的字體是不支持中文的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#引入所需要的基本包
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
pdfmetrics.registerFont(TTFont('msyh', 'Msyh.ttf'))
#設置繪畫開始的位置
def hello(c):
 c.drawString(100, 100, "您好")
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#設置字體
c.setFont("msyh", 8)
#調用函數進行繪畫,并將canvas對象作為參數傳遞
hello(c)
#showPage函數:保存當前頁的canvas
c.showPage()
#save函數:保存文件并關閉canvas
c.save()

運行結果:

wxPython之解決閃爍的問題

獲取文本寬度

利用canvas的stringWidth方法獲取文本寬度。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#引入所需要的基本包
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
pdfmetrics.registerFont(TTFont('msyh', 'Msyh.ttf'))
#設置繪畫開始的位置
def hello(c):
 c.drawString(100, 100, "您好")
 width = c.stringWidth("您好")
 c.drawString(100, 120, "文本寬度:%f"%width)
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#設置字體
c.setFont("msyh", 8)
#調用函數進行繪畫,并將canvas對象作為參數傳遞
hello(c)
#showPage函數:保存當前頁的canvas
c.showPage()
#save函數:保存文件并關閉canvas
c.save()

運行結果:

wxPython之解決閃爍的問題

以上這篇wxPython之解決閃爍的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/webzhuce/article/details/72972809

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久三级免费电影 | 欧美亚洲另类在线 | 久久91久久| 国产亚洲精品视频中文字幕 | 成人啪啪18免费网站 | 在线视频a | 免费黄色小视频网站 | 无码av女优 | 久久99免费观看 | 免费观看国产精品视频 | 成人毛毛片 | 色综合久久久久久久久久久 | 在线无码 | www国产成人免费观看视频 | 日本精品中文字幕 | 中文字幕在线免费 | 久久精品网站视频 | 日本aaaa片毛片免费观蜜桃 | 日本成年免费网站 | 色吧久久| 色视频在线 | 成人精品一区二区三区中文字幕 | 亚洲视频成人 | 一本色道久久综合亚洲精品图片 | 精品黑人一区二区三区国语馆 | 国产精品久久久久久久久久久久久久久 | 午夜精品小视频 | 黄视频网站免费观看 | h视频免费看 | :国产精品成人一区二区三区 | 一级免费黄色免费片 | 午夜精品久久久久久中宇 | 欧美a在线看| 羞羞视频免费入口网站 | 黄色a级片视频 | av在线播放亚洲 | 红杏成人性视频免费看 | 色妇视频 | 黄色片在线观看网站 | 欧美在线观看视频一区 | 一级黄色国产视频 |