亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

wxPython之解決閃爍的問(wèn)題

 更新時(shí)間:2018年01月15日 14:57:36   作者:阿Bin先生  
下面小編就為大家分享一篇wxPython之解決閃爍的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

利用Python生成PDF文件時(shí),對(duì)比了fpdf和reportlab兩個(gè)庫(kù)。fpdf最新更新還是2015年,

另外reportlab的資料網(wǎng)上更多一些。所以選擇使用reportlab。

pdfgen

pdfgen包是生成PDF文檔最底層的接口。一個(gè)pdfgen編程實(shí)質(zhì)是一系列將一個(gè)文檔繪制到連續(xù)頁(yè)面上的操作指南。提供繪制操作的接口對(duì)象是pdfgen canvas。

canvas應(yīng)該被認(rèn)為一張白紙,上面的點(diǎn)用笛卡爾坐標(biāo)來(lái)標(biāo)記。默認(rèn)頁(yè)面的左下角為原點(diǎn)(0,0),此外x軸向右,y軸向上。

示意圖如下:   

繪制文本

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

#引入所需要的基本包
from reportlab.pdfgen import canvas
#設(shè)置繪畫開(kāi)始的位置
def hello(c):
 c.drawString(100, 100, "hello world!")
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#調(diào)用函數(shù)進(jìn)行繪畫,并將canvas對(duì)象作為參數(shù)傳遞
hello(c)
#showPage函數(shù):保存當(dāng)前頁(yè)的canvas
c.showPage()
#save函數(shù):保存文件并關(guān)閉canvas
c.save()

運(yùn)行結(jié)果:

canvas.Canvas構(gòu)造函數(shù)

def __init__(self,filename,
   pagesize=(595.27,841.89),
   bottomup = 1,
   pageCompression=0,
   encoding=rl_config.defaultEncoding,
   verbosity=0
   encrypt=None):

其中:

filename:PDF文件名

pagesize:兩個(gè)數(shù)字的元組。canvas頁(yè)面大小默認(rèn)是A4(國(guó)際標(biāo)準(zhǔn)紙張大?。?,A4不同于美國(guó)標(biāo)準(zhǔn)紙張大小letter。大多數(shù)紙張大小在reportlab.lib.pagesizes。例如:

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

bottomup :目前是廢棄的

pageCompression:決定每頁(yè)P(yáng)DF操作流是否被壓縮。默認(rèn)設(shè)為0,不壓縮。因?yàn)閴嚎s會(huì)減慢文件生成過(guò)程。如果每頁(yè)有大量文本和矢量圖形,設(shè)置pageCompression = 1來(lái)壓縮節(jié)省空間。

encoding:決定字體編碼,默認(rèn)值就很好了。

verbosity:決定多長(zhǎng)信息被打印。

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

添加字體

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

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

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

#引入所需要的基本包
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont 
pdfmetrics.registerFont(TTFont('msyh', 'Msyh.ttf')) 
#設(shè)置繪畫開(kāi)始的位置
def hello(c):
 c.drawString(100, 100, "您好")
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#設(shè)置字體
c.setFont("msyh", 8)
#調(diào)用函數(shù)進(jìn)行繪畫,并將canvas對(duì)象作為參數(shù)傳遞
hello(c)
#showPage函數(shù):保存當(dāng)前頁(yè)的canvas
c.showPage()
#save函數(shù):保存文件并關(guān)閉canvas
c.save()

運(yùn)行結(jié)果:

獲取文本寬度

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

#引入所需要的基本包
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont 
pdfmetrics.registerFont(TTFont('msyh', 'Msyh.ttf')) 
#設(shè)置繪畫開(kāi)始的位置
def hello(c):
 c.drawString(100, 100, "您好")
 width = c.stringWidth("您好")
 c.drawString(100, 120, "文本寬度:%f"%width)
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#設(shè)置字體
c.setFont("msyh", 8)
#調(diào)用函數(shù)進(jìn)行繪畫,并將canvas對(duì)象作為參數(shù)傳遞
hello(c)
#showPage函數(shù):保存當(dāng)前頁(yè)的canvas
c.showPage()
#save函數(shù):保存文件并關(guān)閉canvas
c.save()

運(yùn)行結(jié)果:

以上這篇wxPython之解決閃爍的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用CRC32實(shí)現(xiàn)校驗(yàn)文件

    Python使用CRC32實(shí)現(xiàn)校驗(yàn)文件

    CRC文件校驗(yàn)是一種用于驗(yàn)證文件完整性的方法,通過(guò)計(jì)算文件的CRC值并與預(yù)先計(jì)算的CRC校驗(yàn)值進(jìn)行比較,來(lái)判斷文件是否發(fā)生變化,本文我們就來(lái)介紹一下Python如何利用CRC32實(shí)現(xiàn)校驗(yàn)文件吧
    2023-10-10
  • 如何使用python寫截屏小工具

    如何使用python寫截屏小工具

    這篇文章主要介紹了如何使用python寫截屏小工具,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 淺析pandas隨機(jī)排列與隨機(jī)抽樣

    淺析pandas隨機(jī)排列與隨機(jī)抽樣

    這篇文章主要介紹了pandas隨機(jī)排列與隨機(jī)抽樣的相關(guān)資料,幫助大家更好的利用pandas進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2021-01-01
  • python使用webdriver爬取微信公眾號(hào)

    python使用webdriver爬取微信公眾號(hào)

    這篇文章主要為大家詳細(xì)介紹了python使用webdriver爬取微信公眾號(hào)信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 基于Django的Admin后臺(tái)實(shí)現(xiàn)定制簡(jiǎn)單監(jiān)控頁(yè)

    基于Django的Admin后臺(tái)實(shí)現(xiàn)定制簡(jiǎn)單監(jiān)控頁(yè)

    Django自帶的后臺(tái)管理是Django明顯特色之一,可以讓我們快速便捷管理數(shù)據(jù)。后臺(tái)管理可以在各個(gè)app的admin.py文件中進(jìn)行控制。本文將主要介紹如何利用Admin后臺(tái)實(shí)現(xiàn)監(jiān)控頁(yè)的定制,快來(lái)和小編一起學(xué)習(xí)一下吧
    2021-12-12
  • Python?opencv進(jìn)行圓形識(shí)別(圓檢測(cè))實(shí)例代碼

    Python?opencv進(jìn)行圓形識(shí)別(圓檢測(cè))實(shí)例代碼

    最近工作的項(xiàng)目上需要檢測(cè)圖像中是否有圓形,下面這篇文章主要給大家介紹了關(guān)于Python?opencv進(jìn)行圓形識(shí)別(圓檢測(cè))的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 詳解Python如何巧妙實(shí)現(xiàn)數(shù)學(xué)階乘n!

    詳解Python如何巧妙實(shí)現(xiàn)數(shù)學(xué)階乘n!

    一個(gè)正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫作n!,本文就給大家介紹如何使用python和第三方庫(kù)來(lái)實(shí)現(xiàn)數(shù)學(xué)運(yùn)算中的階乘以及階乘累計(jì)求和
    2023-03-03
  • Python GUI學(xué)習(xí)之登錄系統(tǒng)界面篇

    Python GUI學(xué)習(xí)之登錄系統(tǒng)界面篇

    這篇文章主要介紹了Python GUI學(xué)習(xí)之登錄系統(tǒng)界面篇,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 使用Python3 編寫簡(jiǎn)單信用卡管理程序

    使用Python3 編寫簡(jiǎn)單信用卡管理程序

    這篇文章主要介紹了使用Python3 編寫簡(jiǎn)單信用卡管理程序的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-12-12
  • 詳解Django admin高級(jí)用法

    詳解Django admin高級(jí)用法

    這篇文章主要介紹了Django admin高級(jí)用法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論