Python 實(shí)現(xiàn)自動(dòng)完成A4標(biāo)簽排版打印功能
老婆大人讓俺幫她通過(guò)Excel生成百人的準(zhǔn)考證,她們學(xué)校打算來(lái)一次高考模擬。由于高考改革,每個(gè)學(xué)生的考試科目不一樣,需要自動(dòng)生成一下。
我一個(gè)程序員平時(shí)很少用到Excel,自己也不打算深入研究這個(gè)軟件。如何解決她的需求呢?我直接想到了python,無(wú)所不能的python肯定可以搞定這個(gè)小case。
解決思路
數(shù)據(jù)處理:這個(gè)很簡(jiǎn)單的
生成可打印的文件
這個(gè)有些難度,我首先想到生成word。而且python也有word包來(lái)解決,不過(guò)后來(lái)想了一下,這個(gè)方案有問(wèn)題。word結(jié)構(gòu)不開源,格式和樣式處理起來(lái)應(yīng)該有問(wèn)題。另外word在國(guó)外不普遍,遇到問(wèn)題解決方案肯定不多。而PDF卻不同,PDF在國(guó)外應(yīng)用廣使用人多,肯定好解決。
尋找方案
通過(guò)python 生成 pdf的方案確定后,果然通過(guò)Google找到了pylabels這個(gè)庫(kù)。
如何解決
第一步安裝庫(kù)
pip install pylabels
第二步 執(zhí)行下面的代碼
import labelsfrom reportlab.graphics import shapes specs = labels.Specification(210, 297, 2, 8, 90, 25, corner_radius=2) def draw_label(label, width, height, obj): label.add(shapes.String(2, 2, str(obj), fontName='Helvetica', fontSize=40)) # Create the sheet.sheet = labels.Sheet(specs, draw_label, border=True) # Add a couple of labels.sheet.add_label('Hello')sheet.add_label('World') # We can also add each item from an iterable.sheet.add_labels(range(3, 22)) sheet.add_label('Oversized label here') # Save the file and we are done.sheet.save(’basic.pdf’)print('{0:d} label(s) output on {1:d} page(s).'.format(sheet.label_count, sheet.page_count))
數(shù)據(jù)處理部分我就不分享了,就是簡(jiǎn)單的讀取csv文件。
以上這篇Python 實(shí)現(xiàn)自動(dòng)完成A4標(biāo)簽排版打印功能就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法2. python中pandas.read_csv()函數(shù)的深入講解3. python爬蟲利用代理池更換IP的方法步驟4. SpringBoot集成SSM、Dubbo、Redis、JSP的案例小結(jié)及思路講解5. JS算法題解旋轉(zhuǎn)數(shù)組方法示例6. Python語(yǔ)言規(guī)范之Pylint的詳細(xì)用法7. springboot用controller跳轉(zhuǎn)html頁(yè)面的實(shí)現(xiàn)8. VMware如何進(jìn)入BIOS方法9. PHP設(shè)計(jì)模式之迭代器模式Iterator實(shí)例分析【對(duì)象行為型】10. WMLScript腳本程序設(shè)計(jì)第1/9頁(yè)
