在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

reportlab如何輸入Python的第三方庫(kù)

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 作者:馬哥Linux運(yùn)維 ? 2022-08-08 10:35 ? 次閱讀

reportlab是Python的一個(gè)標(biāo)準(zhǔn)庫(kù),可以畫(huà)圖、畫(huà)表格、編輯文字,最后可以輸出PDF格式。它的邏輯和編輯一個(gè)word文檔或者PPT很像。有兩種方法:

1)建立一個(gè)空白文檔,然后在上面寫(xiě)文字、畫(huà)圖等;

2)建立一個(gè)空白list,以填充表格的形式插入各種文本框、圖片等,最后生成PDF文檔。

因?yàn)樾枰a(chǎn)生一份給用戶看的報(bào)告,里面需要插入圖片、表格等,所以采用的是第二種方法。

安裝第三方庫(kù)

reportlab輸入Python的第三方庫(kù),使用前需要先安裝:pip install reportlab

模塊導(dǎo)入

提前導(dǎo)入相關(guān)內(nèi)容,并且注冊(cè)字體。(注冊(cè)字體前需要先準(zhǔn)備好字體文件)

fromreportlab.pdfbaseimportpdfmetrics#注冊(cè)字體
fromreportlab.pdfbase.ttfontsimportTTFont#字體類
fromreportlab.platypusimportTable,SimpleDocTemplate,Paragraph,Image#報(bào)告內(nèi)容相關(guān)類
fromreportlab.lib.pagesizesimportletter#頁(yè)面的標(biāo)志尺寸(8.5*inch,11*inch)
fromreportlab.lib.stylesimportgetSampleStyleSheet#文本樣式
fromreportlab.libimportcolors#顏色模塊
fromreportlab.graphics.charts.barchartsimportVerticalBarChart#圖表類
fromreportlab.graphics.charts.legendsimportLegend#圖例類
fromreportlab.graphics.shapesimportDrawing#繪圖工具
fromreportlab.lib.unitsimportcm#單位:cm

#注冊(cè)字體(提前準(zhǔn)備好字體文件,如果同一個(gè)文件需要多種字體可以注冊(cè)多個(gè))
pdfmetrics.registerFont(TTFont('SimSun','SimSun.ttf'))

封裝不同內(nèi)容對(duì)應(yīng)的函數(shù)

創(chuàng)建一個(gè)Graphs類,通過(guò)不同的靜態(tài)方法提供不同的報(bào)告內(nèi)容,包括:標(biāo)題、普通段落、圖片、表格和圖表。函數(shù)中的相關(guān)數(shù)據(jù)目前絕大多數(shù)都是固定值,可以根據(jù)情況自行設(shè)置成相關(guān)參數(shù)

classGraphs:
#繪制標(biāo)題
@staticmethod
defdraw_title(title:str):
#獲取所有樣式表
style=getSampleStyleSheet()
#拿到標(biāo)題樣式
ct=style['Heading1']
#單獨(dú)設(shè)置樣式相關(guān)屬性
ct.fontName='SimSun'#字體名
ct.fontSize=18#字體大小
ct.leading=50#行間距
ct.textColor=colors.green#字體顏色
ct.alignment=1#居中
ct.bold=True
#創(chuàng)建標(biāo)題對(duì)應(yīng)的段落,并且返回
returnParagraph(title,ct)

#繪制小標(biāo)題
@staticmethod
defdraw_little_title(title:str):
#獲取所有樣式表
style=getSampleStyleSheet()
#拿到標(biāo)題樣式
ct=style['Normal']
#單獨(dú)設(shè)置樣式相關(guān)屬性
ct.fontName='SimSun'#字體名
ct.fontSize=15#字體大小
ct.leading=30#行間距
ct.textColor=colors.red#字體顏色
#創(chuàng)建標(biāo)題對(duì)應(yīng)的段落,并且返回
returnParagraph(title,ct)

#繪制普通段落內(nèi)容
@staticmethod
defdraw_text(text:str):
#獲取所有樣式表
style=getSampleStyleSheet()
#獲取普通樣式
ct=style['Normal']
ct.fontName='SimSun'
ct.fontSize=12
ct.wordWrap='CJK'#設(shè)置自動(dòng)換行
ct.alignment=0#左對(duì)齊
ct.firstLineIndent=32#第一行開(kāi)頭空格
ct.leading=25
returnParagraph(text,ct)

#繪制表格
@staticmethod
defdraw_table(*args):
#列寬度
col_width=120
style=[
('FONTNAME',(0,0),(-1,-1),'SimSun'),#字體
('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
#('SPAN',(0,1),(0,2)),#合并第一列二三行
#('SPAN',(0,3),(0,4)),#合并第一列三四行
#('SPAN',(0,5),(0,6)),#合并第一列五六行
#('SPAN',(0,7),(0,8)),#合并第一列五六行
]
table=Table(args,colWidths=col_width,style=style)
returntable

#創(chuàng)建圖表
@staticmethod
defdraw_bar(bar_data:list,ax:list,items:list):
drawing=Drawing(500,250)
bc=VerticalBarChart()
bc.x=45#整個(gè)圖表的x坐標(biāo)
bc.y=45#整個(gè)圖表的y坐標(biāo)
bc.height=200#圖表的高度
bc.width=350#圖表的寬度
bc.data=bar_data
bc.strokeColor=colors.black#頂部和右邊軸線的顏色
bc.valueAxis.valueMin=5000#設(shè)置y坐標(biāo)的最小值
bc.valueAxis.valueMax=26000#設(shè)置y坐標(biāo)的最大值
bc.valueAxis.valueStep=2000#設(shè)置y坐標(biāo)的步長(zhǎng)
bc.categoryAxis.labels.dx=2
bc.categoryAxis.labels.dy=-8
bc.categoryAxis.labels.angle=20
bc.categoryAxis.categoryNames=ax

#圖示
leg=Legend()
leg.fontName='SimSun'
leg.alignment='right'
leg.boxAnchor='ne'
leg.x=475#圖例的x坐標(biāo)
leg.y=240
leg.dxTextSpace=10
leg.columnMaximum=3
leg.colorNamePairs=items
drawing.add(leg)
drawing.add(bc)
returndrawing

#繪制圖片
@staticmethod
defdraw_img(path):
img=Image(path)#讀取指定路徑下的圖片
img.drawWidth=5*cm#設(shè)置圖片的寬度
img.drawHeight=8*cm#設(shè)置圖片的高度
returnimg

生成報(bào)告

if__name__=='__main__':
#創(chuàng)建內(nèi)容對(duì)應(yīng)的空列表
content=list()

#添加標(biāo)題
content.append(Graphs.draw_title('數(shù)據(jù)分析就業(yè)薪資'))

#添加圖片
content.append(Graphs.draw_img('抗疫必勝.png'))

#添加段落文字
content.append(Graphs.draw_text('眾所周知,大數(shù)據(jù)分析師崗位是香餑餑,近幾年數(shù)據(jù)分析熱席卷了整個(gè)互聯(lián)網(wǎng)行業(yè),與數(shù)據(jù)分析的相關(guān)的崗位招聘、培訓(xùn)數(shù)不勝數(shù)。很多人前赴后繼,想要參與到這波紅利當(dāng)中。那么數(shù)據(jù)分析師就業(yè)前景到底怎么樣呢?'))
#添加小標(biāo)題
content.append(Graphs.draw_title(''))
content.append(Graphs.draw_little_title('不同級(jí)別的平均薪資'))
#添加表格
data=[
('職位名稱','平均薪資','較上年增長(zhǎng)率'),
('數(shù)據(jù)分析師','18.5K','25%'),
('高級(jí)數(shù)據(jù)分析師','25.5K','14%'),
('資深數(shù)據(jù)分析師','29.3K','10%')
]
content.append(Graphs.draw_table(*data))

#生成圖表
content.append(Graphs.draw_title(''))
content.append(Graphs.draw_little_title('熱門(mén)城市的就業(yè)情況'))
b_data=[(25400,12900,20100,20300,20300,17400),(15800,9700,12982,9283,13900,7623)]
ax_data=['BeiJing','ChengDu','ShenZhen','ShangHai','HangZhou','NanJing']
leg_items=[(colors.red,'平均薪資'),(colors.green,'招聘量')]
content.append(Graphs.draw_bar(b_data,ax_data,leg_items))

#生成pdf文件
doc=SimpleDocTemplate('report.pdf',pagesize=letter)
doc.build(content)

生成報(bào)告的結(jié)果如下:

aa37216a-1593-11ed-ba43-dac502259ad0.png

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4344

    瀏覽量

    62820
  • PDF
    PDF
    +關(guān)注

    關(guān)注

    1

    文章

    169

    瀏覽量

    33751
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4802

    瀏覽量

    84890

原文標(biāo)題:Python生成圖文并茂的PDF報(bào)告

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    EE-303:將VisualDSP線程安全庫(kù)第三方RTOS配合使用

    電子發(fā)燒友網(wǎng)站提供《EE-303:將VisualDSP線程安全庫(kù)第三方RTOS配合使用.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:09 ?0次下載
    EE-303:將VisualDSP線程安全<b class='flag-5'>庫(kù)</b>與<b class='flag-5'>第三方</b>RTOS配合使用

    第三方檢測(cè)機(jī)構(gòu)該如何提升核心競(jìng)爭(zhēng)力?

    在國(guó)家“一帶一路”和“智能制造2025”等政策的引領(lǐng)下,面對(duì)競(jìng)爭(zhēng)日益激烈的國(guó)際環(huán)境,作為全球最大的制造業(yè)國(guó)家,中國(guó)的檢測(cè)行業(yè)正經(jīng)歷著迅猛的發(fā)展,成為全球增長(zhǎng)最快、潛力最大的市場(chǎng)之一。 第三方檢測(cè)逐漸
    的頭像 發(fā)表于 12-17 15:44 ?196次閱讀
    <b class='flag-5'>第三方</b>檢測(cè)機(jī)構(gòu)該如何提升核心競(jìng)爭(zhēng)力?

    鴻蒙Flutter實(shí)戰(zhàn):05-使用第三方插件

    使用的第三方插件,其底層以的庫(kù)沒(méi)有適配鴻蒙,則需要通過(guò)overrider配置其鴻蒙化的替代插件,否則會(huì)在運(yùn)行時(shí)報(bào)錯(cuò)。如下面所示: ```yaml dependency_overrides: # ohos
    發(fā)表于 10-22 21:54

    瑞芯微RK3566鴻蒙開(kāi)發(fā)板Android11修改第三方輸入法為默認(rèn)輸入

    本文適用于觸覺(jué)智能所有支持Android11系統(tǒng)的開(kāi)發(fā)板修改第三方輸入法為默認(rèn)輸入法。本次使用的是觸覺(jué)智能的Purple Pi OH鴻蒙開(kāi)源主板,搭載了瑞芯微RK3566芯片,類樹(shù)莓派設(shè)計(jì),是Laval官方社區(qū)主薦的一款鴻蒙開(kāi)發(fā)
    的頭像 發(fā)表于 09-24 09:43 ?495次閱讀
    瑞芯微RK3566鴻蒙開(kāi)發(fā)板Android11修改<b class='flag-5'>第三方</b><b class='flag-5'>輸入</b>法為默認(rèn)<b class='flag-5'>輸入</b>法

    維天地低代碼開(kāi)發(fā)平臺(tái)助力第三方質(zhì)檢行業(yè)數(shù)據(jù)可視化

    第三方檢驗(yàn)是由獨(dú)立于買賣雙方利益之外的第三方機(jī)構(gòu)(例如專業(yè)的監(jiān)督檢驗(yàn)機(jī)構(gòu))執(zhí)行的,這些機(jī)構(gòu)以公正、公平、權(quán)威的非當(dāng)事人身份,依據(jù)雙方共同認(rèn)可的法律、標(biāo)準(zhǔn)和合同等進(jìn)行商品的符合性檢驗(yàn)和認(rèn)證活動(dòng)
    的頭像 發(fā)表于 08-09 13:59 ?301次閱讀
    <b class='flag-5'>三</b>維天地低代碼開(kāi)發(fā)平臺(tái)助力<b class='flag-5'>第三方</b>質(zhì)檢行業(yè)數(shù)據(jù)可視化

    請(qǐng)問(wèn)esp8266會(huì)開(kāi)放使用第三方云服務(wù)器嗎?

    如題,esp8266會(huì)開(kāi)放使用第三方云服務(wù)器嗎,如百度,阿里云服務(wù)器?
    發(fā)表于 07-12 11:40

    是否有可能在支持gdb的第三方集成開(kāi)發(fā)環(huán)境中使用DAS配置調(diào)試?

    是否有可能在支持 gdb 的第三方集成開(kāi)發(fā)環(huán)境中使用 DAS 配置調(diào)試?
    發(fā)表于 07-02 07:29

    微軟或?qū)㈤_(kāi)放Xbox主機(jī)授權(quán)給第三方廠商

    據(jù)悉,5 月 26 日,知名媒體 Windows Central 的編輯 Jez Corden 揭露了微軟即將遵循第三方手柄流程,允許在其 XBOX 主機(jī)上引入第三方產(chǎn)品。
    的頭像 發(fā)表于 05-27 15:18 ?681次閱讀

    MacPaw將在歐盟成員國(guó)推出第三方應(yīng)用商店Setapp

    5月14日,MacPaw正式宣布將在今年5月14日在歐盟成員國(guó)面向蘋(píng)果iPhone推出第三方應(yīng)用商城Setapp。自今年2月起,MacPaw已著手籌備該平臺(tái)。S
    的頭像 發(fā)表于 05-14 10:14 ?397次閱讀

    谷歌開(kāi)放ZenDeviceEffects API,助第三方應(yīng)用實(shí)現(xiàn)睡前屏幕管理

    據(jù)報(bào)道,谷歌近日在安卓 15 開(kāi)發(fā)者預(yù)覽版 2 中推出了全新 ZenDeviceEffects API,允許第三方應(yīng)用訪問(wèn)數(shù)字健康的就寢模式功能。
    的頭像 發(fā)表于 05-08 16:41 ?507次閱讀

    Labview如何內(nèi)嵌操作第三方EXE程序!

    自己在網(wǎng)上搜了下相關(guān)資料,能把第三方EXE內(nèi)嵌進(jìn)入容器里,但是有個(gè)問(wèn)題,這個(gè)第三方軟件必須手動(dòng)拖到容器正中間,手動(dòng)最大化。請(qǐng)問(wèn)有什么方法可以自動(dòng)實(shí)現(xiàn)嗎? 下圖是我內(nèi)嵌的POLL 軟件。如圖!
    發(fā)表于 04-18 14:26

    鴻蒙OS開(kāi)發(fā)學(xué)習(xí):【第三方庫(kù)調(diào)用】

    在Stage模型中,如何調(diào)用已經(jīng)上架到[三方庫(kù)中心]的社區(qū)庫(kù)和項(xiàng)目?jī)?nèi)創(chuàng)建的本地庫(kù)
    的頭像 發(fā)表于 04-14 11:34 ?943次閱讀
    鴻蒙OS開(kāi)發(fā)學(xué)習(xí):【<b class='flag-5'>第三方</b><b class='flag-5'>庫(kù)</b>調(diào)用】

    微軟或?qū)⒁?b class='flag-5'>第三方數(shù)字游戲商店至Xbox平臺(tái)

    微軟選擇引入這些第三方游戲平臺(tái),一面可以增加自身?yè)碛械挠布Y源和服務(wù)優(yōu)勢(shì);另一面,也是為了吸引那些在電腦端能夠自由選擇游戲購(gòu)買渠道的游戲用戶。據(jù)悉,此前的Xbox系列產(chǎn)品都是只內(nèi)置自家的商城。
    的頭像 發(fā)表于 03-27 15:51 ?512次閱讀

    Meta Quest頭顯將支持多款安卓第三方應(yīng)用并行

    Meta已悄然啟動(dòng)了與此相關(guān)的功能,意味著Quest頭顯可同時(shí)操作多個(gè)第三方Android應(yīng)用。在此之前,Quest對(duì)第三方Android應(yīng)用有嚴(yán)格限制,用戶每次僅能打開(kāi)一個(gè),無(wú)法實(shí)現(xiàn)同屏幕并行多個(gè)第三方應(yīng)用進(jìn)程。
    的頭像 發(fā)表于 03-11 10:58 ?785次閱讀

    蘋(píng)果iOS 17.4版允許歐盟地區(qū)用戶使用第三方應(yīng)用商店下載應(yīng)用

    3月6日,蘋(píng)果正式推出iOS 17.4版本,首次符合歐州《數(shù)字市場(chǎng)法》規(guī)定,引入“第三方應(yīng)用商店”選項(xiàng),讓iPhone用戶能從非App Store處下載應(yīng)用程序。
    的頭像 發(fā)表于 03-06 10:51 ?925次閱讀
    主站蜘蛛池模板: 一区二区免费播放| 激情文学综合网| 18性夜影院午夜寂寞影院免费| 日韩黄网| 亚洲日本中文字幕天天更新| 午夜影视免费| 视频在线观看高清免费看| 艹逼免费视频| 夜夜草天天干| 波多野结衣在线观看一区| ww免费视频| 天天夜夜操| 午夜在线播放视频在线观看视频| 午夜免费啪视频观看网站 | 怡红院亚洲怡红院首页| semm亚洲欧美在线高清| 国产综合第一页在线视频| 天天综合亚洲国产色| 欧美黑人换爱交换乱理伦片| 亚洲精品日韩专区silk| 日本视频三区| 亚洲一区欧美二区| aaa一区二区三区| 手机在线色| 狠狠躁夜夜躁人人躁婷婷视频| 女人张腿让男桶免费视频网站| 日韩精品无码一区二区三区| 玖玖国产| 亚洲免费黄色网址| 国产精品资源网站在线观看| 久热精品在线视频| xxxx黄色| 婷婷深爱五月| 狠狠色视频| 日本丰满毛茸茸熟妇| 操她视频网站| 亚洲人成电影在线| 美脚连裤袜老师正在播放| 香蕉视频在线观看国产| 2018天天干天天操| 伊人久久成人成综合网222|