ToB企服应用市场:ToB评测及商务社交产业平台

标题: Python 轻松生成PDF文档 [打印本页]

作者: 雁过留声    时间: 2023-11-22 04:36
标题: Python 轻松生成PDF文档
PDF(Portable Document Format)是一种常用的文档格式,具有跨平台兼容性、保真性、安全性和交互性等特点。我们日常生活工作中的合同、报告、论文等通常都采用PDF格式,以确保文档在不同的操作系统(例如 Windows、Mac、Linux)和设备上被查看时都能保持外观的一致性。
Python是一种高效简洁的编程语言,使用Python来处理PDF文档是实现办公自动化、提高办公效率的方法之一。本文将介绍PDF最基本操作之: 使用Python创建PDF文档,并插入图片
 
安装 Python 

本文中会用到国产Spire.PDF for Python库. 该第三方Python库完全独立,可兼容大部分国产操作系统。能在 Python中实现创建、读取、编辑、转换和保存 PDF 等操作。
产品安装pip命令:
  1. pip install Spire.PDF
复制代码
 
也可以下载 Spire.PDF for Python解压缩后再进行安装。点击了解详细安装教程: 如何在 VS Code 中安装 Spire.PDF for Python
 
使用Python生成PDF文档、并插入图片

Spire.PDF for Python 支持在 PDF 文档中添加文本、图片、形状、链接和表单字段等各种元素。下面仅举例说明如何创建一个包含文字和图片的简单 PDF 文档。
基本步骤:
 
完整代码:
  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. def ReadFromTxt(fname: str) -> str:
  4.     with open(fname, 'r', encoding='utf-8') as f:
  5.         text = f.read()
  6.     return text
  7. # 创建PdfDocument对象
  8. pdf = PdfDocument()
  9. # 添加一页
  10. page = pdf.Pages.Add(PdfPageSize.A4(), PdfMargins(20.0, 20.0))
  11. # 指定标题文本
  12. titleText = "信息化的概念"
  13. # 创建纯色笔刷
  14. titleBrush = PdfSolidBrush(PdfRGBColor(Color.get_MediumBlue()))
  15. paraBrush = PdfSolidBrush(PdfRGBColor(Color.get_Black()))
  16. # 创建 true type 字体
  17. titleFont = PdfTrueTypeFont("微软雅黑", 15.0, PdfFontStyle.Bold, True)
  18. paraFont = PdfTrueTypeFont("宋体", 11.0, PdfFontStyle.Regular, True)
  19. # 设置文本对齐方式
  20. textAlignment = PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle)
  21. # 在页面中央绘制标题
  22. page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 35.0, textAlignment)
  23. # 从TXT文件中获取段落内容
  24. paraText = ReadFromTxt("内容.txt")
  25. # 创建一个 PdfTextWidget 对象,用于保存段落内容
  26. textWidget = PdfTextWidget(paraText, paraFont, paraBrush)
  27. # 指定一个矩形区域来放置段落内容
  28. rect = RectangleF(PointF(0.0, 52.0), page.Canvas.ClientSize)
  29. # 将PdfLayoutType设置为Paginate以使内容自动分页
  30. textLayout = PdfTextLayout()
  31. textLayout.Layout = PdfLayoutType.Paginate
  32. # 将段落内容绘制到页面上
  33. textWidget.Draw(page, rect, textLayout)
  34. # 加载一张图片
  35. image = PdfImage.FromFile("插图.png")
  36. # 指定图片尺寸
  37. width = image.Width * 0.75
  38. height = image.Height * 0.75
  39. # 在页面指定位置绘制图像
  40. x = (page.Canvas.ClientSize.Width - width) / 2
  41. y = 220.0
  42. page.Canvas.DrawImage(image, x, y, width, height)
  43. # 保存结果文件
  44. pdf.SaveToFile("生成PDF.pdf")
复制代码
 
运行结果:

 
了解Spire.PDF for Python的更多功能:https://www.e-iceblue.cn/pdfforpython/spire-pdf-for-python-program-guide-content.html
水印可申请免费试用授权来移除:https://www.e-iceblue.cn/misc/temporary-license.html
[code][/code]
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4