add_watermark.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import os
  2. import sys
  3. from PyPDF2 import PdfReader, PdfWriter
  4. import requests
  5. import PyPDF2
  6. def add_watermark_to_pdf(pdf_file_in, pdf_file_mark, pdf_file_out):
  7. """把水印添加到pdf中"""
  8. input_stream = open(pdf_file_in, 'rb')
  9. pdf_input = PdfReader(input_stream, strict=False)
  10. # 获取PDF文件的页数
  11. # pageNum = pdf_input.getNumPages()
  12. pageNum = len(pdf_input.pages)
  13. pdf_output = PdfWriter()
  14. # 读入水印pdf文件
  15. pdf_watermark = PdfReader(open(pdf_file_mark, 'rb'), strict=False)
  16. # 给每一页打水印
  17. for i in range(pageNum):
  18. # page = pdf_input.getPage(i)
  19. page = pdf_input.pages[i]
  20. page.merge_page(pdf_watermark.pages[0])
  21. page.compress_content_streams() # 压缩内容
  22. pdf_output.add_page(page)
  23. pdf_output.write(open(pdf_file_out, 'wb'))
  24. if __name__ == '__main__':
  25. if len(sys.argv) < 3:
  26. print("Usage: add_watermark.py <url> <pdf_file_in> <pdf_file_out> <pdf_file_mark>")
  27. sys.exit(1)
  28. pdf_file_url = sys.argv[1]
  29. pdf_file_in = sys.argv[2] # 要加水印的文件名
  30. pdf_file_out = sys.argv[3] # 加好水印的结果文件
  31. pdf_file_mark = sys.argv[4]
  32. add_watermark(pdf_file_url, pdf_file_in, pdf_file_mark, pdf_file_out)
  33. print(pdf_file_out)