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

Python自動(dòng)化辦公之生成PDF報(bào)告詳解

 更新時(shí)間:2023年03月29日 10:47:49   作者:Sir?老王  
因?yàn)楣ぷ餍枰?jīng)常需要生成很多的PDF報(bào)告給客戶查看產(chǎn)品效果以及過(guò)程的講解,每次都需要按照一定的格式的編寫(xiě)文檔并生成PDF報(bào)告,這樣重復(fù)性的工作實(shí)在太累。本文就來(lái)用Python實(shí)現(xiàn)自動(dòng)生成PDF報(bào)告吧

因?yàn)楣ぷ餍枰?jīng)常需要生成很多的PDF報(bào)告給客戶查看產(chǎn)品效果以及過(guò)程的講解。

每次都需要按照一定的格式的編寫(xiě)文檔并生成PDF報(bào)告,這樣重復(fù)性的工作實(shí)在太累。

想著可以使用python生成一份給用戶看的報(bào)告,里面需要插入圖片、表格、文字說(shuō)明等等。

使用第三方的python非標(biāo)準(zhǔn)模塊reportlab就能滿足直接生成PDF報(bào)告的需要,由于是非標(biāo)準(zhǔn)庫(kù)需要使用pip的方式安裝一下該模塊。

使用pip安裝reportlab模塊,支持生成PDF文檔。

pip?install?reportlab?-i?https://pypi.tuna.tsinghua.edu.cn/simple

若是在安裝過(guò)程中出現(xiàn)缺失C++環(huán)境導(dǎo)致構(gòu)建失敗時(shí),可以直接選擇使用wheel文件的方式安裝reportlab模塊。

.whl文件的下載地址如下:https://www.lfd.uci.edu/~gohlke/pythonlibs/

下載完成之后存儲(chǔ)到本地磁盤,按照存放的路徑安裝reportLab模塊即可,安裝方式可以參考下面的安裝方式。

pip?install?wheel?-i?https://pypi.tuna.tsinghua.edu.cn/simple

pip?install?D:\downloads\reportlab-3.5.57-cp36-cp36m-win_amd64.whl

提前將reportlab模塊中需要使用到的python對(duì)象導(dǎo)入到當(dāng)前的代碼塊中。

from?reportlab.pdfbase?import?pdfmetrics??#?注冊(cè)字體
from?reportlab.pdfbase.ttfonts?import?TTFont??#?字體類
from?reportlab.platypus?import?Table,?SimpleDocTemplate,?Paragraph,?Image??#?報(bào)告內(nèi)容相關(guān)類
from?reportlab.lib.pagesizes?import?letter??#?頁(yè)面的標(biāo)志尺寸(8.5*inch,?11*inch)
from?reportlab.lib.styles?import?getSampleStyleSheet??#?文本樣式
from?reportlab.lib?import?colors??#?顏色模塊
from?reportlab.lib.units?import?cm??#?單位:cm

模塊導(dǎo)入完成之后,第一步需要設(shè)置PDF文檔中使用到的字體,字體可以根據(jù)自己的喜好自行設(shè)置。

#?Registering?a?font?named?'simfang'?with?the?file?'simfang.ttf'.
pdfmetrics.registerFont(TTFont('simfang',?'simfang.ttf'))

我這里選擇的字體是simfang.ttf,關(guān)于windows系統(tǒng)中的默認(rèn)字體可以下面的路徑中查看。

開(kāi)發(fā)業(yè)務(wù)代碼之前,我們可以將公共的部分提到最外面,這里使用getSampleStyleSheet函數(shù)將獲取到所有的樣式表后面在其他地方也可以使用。

#?Getting?a?list?of?styles?that?can?be?used?in?the?document.
style_list?=?getSampleStyleSheet()

1、插入PDF標(biāo)題

大標(biāo)題設(shè)置字體樣式對(duì)象為Heading1,字體顏色為綠色,大小為18并且加粗。

def?insert_full_title(title_name=None):
????"""
????This?function?takes?in?a?title?name?and?returns?the?full?title?name.

????:param?title_name:?The?name?of?the?title?you?want?to?insert
????"""
????font_?=?style_list['Heading1']
????font_.fontName?=?'simfang'
????font_.fontSize?=?18
????font_.leading?=?50
????font_.textColor?=?colors.green
????font_.alignment?=?1
????font_.bold?=?True
????return?Paragraph(title_name,?font_)

2、插入PDF小標(biāo)題

小標(biāo)題設(shè)置字體樣式對(duì)象為Normal,字體顏色為紅色,大小為15并且不加粗。

def?insert_lettle_title(lettle_name=None):
????"""
????:param?lettle_name:?The?name?of?the?lettle?you?want?to?insert
????"""
????font_?=?style_list['Normal']
????font_.fontName?=?'simfang'
????font_.fontSize?=?15
????font_.leading?=?30
????font_.textColor?=?colors.red
????return?Paragraph(lettle_name,?font_)

3、插入普通段落文本

普通文本設(shè)置字體樣式對(duì)象為Normal,字體顏色為默認(rèn),大小為12并且不加粗,開(kāi)啟自動(dòng)換行模式。

def?insert_text(text=None):
????"""
????>?This?function?inserts?text?into?the?current?document

????:param?text:?The?text?to?insert
????"""
????font_?=?style_list['Normal']
????font_.fontName?=?'simfang'
????font_.fontSize?=?12
????font_.wordWrap?=?'CJK'
????font_.alignment?=?0
????font_.firstLineIndent?=?32
????font_.leading?=?25
????return?Paragraph(text,?font_)

4、插入PDF圖片

將圖片插入到PDF文檔對(duì)象中比較簡(jiǎn)單,只需要設(shè)置需要插入圖片的本地路徑即可。

def?insert_image(image_path=None):
????"""
????>?This?function?inserts?an?image?into?the?notebook

????:param?image_path:?The?path?to?the?image?you?want?to?insert
????"""
????img?=?Image(image_path)
????img.drawWidth?=?5?*?cm
????img.drawHeight?=?8?*?cm
????return?img

5、插入PDF表格

插入表格時(shí),表格的格式可以根據(jù)自己的喜好設(shè)置表格的標(biāo)題、字體樣式、字體大小以及是否需要合并等參數(shù)來(lái)控制需要插入的表格對(duì)象。

def?insert_table(*args):
????"""
????It?inserts?a?table?into?the?database.
????"""
????col_width?=?120
????style?=?[
????????('FONTNAME',?(0,?0),?(-1,?-1),?'simfang'),??#?字體
????????('FONTSIZE',?(0,?0),?(-1,?0),?12),??#?第一行的字體大小
????????('FONTSIZE',?(0,?1),?(-1,?-1),?10),??#?第二行到最后一行的字體大小
????????('BACKGROUND',?(0,?0),?(-1,?0),?'#d5dae6'),??#?設(shè)置第一行背景顏色
????????('ALIGN',?(0,?0),?(-1,?-1),?'CENTER'),??#?第一行水平居中
????????('ALIGN',?(0,?1),?(-1,?-1),?'LEFT'),??#?第二行到最后一行左右左對(duì)齊
????????('VALIGN',?(0,?0),?(-1,?-1),?'MIDDLE'),??#?所有表格上下居中對(duì)齊
????????('TEXTCOLOR',?(0,?0),?(-1,?-1),?colors.darkslategray),??#?設(shè)置表格內(nèi)文字顏色
????????('GRID',?(0,?0),?(-1,?-1),?0.5,?colors.grey),??#?設(shè)置表格框線為grey色,線寬為0.5
????]
????table?=?Table(args,?colWidths=col_width,?style=style)
????return?table

上述就是PDF文檔中常用的對(duì)象,最后通過(guò)添加對(duì)應(yīng)的內(nèi)容參數(shù)即可生成PDF文檔并保存到本地磁盤當(dāng)中。

#?A?special?variable?in?Python?that?evaluates?to?`True`?if?the?module?is?being?run?as?the?main?program.
if?__name__?==?'__main__':
????pdf_?=?list()

????pdf_.append(insert_full_title('數(shù)據(jù)測(cè)試報(bào)告'))
????pdf_.append(insert_text(
????????'Python 是一門編程語(yǔ)言。?您可以在服務(wù)器上使用 Python 來(lái)創(chuàng)建 Web 應(yīng)用程序。通過(guò)實(shí)例學(xué)習(xí)?我們的 TIY 編輯器使學(xué)習(xí) Python 變得簡(jiǎn)單,它能夠同時(shí)顯示代碼和結(jié)果。?'))
????pdf_.append(insert_image('./excle源數(shù)據(jù).png'))
????pdf_.append(insert_lettle_title('數(shù)據(jù)內(nèi)容展示:'))
????data?=?[
????????('職位名稱',?'平均薪資',?'較上年增長(zhǎng)率'),
????????('數(shù)據(jù)分析師',?'18.5K',?'25%'),
????????('高級(jí)數(shù)據(jù)分析師',?'25.5K',?'14%'),
????????('資深數(shù)據(jù)分析師',?'29.3K',?'10%')
????]
????pdf_.append(insert_table(*data))

????doc?=?SimpleDocTemplate('測(cè)試報(bào)告.pdf',?pagesize=letter)
????doc.build(pdf_)

到此這篇關(guān)于Python自動(dòng)化辦公之生成PDF報(bào)告詳解的文章就介紹到這了,更多相關(guān)Python生成PDF報(bào)告內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pygame實(shí)戰(zhàn)之實(shí)現(xiàn)扎氣球游戲

    Pygame實(shí)戰(zhàn)之實(shí)現(xiàn)扎氣球游戲

    這篇文章主要為大家介紹了利用Python中的Pygame模塊實(shí)現(xiàn)的一個(gè)扎氣球游戲,文中的示例代碼講解詳細(xì),對(duì)我們了解Pygame模塊有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2021-12-12
  • Python學(xué)習(xí)筆記之json模塊和pickle模塊

    Python學(xué)習(xí)筆記之json模塊和pickle模塊

    json和pickle模塊是將數(shù)據(jù)進(jìn)行序列化處理,并進(jìn)行網(wǎng)絡(luò)傳輸或存入硬盤,下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)筆記之json模塊和pickle模塊的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • python 實(shí)現(xiàn)兩個(gè)線程交替執(zhí)行

    python 實(shí)現(xiàn)兩個(gè)線程交替執(zhí)行

    這篇文章主要介紹了python 實(shí)現(xiàn)兩個(gè)線程交替執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python一鍵生成核酸檢測(cè)日歷的操作代碼

    Python一鍵生成核酸檢測(cè)日歷的操作代碼

    這篇文章主要介紹了Python一鍵生成核酸檢測(cè)日歷,本文以深圳為例,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Python?第三方庫(kù)?openpyxl?的安裝過(guò)程

    Python?第三方庫(kù)?openpyxl?的安裝過(guò)程

    這篇文章主要介紹了Python?高效辦公第三方庫(kù)?openpyxl?的安裝,本文介紹了什么是庫(kù)及庫(kù)的分類,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • python opencv進(jìn)行圖像拼接

    python opencv進(jìn)行圖像拼接

    這篇文章主要為大家詳細(xì)介紹了python opencv進(jìn)行圖像拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法總結(jié)【7種方法】

    Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法總結(jié)【7種方法】

    今天小編就為大家分享一篇關(guān)于Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法總結(jié)【7種方法】,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Python 中使用 argparse 解析命令行參數(shù)

    Python 中使用 argparse 解析命令行參數(shù)

    這篇文章主要介紹了Python 中使用 argparse 解析命令行參數(shù),argparse 模塊是一個(gè)強(qiáng)大的命令行參數(shù)解析器,還有很多功能沒(méi)能在這里介紹。下面文化在哪個(gè)詳細(xì)介紹該內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • python django使用haystack:全文檢索的框架(實(shí)例講解)

    python django使用haystack:全文檢索的框架(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇python django使用haystack:全文檢索的框架(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Python基于當(dāng)前時(shí)間批量創(chuàng)建文件

    Python基于當(dāng)前時(shí)間批量創(chuàng)建文件

    這篇文章主要介紹了Python基于當(dāng)前時(shí)間批量創(chuàng)建文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評(píng)論

财经| 武安市| 达尔| 吉首市| 门头沟区| 盐边县| 庄浪县| 奉新县| 鹤壁市| 政和县| 鞍山市| 鞍山市| 高雄市| 买车| 鹤庆县| 新安县| 满洲里市| 阿拉尔市| 满城县| 张掖市| 呼伦贝尔市| 岳阳市| 芦溪县| 广南县| 平度市| 吕梁市| 类乌齐县| 岳池县| 达尔| 晋江市| 平和县| 平果县| 天等县| 读书| 仙居县| 札达县| 阿拉善左旗| 太白县| 浑源县| 南安市| 故城县|