chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(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)生一份給用戶(hù)看的報(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#字體類(lèi)
fromreportlab.platypusimportTable,SimpleDocTemplate,Paragraph,Image#報(bào)告內(nèi)容相關(guān)類(lèi)
fromreportlab.lib.pagesizesimportletter#頁(yè)面的標(biāo)志尺寸(8.5*inch,11*inch)
fromreportlab.lib.stylesimportgetSampleStyleSheet#文本樣式
fromreportlab.libimportcolors#顏色模塊
fromreportlab.graphics.charts.barchartsimportVerticalBarChart#圖表類(lèi)
fromreportlab.graphics.charts.legendsimportLegend#圖例類(lèi)
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類(lèi),通過(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è)置表格框線(xiàn)為grey色,線(xiàn)寬為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#頂部和右邊軸線(xiàn)的顏色
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=[
('職位名稱(chēng)','平均薪資','較上年增長(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

    文章

    4422

    瀏覽量

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

    關(guān)注

    1

    文章

    177

    瀏覽量

    36413
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4888

    瀏覽量

    90320

原文標(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)推薦
    熱點(diǎn)推薦

    傾斜儀是否支持接入第三方自動(dòng)化采集系統(tǒng)?

    傾斜儀作為工程監(jiān)測(cè)的重要設(shè)備,其系統(tǒng)集成能力直接影響實(shí)際使用效果。針對(duì)是否支持第三方自動(dòng)化采集系統(tǒng)的問(wèn)題,答案是肯定的。YS系列傾斜儀在設(shè)計(jì)階段即考慮了系統(tǒng)的開(kāi)放性和兼容性,能夠與市面上主流的自動(dòng)化
    的頭像 發(fā)表于 03-25 17:25 ?404次閱讀
    傾斜儀是否支持接入<b class='flag-5'>第三方</b>自動(dòng)化采集系統(tǒng)?

    為什么MES企業(yè)要跟第三方機(jī)構(gòu)合作設(shè)備數(shù)據(jù)采集?

    綜上考慮,多數(shù)MES企業(yè)都不直接承接設(shè)備數(shù)據(jù)采集業(yè)務(wù),而是選擇和第三方機(jī)構(gòu)合作。畢竟第三方機(jī)構(gòu)長(zhǎng)期耕耘這一領(lǐng)域,擁有成熟的產(chǎn)品體系、完善的技術(shù)路線(xiàn)以及專(zhuān)業(yè)的現(xiàn)場(chǎng)施工團(tuán)隊(duì),能夠快速應(yīng)對(duì)各類(lèi)現(xiàn)場(chǎng)難題,將
    的頭像 發(fā)表于 03-19 15:03 ?875次閱讀
    為什么MES企業(yè)要跟<b class='flag-5'>第三方</b>機(jī)構(gòu)合作設(shè)備數(shù)據(jù)采集?

    蘋(píng)果17可以無(wú)線(xiàn)充電嗎?第三方配件怎么選?

    iPhone 17無(wú)線(xiàn)充電提升車(chē)載體驗(yàn),支持Qi2.2,磁吸強(qiáng)、散熱好,第三方配件需認(rèn)準(zhǔn)MFM認(rèn)證。
    的頭像 發(fā)表于 03-19 08:17 ?903次閱讀
    蘋(píng)果17可以無(wú)線(xiàn)充電嗎?<b class='flag-5'>第三方</b>配件怎么選?

    CW32W031調(diào)制頻率的話(huà)有第三方軟件工具么?

    請(qǐng)問(wèn),CW32W031調(diào)制頻率的話(huà),有第三方軟件工具么?仿真軟件也行
    發(fā)表于 01-19 06:54

    DEKRA德凱獲得沃爾沃汽車(chē)第三方實(shí)驗(yàn)室認(rèn)可資質(zhì)

    近日,DEKRA德凱上海實(shí)驗(yàn)室成功通過(guò)沃爾沃汽車(chē)材料工程中心的嚴(yán)格評(píng)審,被正式列入其認(rèn)可的第三方實(shí)驗(yàn)室名單。
    的頭像 發(fā)表于 10-16 10:27 ?901次閱讀

    第三方電商數(shù)據(jù) API 數(shù)據(jù)來(lái)源深度解析:合規(guī)與穩(wěn)定背后的核心邏輯

    本文揭秘第三方電商數(shù)據(jù)API的底層邏輯:通過(guò)官方授權(quán)、生態(tài)共享與合規(guī)采集重來(lái)源,結(jié)合嚴(yán)格清洗校驗(yàn),確保數(shù)據(jù)穩(wěn)定、合規(guī)、高質(zhì)。企業(yè)選型應(yīng)關(guān)注來(lái)源合法性與場(chǎng)景匹配度,避開(kāi)數(shù)據(jù)陷阱,實(shí)現(xiàn)真正數(shù)據(jù)驅(qū)動(dòng)增長(zhǎng)
    的頭像 發(fā)表于 10-11 13:55 ?474次閱讀

    SEGGER Ozone調(diào)試器支持第三方調(diào)試工具

    SEGGER強(qiáng)大的Ozone調(diào)試器和性能分析器,長(zhǎng)期以來(lái)一直深受J-Link和J-Trace用戶(hù)的信任,現(xiàn)在可以支持第三方調(diào)試工具了。
    的頭像 發(fā)表于 09-29 11:45 ?1441次閱讀

    電子測(cè)試行業(yè)中的第三方檢測(cè)機(jī)構(gòu)如何解決平臺(tái)靈活度低,維護(hù)困難等痛點(diǎn)問(wèn)題?

    在競(jìng)爭(zhēng)激烈的市場(chǎng)環(huán)境中,第三方檢測(cè)機(jī)構(gòu)面臨著諸多挑戰(zhàn),尤其是在來(lái)料測(cè)試環(huán)節(jié)。某權(quán)威第三方檢測(cè)機(jī)構(gòu)就曾深陷困境,他們一面要應(yīng)對(duì)產(chǎn)品不確定性高與系統(tǒng)固化嚴(yán)重的矛盾,另一面還需解決已有系
    的頭像 發(fā)表于 08-06 17:07 ?986次閱讀
    電子測(cè)試行業(yè)中的<b class='flag-5'>第三方</b>檢測(cè)機(jī)構(gòu)如何解決平臺(tái)靈活度低,維護(hù)困難等痛點(diǎn)問(wèn)題?

    如何集成第三方支付API到電商網(wǎng)站

    ? 在電商網(wǎng)站中,集成第三方支付API是確保交易安全、提升用戶(hù)體驗(yàn)的關(guān)鍵步驟。本文將逐步指導(dǎo)您完成整個(gè)流程,從選擇支付提供商到上線(xiàn)后的監(jiān)控。文章結(jié)構(gòu)清晰,包含代碼示例和實(shí)用建議,幫助您高效實(shí)現(xiàn)支付
    的頭像 發(fā)表于 07-16 10:35 ?747次閱讀
    如何集成<b class='flag-5'>第三方</b>支付API到電商網(wǎng)站

    天合跟蹤獲得DNV第三方風(fēng)洞測(cè)試審查報(bào)告

    近日, 天合跟蹤獲得DNV頒發(fā)的中國(guó)支架行業(yè)首張風(fēng)洞實(shí)驗(yàn)第三方審查報(bào)告。該風(fēng)洞報(bào)告由天合跟蹤與同濟(jì)大學(xué)合作,針對(duì)開(kāi)拓者1P跟蹤支架進(jìn)行了全新的剛性模型測(cè)壓試驗(yàn)和先進(jìn)動(dòng)力學(xué)分析研究,并由DNV進(jìn)行獨(dú)立
    的頭像 發(fā)表于 07-08 17:35 ?1110次閱讀

    使用 Claroty SRA 優(yōu)化第三方 OT 遠(yuǎn)程訪(fǎng)問(wèn)

    第三方,如原始設(shè)備制造商 (OEM) 技術(shù)員和維護(hù)承包商,是確保 OT 環(huán)境可用性、完整性和安全性的關(guān)鍵。負(fù)責(zé)服務(wù) OT 資產(chǎn)的第三方經(jīng)常遠(yuǎn)程工作。這意味著,他們會(huì)通過(guò)無(wú)數(shù)廣泛使用的解決方案遠(yuǎn)程連接
    的頭像 發(fā)表于 06-17 16:11 ?897次閱讀
    使用 Claroty SRA 優(yōu)化<b class='flag-5'>第三方</b> OT 遠(yuǎn)程訪(fǎng)問(wèn)

    第三方工業(yè)互聯(lián)網(wǎng)平臺(tái)有哪些

    第三方工業(yè)互聯(lián)網(wǎng)平臺(tái)有哪些
    的頭像 發(fā)表于 06-14 15:48 ?1492次閱讀

    鈦和集團(tuán)榮獲零跑汽車(chē)第三方實(shí)驗(yàn)室資質(zhì)認(rèn)可

    近期,鈦和集團(tuán)順利通過(guò)了浙江零跑科技股份有限公司(以下簡(jiǎn)稱(chēng)“零跑汽車(chē)”)對(duì)第三方實(shí)驗(yàn)室的能力驗(yàn)證及資質(zhì)審核,助力零跑汽車(chē)實(shí)現(xiàn)“成為值得尊敬的世界級(jí)智能電動(dòng)車(chē)企”的品牌愿景。
    的頭像 發(fā)表于 06-13 17:00 ?1543次閱讀

    鈦和集團(tuán)榮獲吉利汽車(chē)第三方實(shí)驗(yàn)室資質(zhì)認(rèn)可

    近期,鈦和集團(tuán)汽車(chē)事業(yè)部順利通過(guò)了浙江吉利控股集團(tuán)有限公司(以下簡(jiǎn)稱(chēng)“吉利汽車(chē)”)對(duì)外部實(shí)驗(yàn)室的能力驗(yàn)證及資質(zhì)審核,并獲得了第三方實(shí)驗(yàn)室認(rèn)可證書(shū),助力吉利汽車(chē)實(shí)現(xiàn)“讓世界充滿(mǎn)吉利”的品牌愿景。
    的頭像 發(fā)表于 06-10 15:03 ?1421次閱讀

    SGS榮獲比亞迪乘用車(chē)第三方實(shí)驗(yàn)室資質(zhì)認(rèn)可證書(shū)

    近日,國(guó)際公認(rèn)的測(cè)試、檢驗(yàn)和認(rèn)證機(jī)構(gòu)SGS(以下簡(jiǎn)稱(chēng):SGS)位于重慶的標(biāo)瑞新能源實(shí)驗(yàn)室(以下簡(jiǎn)稱(chēng):SGS-CEC)榮獲比亞迪乘用車(chē)實(shí)驗(yàn)室認(rèn)可委員會(huì)(以下簡(jiǎn)稱(chēng):比亞迪)頒發(fā)的“乘用車(chē)第三方實(shí)驗(yàn)室資質(zhì)認(rèn)可證書(shū)”。
    的頭像 發(fā)表于 05-20 15:04 ?1245次閱讀