最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

wxPython之解決閃爍的問題

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

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

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

pdfgen

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

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

示意圖如下:   

繪制文本

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

#引入所需要的基本包
from reportlab.pdfgen import canvas
#設(shè)置繪畫開始的位置
def hello(c):
 c.drawString(100, 100, "hello world!")
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#調(diào)用函數(shù)進(jìn)行繪畫,并將canvas對象作為參數(shù)傳遞
hello(c)
#showPage函數(shù):保存當(dāng)前頁的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頁面大小默認(rèn)是A4(國際標(biāo)準(zhǔn)紙張大?。珹4不同于美國標(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:決定每頁P(yáng)DF操作流是否被壓縮。默認(rèn)設(shè)為0,不壓縮。因?yàn)閴嚎s會減慢文件生成過程。如果每頁有大量文本和矢量圖形,設(shè)置pageCompression = 1來壓縮節(jié)省空間。

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

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

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

添加字體

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

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

解決繪制中文文本問題?只要注冊的字體本身支持中文,就能繪制。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è)置繪畫開始的位置
def hello(c):
 c.drawString(100, 100, "您好")
#定義要生成的pdf的名稱
c=canvas.Canvas("hello.pdf")
#設(shè)置字體
c.setFont("msyh", 8)
#調(diào)用函數(shù)進(jìn)行繪畫,并將canvas對象作為參數(shù)傳遞
hello(c)
#showPage函數(shù):保存當(dāng)前頁的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è)置繪畫開始的位置
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對象作為參數(shù)傳遞
hello(c)
#showPage函數(shù):保存當(dāng)前頁的canvas
c.showPage()
#save函數(shù):保存文件并關(guān)閉canvas
c.save()

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

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

相關(guān)文章

  • Python異常處理:try、except、else、finally的全面解析

    Python異常處理:try、except、else、finally的全面解析

    在Python中,異常是程序在運(yùn)行時(shí)發(fā)生的錯(cuò)誤,當(dāng)Python解釋器遇到一個(gè)它不能處理的錯(cuò)誤時(shí),它會拋出一個(gè)異常,異常處理的主要目的是在程序遇到錯(cuò)誤時(shí),提供一種方法來處理這些錯(cuò)誤,而不是簡單地讓程序崩潰,本文介紹了Python異常處理:try、except、else、finally的全面解析
    2024-07-07
  • python求前n個(gè)階乘的和實(shí)例

    python求前n個(gè)階乘的和實(shí)例

    這篇文章主要介紹了python求前n個(gè)階乘的和實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 詳解Python3遷移接口變化采坑記

    詳解Python3遷移接口變化采坑記

    這篇文章主要介紹了詳解Python3遷移接口變化采坑記,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python如何在windows環(huán)境安裝pip及rarfile

    Python如何在windows環(huán)境安裝pip及rarfile

    這篇文章主要介紹了Python如何在windows環(huán)境安裝pip及rarfile,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python數(shù)據(jù)預(yù)處理 :樣本分布不均的解決(過采樣和欠采樣)

    python數(shù)據(jù)預(yù)處理 :樣本分布不均的解決(過采樣和欠采樣)

    今天小編就為大家分享一篇python數(shù)據(jù)預(yù)處理 :樣本分布不均的解決(過采樣和欠采樣),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中請不要再用re.compile了

    Python中請不要再用re.compile了

    這篇文章主要給大家介紹了關(guān)于Python中為何不要再用re.compile的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python一文入門Flask?Blueprint?SQLAlchemy部分詳解

    Python一文入門Flask?Blueprint?SQLAlchemy部分詳解

    這篇文章主要為大家介紹了Python一文入門Flask?Blueprint?SQLAlchemy部分詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • python Matplotlib畫圖之調(diào)整字體大小的示例

    python Matplotlib畫圖之調(diào)整字體大小的示例

    本篇文章主要介紹了python Matplotlib畫圖之調(diào)整字體大小的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python使用GitPython操作Git版本庫的方法

    Python使用GitPython操作Git版本庫的方法

    這篇文章主要介紹了Python使用GitPython操作Git版本庫的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • numpy多項(xiàng)式擬合函數(shù)polyfit的使用方法代碼

    numpy多項(xiàng)式擬合函數(shù)polyfit的使用方法代碼

    這篇文章主要給大家介紹了關(guān)于numpy多項(xiàng)式擬合函數(shù)polyfit的使用方法,np.polyfit是Numpy庫中的一個(gè)函數(shù),用于在最小二乘意義下擬合多項(xiàng)式曲線到數(shù)據(jù)點(diǎn)集,需要的朋友可以參考下
    2024-01-01

最新評論

云龙县| 吉木萨尔县| 福建省| 武汉市| 巴塘县| 九寨沟县| 招远市| 西乌珠穆沁旗| 泸定县| 微博| 东丽区| 新密市| 资兴市| 上饶市| 泽州县| 彭水| 莫力| 彭阳县| 读书| 霍城县| 丁青县| 道真| 郑州市| 香港| 启东市| 大港区| 江西省| 葵青区| 当雄县| 通化县| 紫金县| 天柱县| 锡林郭勒盟| 康乐县| 科技| 涪陵区| 阿城市| 客服| 阿图什市| 上犹县| 樟树市|