安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

python的reportlab库介绍制作pdf和作图

3月15日 浅时光投稿
  1说明
  1。1reportlab模块是用python语言生成pdf文件的模块,也可以作图。
  1。2已经亲测,拿来就可以使用,适合收藏,万一自己需要就可以直接使用。
  1。3环境:python3。8,deepinlinux深度操作系统和微软编辑器vscode。
  2安装:pipinstallreportlabpip3。8installreportlab本机安装
  3Helloworld。pdf代码:fromreportlab。graphics。shapesimportDrawing,Stringfromreportlab。graphicsimportrenderPDF参数:Drawing(width400,height200,nodes,keywords)宽和高,是一张pdf的大小,默认是400和200dDrawing(100,100)参数:String(x,y,text,kw)注意textAnchormiddle时x值不能等于0,否则只能显示world了。sString(50,90,Hello,world!,textAnchormiddle)注意特色,左下角坐标是0,0,采用默认字体和大小sString(0,90,Hello,world!)d。add(s)生成pdf的路径和文件名renderPDF。drawToFile(d,homexgjDesktopreportlabhelloworld。pdf)
  4中文设置123。pdf
  代码:引入所需要的基本包fromreportlab。pdfgenimportcanvasfromreportlab。pdfbaseimportpdfmetricsfromreportlab。pdfbase。ttfontsimportTTFont自己下载字体放在指定目录,hwfs华文仿宋pdfmetrics。registerFont(TTFont(hwfs,homexgjDesktopreportlabhwfs。ttf))生成123的pdf文件和指定目录ccanvas。Canvas(homexgjDesktopreportlab123。pdf)导入字体和大小色孩子c。setFont(hwfs,20)messageHello,你好,欢迎学习reportlab制作pdf!注意下面坐标x和y,当(0,0)是代表左下角一张pdf的高800,所以第一行800,再大就出c。drawString(50,800,message)c。showPage()c。save()
  5柱状图bar。py代码fromreportlab。graphics。charts。barchartsimportVerticalBarChartfromreportlab。lib。colorsimportHexColorfromreportlab。platypusimportSimpleDocTemplatefromreportlab。graphics。shapesimportDrawing,Rectfromreportlab。graphics。charts。textlabelsimportLabelfromreportlab。graphics。charts。piechartsimportPie定义作图defautoLegender(chart,title):width448height230dDrawing(width,height)labLabel()lab。x220x和y是文字的位置坐标lab。y210lab。setText(title)lab。fontSize20d。add(lab)d。backgroundRect(0,0,width,height,strokeWidth1,strokeColor868686,fillColorNone)边框颜色d。add(chart)returnddefdrawbarchart(min,max,xlist,data〔()〕,xlabelangle0,barcolorHexColor(7BB8E7),height125,width280):bcVerticalBarChart()bc。x50x和y是柱状图在框中的坐标bc。y50bc。heightheight柱状图的高度bc。widthwidth柱状图的宽度bc。datadataforjinrange(len(xlist)):setattr(bc。bars〔j〕,fillColor,barcolor)调整stepminvmin0。5maxvmax1。5maxAxisint(height10)向上取整minStepint((maxvminvmaxAxis1)maxAxis)bc。valueAxis。valueMinmin0。5设置y轴的最小值bc。valueAxis。valueMaxmax1。5设置y轴的最大值bc。valueAxis。valueStep(maxmin)4设置y轴的最小度量单位ifbc。valueAxis。valueStepminStep:bc。valueAxis。valueStepminStepifbc。valueAxis。valueStep0:bc。valueAxis。valueStep1bc。categoryAxis。labels。boxAnchornex轴下方标签坐标的开口方向bc。categoryAxis。labels。dx5x和y是x轴下方的标签距离x轴远近的坐标bc。categoryAxis。labels。dy5bc。categoryAxis。labels。anglexlabelanglex轴上描述文字的倾斜角度xreallist〔〕iflen(xlist)10:foriinrange(len(xlist)):tmpifi5!0elsexlist〔i〕xreallist。append(tmp)else:xreallistxlistbc。categoryAxis。categoryNamesxreallistreturnbc画图zautoLegender(drawbarchart(100,300,〔a,b,c〕,〔(100,200,120)〕))保存路径和文件pdfSimpleDocTemplate(homexgjDesktopreportlabbar。pdf)构建pdf。multiBuild(〔z〕)
  6折线图line。py代码导出模块导出追踪模块,python的一个知识点importtraceback导出作图的相关模块fromreportlab。graphics。shapesimportDrawingfromreportlab。graphics。charts。lineplotsimportLinePlotfromreportlab。graphics。charts。textlabelsimportLabelfromreportlab。graphicsimportrenderPDFfromreportlab。graphics。widgets。markersimportmakeMarker附加:导出字体设置模块,如果是英文,就不需要fromreportlab。pdfbaseimportpdfmetrics,ttfonts若需要显示中文,需要先注册一个中文字体,hwfs自己下载,这个是根目录下,也可以指定位置pdfmetrics。registerFont(ttfonts。TTFont(hwfs,hwfs。ttf))注意data的类型每一个数据点是一个元组一条曲线对应一个存储数据点元组的元组一个图形可以包含多条曲线,用列表存储曲线元组data〔((1,100),(2,200),(3,300),(4,400),(5,500)),((1,50),(2,80),(3,400),(4,40),(5,70))〕定义画布大小drawingDrawing(500,300)划线设置lpLinePlot()lp。x50坐标轴中心坐标lp。y30这个作图的大小与画布大小稍微小一点lp。height250lp。width400lp。datadatalp。joinedLines1lp。lines。symbolmakeMarker(FilledCircle)刻度设置lp。xValueAxis。valueMin1lp。xValueAxis。valueMax5lp。xValueAxis。valueStep1刻度设置lp。yValueAxis。valueMin0lp。yValueAxis。valueMax500lp。yValueAxis。valueStep100drawing。add(lp)文字标签设置:标题titleLabel()title。fontNamehwfstitle。fontSize12titletext折线图title。texttitletexttitle。x250title。y280title。textAnchormiddledrawing。add(title)标签x的显示XlabelLabel()Xlabel。textx坐标轴Xlabel。fontSize12Xlabel。x480Xlabel。y30Xlabel。fontNamehwfsXlabel。textAnchormiddledrawing。add(Xlabel)标签y的显示YlabelLabel()Ylabel。texty坐标轴Ylabel。fontSize12Ylabel。x40Ylabel。y295Ylabel。fontNamehwfsYlabel。textAnchormiddledrawing。add(Ylabel)try:保存格式gif,文件名:路径当前目录,这个归功于importtraceback,所以outdir的设置就是当前位置drawing。save(formats〔gif〕,outDir。,fnRootabc)except:traceback。printexc()
  7饼图pie。py代码fromreportlab。libimportcolorsfromreportlab。platypusimportSimpleDocTemplatefromreportlab。graphics。shapesimportDrawing,Rectfromreportlab。graphics。charts。textlabelsimportLabelfromreportlab。graphics。charts。piechartsimportPiefromreportlab。lib。colorsimportHexColordefautoLegender(chart,title):width448height230dDrawing(width,height)labLabel()lab。x220x和y是文字的位置坐标lab。y210lab。setText(title)lab。fontSize20d。add(lab)边框颜色和填充颜色d。backgroundRect(0,0,width,height,strokeWidth1,strokeColor45b97c,fillColor78cdd1)d。add(chart)returnddefdrawpie(data〔〕,labels〔〕,usecolors〔〕,width360,):piePie()pie。x60x,y饼图在框中的坐标pie。y20pie。slices。labelboxStrokeColorcolors。white标签边框的颜色pie。datadata饼图上的数据pie。labelslabels数据的标签pie。simpleLabels00标签在标注线的右侧;1在线上边pie。sameRadii10饼图是椭圆;1饼图是圆形pie。slices。strokeColorcolors。red圆饼的边界颜色pie。strokeWidth1圆饼周围空白区域的宽度pie。strokeColorcolors。white整体饼图边界的颜色pie。slices。labelpointerpiePad10圆饼和标签的距离pie。slices。labelpointeredgePad25标签和外边框的距离pie。widthwidthpie。directionclockwisepie。pointerLabelModeLeftRightfori,colinenumerate(usecolors):pie。slices〔i〕。fillColorcolreturnpie数据和颜色定义,对应关系data〔10,9,8,7,6,5,4,3,2,1〕labs〔dog,pig,cat,bird,mouse,fish,cow,sheep,horse,fly〕color〔HexColor(f47920),HexColor(ef5b9c),HexColor(b2d235),HexColor(181d4b),HexColor(f58220),HexColor(7fb80e),HexColor(585eaa),HexColor(1d953f),HexColor(ef4136),HexColor(483D8B)〕zautoLegender(drawpie(data,labs,color))pdfSimpleDocTemplate(homexgjDesktopreportlabpie。pdf)pdf。multiBuild(〔z〕)
  8段落式中英文parahello。py代码fromreportlab。lib。stylesimportgetSampleStyleSheetfromreportlab。platypusimportParagraph,SimpleDocTemplatefromreportlab。libimportcolors导入中文字体设置模块fromreportlab。pdfbaseimportpdfmetrics,ttfonts若需要显示中文,需要先注册一个中文字体pdfmetrics。registerFont(ttfonts。TTFont(hwfs,homexgjDesktopreportlabhwfs。ttf))StylegetSampleStyleSheet()btStyle〔Normal〕字体的样式bt。fontNamehwfs使用的字体bt。fontSize14字号大小设置bt。wordWrapCJK该属性支持自动换行,CJK是中文模式换行,用于英文中会截断单词造成阅读困难,可改为Normalbt。firstLineIndent1该属性支持第一行开头空格,注意如果设置bt。alignment1居中,那么这个设置就是多余bt。leading20该属性是设置行距,注意与字体大小的关系,一般偏大一点,否则挤在一行bt。alignment1居中bt。textColorcolors。redtParagraph(Hello,你好,欢迎光临,我是Hello,你好,欢迎光临,我是Hello,你好,欢迎光临,我是reportlab,bt)pdfSimpleDocTemplate(homexgjDesktopreportlabparahello。pdf)pdf。multiBuild(〔t〕)
  自己整理,分享出来,希望喜欢,重点在制作pdf,不在作图,但是如果有文字,有表格,有作图,那么肯定是有优势的。
  未完待续
  下次有空介绍高级的。
投诉 评论 转载

女子欲取15万存款,查询余额为0,银行的解释让她懵了导语:银行卡的出现和流通,很大程度方便了人们的日常生活。一卡在手,出门购物不发愁。过去没有银行卡这种说法,谁要想存钱,就得提前去银行办一个存折。取钱时,也要拿着存折去银行……怎么在职场中,做一个有智慧的人?方法如下作者:陈旭网名:屠龙有术01道与术,规律与运用。要做一个有智慧的人,必须掌握这个世界的规律,以及规律的具体应用方法。世界的规律,我们称之为道;规律的具体应用方……玩对孩子的生长发育有啥好处?想不到这5种能力都是玩出来的一些儿童教育专家说:对孩子的教育,第一是培养良好的生活习惯,第二就是让孩子做尽情的玩耍。因为玩对孩子的身心发展有着良好的影响,因为在玩耍的成长过程中,不仅锻炼了身体还开发了智能……宝宝奶瓣便便怎么办?新手爸妈快看过来对于新手妈妈来说,宝宝的一切都让她非常好奇,一边感叹生命的奇妙,一边又对宝宝的各种状况好奇加紧张,总拿大人跟宝宝作比较,这里怎么不一样呢,那里怎么是这样的呢?宝宝经常出现各种状……健康生活,睡前5点小建议睡觉前不要吃太多睡觉前3个小时最好不要再进食。人进入睡眠后,肠胃的蠕动会下降,吃得过多就会影响睡眠。中医上讲,胃不和卧不安。睡觉前吃得过多很可能会引起积食、代谢失调……什么是好设计?设计师何见平3月27日,设计师何见平国内首次大型回顾展Daydream何见平个展于深圳海上世界文化中心开幕。何见平在本次展览中以过去25年所涉及领域和工作为基础,讲述了自……女孩开始发育的症状有哪些?月经初潮后的终身高能不能预测呢?女孩一般是911岁开始发育。一般来说,女孩在青春发育期,能长高2528厘米。而如果发育早于8岁,就叫性早熟。女孩出现青春发育的迹象,都是从乳房开始胀、疼,穿衣服的时候,稍……孩子鼻炎怎么办?正确洗鼻很重要从天黑到天亮,鼻子难受到爆炸!谁来拯救鼻炎患者的痛苦?每逢季节变换,鼻炎就容易高发。我们的小朋友也容易出现鼻干鼻痒、喷嚏不停、鼻涕不止、鼻塞不通气等症状,而且吃了药,鼻炎症状也……关于学习,大文豪托尔斯泰给老师和家长的五个问答列夫托尔斯泰(LeoTolstoy,18281910),全名为列夫尼可拉耶夫维奇托尔斯泰(LevNikolayevichTolstoy),俄国人,出生于距离莫斯科二十公里远的雅……药监半年报责任体系更健全特别栏目山东药监半年报8月2日,2021年全省药品监督管理半年工作推进会在济南召开。会议总结上半年工作,分析问题、查找差距,进一步统一思想、加压奋进,安排部署下半年……python的reportlab库介绍制作pdf和作图1说明1。1reportlab模块是用python语言生成pdf文件的模块,也可以作图。1。2已经亲测,拿来就可以使用,适合收藏,万一自己需要就可以直接使用。……男孩不喜欢读书怎么办?根据特点想办法男孩天生好动,好像让男孩喜欢上阅读相对更困难些,妈妈们该怎么引导男孩爱上阅读呢?前阵子暑假期间,带我家大宝去新华书店儿童读物区看书,尽管大宝在家都是在读老师推荐的一些文字……
母乳喂养真的会瘦吗?钢琴考级倒计时,关于钢琴考级中的技术及音乐问题,你应该知道假结婚的危害芒种阳热将极,麦穗生芒起名指南丨双胞胎怎么取名,快来学这4招宝宝长湿疹,这些喂养预防和处理要点,妈妈必须要牢记月子之仇不共戴天真的是毒鸡汤吗?春分后,必给孩子吃的3款面食,营养丰富,孩子爱吃长得快妈妈,求求您不要给我报名好不好?孩子大人天津户口,大人都是长期驻外,孩子以后教育怎么安排好?朋友们是对天生有缺陷的人感到可笑,还是可悲幼儿园交通安全宣传知识,老师家长请收藏

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利