convert2pdf.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/python3.6
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2021/3/15 9:19
  4. # @Author : lijunliang
  5. # @Email : lijunliang@topnet.net.cn
  6. # @File : convert2pdf.py
  7. # @Software: PyCharm
  8. import pdfkit
  9. import subprocess
  10. from loguru import logger
  11. import os
  12. def html2pdf(html: str, pdf_path: str):
  13. try:
  14. pdfkit.from_string(html, pdf_path)
  15. except Exception as e:
  16. logger.warning("html转pdf失败--->%s" % e)
  17. return False
  18. return True
  19. def lib2pdf(file_path: str):
  20. '''
  21. doc,docx
  22. :param file_path: str
  23. :return:
  24. '''
  25. file_path = file_path.strip()
  26. out_dir = os.path.dirname(file_path)
  27. try:
  28. args = 'soffice --headless --convert-to pdf:writer_pdf_Export %s --outdir %s' % (file_path, out_dir)
  29. output = subprocess.check_output(args, shell=True)
  30. except subprocess.CalledProcessError as e:
  31. logger.warning('转pdf出错---->%s' % e)
  32. return ''
  33. filePathList = file_path.split(".")
  34. filePathList[-1] = "pdf"
  35. pdfFileName = ".".join(filePathList)
  36. return pdfFileName
  37. if __name__ == '__main__':
  38. # pdf_path = "../data/0.pdf"
  39. # html = open("../data/test.htm", "r").read()
  40. # pdf_data = html2pdf(html,pdf_path)
  41. # print(pdf_data)
  42. file_path = "../data/123.docx"
  43. pdf = lib2pdf(file_path)
  44. print(pdf)