iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
0
自我挑戰組

自動化技術在生活與工作上的應用系列 第 26

[Day26]PDF浮水印加入

  • 分享至 

  • xImage
  •  

"版權所有、翻印必究"常常會看到這句話
為了讓我們自動化寫入的產檔有一個屬於公司或學校、個人的浮水印
今天要分享一下
如何加入浮水印
這裡會用到前幾天提到的PyPDF2的套件
然後我們建立一個PdfFileReader 的物件裡面放我們要放浮水印的檔案
call getPage(0) 取得第一頁並存到物件裡
然後再見另一個PdfFileReader物件是存浮水印的PDF
最後再將兩個使用call mergePage()就可以將其建立浮水印了
合併完後再使用LOOP將其他還沒用浮水印的葉面 貼上來
即可製成一個新的PDF檔

https://ithelp.ithome.com.tw/upload/images/20190930/201035167qWu09xwcr.jpg

不僅如此我們也可以將PDF進行加上密碼鎖的方式
只需要短短的一行(其實前幾天好像有提到...今天補上實作)
pdfWriter.encrypt('KYLE')

https://ithelp.ithome.com.tw/upload/images/20190930/20103516lLx1YcsYc9.jpg
<---------------------更新----------------
沒想到這篇那麼多人看(相較其他篇好慘淡),於是想來編輯一下
前面寫浮水印的鑲入
這次寫文字的inserted
這邊要安裝另一個套件reportlab

https://ithelp.ithome.com.tw/upload/images/20191204/20103516LD0iZVaDHW.jpg
from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
然後再設置我們要寫的文字及位置
packet = io.BytesIO()
can = canvas.Canvas(packet, pagesize=letter)
can.drawString(10, 120, "This is mine !!")
can.save()
放到StringIO buffer裡
packet.seek(0)
new_pdf = PdfFileReader(packet)

然後Merge我們剛剛寫入的文字
pageObj.mergePage(new_pdf.getPage(0))
pdfWriter.addPage(pageObj)
結果就是這樣!!
https://ithelp.ithome.com.tw/upload/images/20191204/20103516RXrU031ZEy.png

也希望大家對其他篇多多支持


上一篇
[Day25]自動化取得天氣資料
下一篇
[Day27] 自動化製作連點器
系列文
自動化技術在生活與工作上的應用29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言