1. 程式人生 > 程式設計 >Python 實現自動完成A4標籤排版列印功能

Python 實現自動完成A4標籤排版列印功能

老婆大人讓俺幫她通過Excel生成百人的准考證,她們學校打算來一次高考模擬。由於高考改革,每個學生的考試科目不一樣,需要自動生成一下。

我一個程式設計師平時很少用到Excel,自己也不打算深入研究這個軟體。如何解決她的需求呢?我直接想到了python,無所不能的python肯定可以搞定這個小case。

解決思路

資料處理:這個很簡單的

生成可列印的檔案

這個有些難度,我首先想到生成word。而且python也有word包來解決,不過後來想了一下,這個方案有問題。word結構不開源,格式和樣式處理起來應該有問題。另外word在國外不普遍,遇到問題解決方案肯定不多。而PDF卻不同,PDF在國外應用廣使用人多,肯定好解決。

尋找方案

通過python 生成 pdf的方案確定後,果然通過Google找到了pylabels這個庫。

如何解決

第一步安裝庫

pip install pylabels

第二步 執行下面的程式碼

import labels
from 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,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))

資料處理部分我就不分享了,就是簡單的讀取csv檔案。

以上這篇Python 實現自動完成A4標籤排版列印功能就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。