冰蓝科技
|
028-81705109
|
|
微信扫一扫
|

Spire.Cloud 纯前端文档控件

PDF 文档中的文字水印是以半透明的形式显示在 PDF 页面上的文本。通过在 PDF 页面上展示版权、保密性、作者、公司或其他信息,水印能够保护文档的版权和信息安全,便于文档的识别和管理,同时也有助于品牌宣传。无论是公开发布的文档还是需要保密的文档,都可以通过在文档中添加文字水印来实现文档的保护和个性化。本文将介绍如何使用 Spire.PDF for Python 通过 Python 程序在 PDF 文档中添加文字水印

安装 Spire.PDF for Python

本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.PDF

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.PDF for Python

在 PDF 文档中添加单行文字水印

单行文字水印是指只在页面中央倾斜单独显示的文字水印。以下是在 PDF 文档中添加单行文字水印的详细操作步骤:

  • Python
from spire.pdf import *
from spire.pdf.common import *
import math

# 创建PdfDocument类的对象
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("示例.pdf")

# 创建PdfTrueTypeFont类的对象
font = PdfTrueTypeFont("HarmonyOS Sans SC", 48.0, 0, True)

# 指定水印文本并计算水印位置
text = "禁止复制"
set1 = float (font.MeasureString(text).Width * math.sqrt(2) / 4)
set2 = float (font.MeasureString(text).Height * math.sqrt(2) / 4)

# 遍历文档中的页面
for i in range(pdf.Pages.Count):
    # 获取页面
    page = pdf.Pages.get_Item(i)
    # 设置水印的透明度
    page.Canvas.SetTransparency(0.5)
    # 将页面坐标系平移至指定位置
    page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - set1 - set2, 
                                   page.Canvas.Size.Height / 2 + set1 - set2)
    # 逆时针旋转坐标系45度
    page.Canvas.RotateTransform(-45.0)
    # 在页面上绘制水印
    page.Canvas.DrawString(text, font, PdfBrushes.get_Cyan(), 0.0, 0.0)

# 保存文档
pdf.SaveToFile("output/单行文本水印.pdf")
pdf.Close()

Python 添加文字水印到 PDF 文档

在 PDF 文档中添加多行文字水印

多行文字水印是指在 PDF 页面上有规律地重复多次的文字水印。用户可使用 PdfTillingBrush 对象插入多行文本水印,并可通过修改对象的大小来控制水印的重复次数。具体操作步骤如下:

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument类的对象
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("示例.pdf")

# 创建PdfTrueTypeFont类的对象
font = PdfTrueTypeFont("HarmonyOS Sans SC", 32.0, 0, True)

# 指定水印文本
text = "文旅中心"

# 遍历文档的每一页
for i in range(pdf.Pages.Count):
    # 获取一页
    page = pdf.Pages.get_Item(i)
    # 创建PdfTilingBrush类的对象
    brush = PdfTilingBrush(SizeF(page.Canvas.ClientSize.Width / float(3), page.Canvas.ClientSize.Height / float(3)))
    # 设置水印的透明度
    brush.Graphics.SetTransparency(0.3)
    brush.Graphics.Save()
    # 将画刷的坐标系平移到指定位置
    brush.Graphics.TranslateTransform(brush.Size.Width / float(2), brush.Size.Height / float(2))
    # 逆时针旋转坐标系45度
    brush.Graphics.RotateTransform(-45.0)
    # 在画刷上绘制水印文本
    brush.Graphics.DrawString(text, font, PdfBrushes.get_Violet(), 0.0, 0.0, PdfStringFormat(PdfTextAlignment.Center))
    brush.Graphics.Restore()
    brush.Graphics.SetTransparency(1.0)
    # 在页面上绘制水印
    page.Canvas.DrawRectangle(brush, RectangleF(PointF(0.0, 0.0), page.Canvas.ClientSize))

# 保存PDF文档
pdf.SaveToFile("output/多行文本水印.pdf")
pdf.Close()

Python 添加文字水印到 PDF 文档

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

图像水印经常出现在共享的 PDF 文档中。与文本水印不同,图片水印通过显示公司标志、商标、警示图标等,以更直观的方式强调版权、所有权和保密性等信息。此外,将图片水印添加到 PDF 文档中还可以帮助进行品牌推广,以及增强文档的视觉效果等。本文将介绍如何使用 Spire.PDF for Python 在 Python 程序中在 PDF 文档中插入图像水印

安装 Spire.PDF for Python

本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.PDF

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.PDF for Python

在 PDF 文档中添加单一图像水印

单一图像水印是在 PDF 页面中央单次显示的半透明图像。使用 Spire.PDF for Python,用户可以将指定图像作为水印绘制在任意 PDF 页面上。具体步骤如下:

  • Python
from spire.pdf import *
from spire.pdf.common import *

# 创建 PdfDocument 类的对象
pdf = PdfDocument()

# 加载 PDF 文档
pdf.LoadFromFile("示例.pdf")

# 加载水印图像
image = PdfImage.FromFile("水印.png")

# 获取图像的宽度和高度
imageWidth = float(image.Width)
imageHeight = float(image.Height)

# 循环遍历文档中的页面
for i in range(pdf.Pages.Count):
    # 获取页面
    page = pdf.Pages.get_Item(i)
    # 设置水印的透明度
    page.Canvas.SetTransparency(0.3)
    # 获取页面的宽度和高度
    pageWidth = page.ActualSize.Width
    pageHeight = page.ActualSize.Height
    # 在页面上绘制水印图像
    page.Canvas.DrawImage(image, pageWidth/2 - imageWidth/2, pageHeight/2 - imageHeight/2, imageWidth, imageHeight)

# 保存文档
pdf.SaveToFile("output/单一图像水印.pdf")
pdf.Close()

Python 添加图像水印到 PDF 文档

在 PDF 文档中添加重复图像水印

重复图像水印是在 PDF 页面上有规律地重复显示的图像。使用 Spire.PDF for Python 在 PDF 页面上绘制重复图像水印需要用到 PdfTillingBrush 类。以下是详细步骤:

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 类的对象
pdf = PdfDocument()

# 加载 PDF 文档
pdf.LoadFromFile("示例.pdf")

# 加载水印图像
image = PdfImage.FromFile("水印.png")

# 遍历文档的页面
for i in range(pdf.Pages.Count):
    # 获取一个页面
    page = pdf.Pages.get_Item(i)
    # 创建 PdfTilingBrush 类的对象并设置其大小
    brush = PdfTilingBrush(SizeF(page.Canvas.Size.Width / float(3), page.Canvas.Size.Height / float(3)))
    # 设置水印的透明度
    brush.Graphics.SetTransparency(0.3)
    brush.Graphics.Save()
    # 将坐标转换到指定位置
    brush.Graphics.TranslateTransform(brush.Size.Width/2 - image.Width/2, brush.Size.Height/2 - image.Height/2)
    # 在刷子上绘制水印图像
    brush.Graphics.DrawImage(image, 0.0, 0.0, float(image.Width), float(image.Height))
    brush.Graphics.Restore()
    # 在页面上绘制水印
    page.Canvas.DrawRectangle(brush, RectangleF(PointF(0.0, 0.0), page.Canvas.Size))

# 保存 PDF 文档
pdf.SaveToFile("output/重复图像水印.pdf", FileFormat.PDF)
pdf.Close()

Python 添加图像水印到 PDF 文档

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

使用Python实现PDF到Excel自动化转换

PDF 文件因其版式稳定、跨平台兼容的特点,已成为日常办公中共享报告、合同和财务资料的常用格式。然而,正是这种固定的布局,导致从 PDF 中提取数据变得十分困难,尤其在涉及表格或多页内容时更为明显。相比之下,Excel 在数据处理、分析和可视化方面更具优势,因此,将 PDF 文件转换为 Excel 表格已成为高效提取和利用 PDF 数据的有效途径。

在这篇文章中,您将学习如何使用 Python 和 Spire.PDF for Python 库将 PDF 文件转换为 Excel(XLSX)格式,内容涵盖从快速转换到支持布局和格式控制的高级设置,帮助您灵活应对各类文档转换需求。

目录

为什么使用 Python 将 PDF 转换为 Excel

与手动复制粘贴数据相比,使用Python将PDF转换为Excel有许多优势:

  • 自动化处理:可批量处理多个 PDF 文件,节省人工操作时间。
  • 提高准确性:减少手动复制粘贴导致的数据错误或遗漏。
  • 结构化输出:将 PDF 中的表格或数据以结构化形式导出,便于后续分析。
  • 便于分析和可视化:借助 Excel 的强大功能,对数据进行筛选、汇总和图表展示。
  • 灵活集成:可与其他 Python 脚本或系统集成,实现数据流转自动化。

开发环境准备

在开始将 PDF 文件转换为 Excel 之前,需要先配置好开发环境,确保系统中已安装所需的 Python 版本及 Spire.PDF 库。

安装 Python

如果您的设备尚未安装 Python,可前往 Python 官网 下载并安装最新版本。

安装 Spire.PDF for Python

Spire.PDF for Python是实现 PDF 转换为 Excel 的核心库,可通过以下命令进行安装:

pip install Spire.PDF

上述命令将自动下载并安装 Spire.PDF 库及其相关依赖项。如需了解更多安装细节,请参考:如何在 Windows 中安装 Spire.PDF for Python

使用 Python 快速将 PDF 转换为 Excel

对于结构较为简单的 PDF 文档,可以直接使用 LoadFromFile 加载文件,并调用 SaveToFile 将其保存为 Excel 格式。

实现步骤

  • 创建 PdfDocument 对象。
  • 使用 LoadFromFile 方法加载 PDF 文件。
  • 使用 SaveToFile 方法将 PDF 保存为 Excel 文件(.xlsx 格式)。

示例代码

from spire.pdf import *

# Create a PdfDocument object
pdf = PdfDocument()

# Load your PDF file
pdf.LoadFromFile("Sample.pdf")

# Convert and save the PDF to Excel
pdf.SaveToFile("output.xlsx", FileFormat.XLSX)

# Close the document
pdf.Close()

自定义 PDF 到 Excel 转换设置(布局与格式控制)

对于结构复杂的 PDF 文档,尤其是包含多页内容、旋转文本、跨行单元格或重叠元素的文件,您可以通过 XlsxLineLayoutOptions 类自定义转换设置,最大限度地保留 PDF 原有的布局和格式。

可设置的选项

选项 描述 默认值
convertToMultipleSheet 是否将 PDF 的每一页分别转换为单独的 Excel 工作表。 True
rotatedText 是否保留 PDF 中的旋转文本。启用后,Excel 中的文本方向将与原始 PDF 保持一致。 True
splitCell 控制 PDF 表格中包含多行文本的单元格是否拆分为多行 Excel 单元格。设置为 False 时,文本将保留在同一单元格中。 True
wrapText 是否启用 Excel 中的单元格文本自动换行,使长文本在单元格中自动换行显示。 True
overlapText 是否保留 PDF 中的重叠文本显示效果。启用后,Excel 中将以相似方式渲染这些重叠文本。 False

示例代码

from spire.pdf import *

# Create a PdfDocument object
pdf = PdfDocument()

# Load your PDF file
pdf.LoadFromFile("Sample.pdf")

# Define layout options
# Parameters: convertToMultipleSheet, rotatedText, splitCell, wrapText, overlapText
layout_options = XlsxLineLayoutOptions(True, True, False, True, False)

# Apply layout options
pdf.ConvertOptions.SetPdfToXlsxOptions(layout_options)

# Convert and save the PDF to Excel
pdf.SaveToFile("advanced_output.xlsx", FileFormat.XLSX)

# Close the document
pdf.Close()

自定义 PDF 到 Excel 转换效果

总结

使用 Python 和 Spire.PDF for Python库,您可以高效地将 PDF 文件转换为 Excel 格式,并保留原始布局与样式。无论是简单的单页文件,还是包含多页、旋转文本或复杂表格的 PDF,Spire.PDF 均提供灵活的转换选项,帮助您按需调整转换细节,实现更理想的输出效果。

想要体验完整功能?现在即可该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 Spire.PDF for Python 的免费试用授权,轻松开启 PDF自动化处理流程。

常见问题解答(FAQ)

Q1:我可以将 PDF 中的每一页转换为单独的 Excel 工作表吗?
A1:可以。只需设置 convertToMultipleSheet=True,即可将每页 PDF 导出为独立的工作表。

Q2:Spire.PDF 支持转换为哪种 Excel 格式?
A2:支持 .xlsx 格式,这是 Microsoft Excel 2007 及更高版本使用的标准格式。

Q3:转换时是否可以保留 PDF 中的表格格式?
A3:可以。Spire.PDF 支持保留合并单元格、单元格样式、背景色等常见格式设置。

Q4:我能否只提取某个特定表格内容导出到 Excel?
A4:可以。Spire.PDF 提供表格识别与提取功能,您可根据需求提取并保存特定表格的数据,避免处理整个文档。

Spire.PDF for Java 9.10.3 已发布。本次更新新增支持设置 AES 加密算法以及重置已有域的名字,同时还增强了 PDF 到 SVG、PPTX 和 PDFA2B 以及 OFD 到 PDF 的转换功能。此外,一些已知问题也在该版本中得到修复,如加载 PDF 时程序抛"NullPointerException"的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.PDF for Java 9.10.3请点击:

https://www.e-iceblue.cn/Downloads/Spire-PDF-JAVA.html

Spire.Presentation 8.10.2已发布。该版本新增支持获取形状内文本的位置信息的功能。同时也支持获取形状中文本的“Ascent”和“Descent”属性和将形状转换为SVG格式。此外,还修复了将PPT转换为SVG后,用浏览器打开SVG文件时出现空白的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.Presentationt 8.10.2请点击:

https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html

Spire.XLS 13.10.1 已发布。本次更新提升了 Excel 到 PDF 的转换效率,同时新增支持自定义透视表字段的名称。此外,本次更新还增强了 Excel 到 HTML 的转换。一些已知问题也在该版本中得到修复,如被删除的注释没有从文档中移除成功的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.XLS 13.10.1请点击:

https://www.e-iceblue.cn/Downloads/Spire-XLS-NET.html

当您需要在别的地方重复利用 PowerPoint 中的图片时,那么将其中的图片提取出来是很有必要的操作。提取后,您就可以灵活地在原始 PPT 文件之外使用这些图片,从而在不同的项目中最大限度地发挥它们的价值。本文将介绍如何使用 Spire.Presentation for Python 通过代码从 PowerPoint 文档中提取图片

安装 Spire.Presentation for Python

本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.Presentation

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Presentation for Python

Python 提取 PPT 文件中的所有图片

要从整个 PPT 演示文稿中提取图片,需要使用 Presentation.Images 属性获取文档中所有图片的集合。然后遍历集合中的元素,并调用 IImageData.Image.Save() 方法将每个元素保存为一个图片文件。具体步骤如下:

  • Python
from spire.presentation.common import *
from spire.presentation import *

# 创建Presentation对象
ppt = Presentation()

# 加载PPT文档
ppt.LoadFromFile("示例.pptx")

# 遍历文档中所有图片
for i, image in enumerate(ppt.Images):

    # 提取图片
    ImageName = "提取图片/图_"+str(i)+".png"
    image.Image.Save(ImageName)

ppt.Dispose()

Python 提取 PowerPoint 中的图片

Python 提取指定幻灯片中的图片

要从指定幻灯片中提取图片,需要遍历幻灯片上的所有形状,并找到 SlidePicturePictureShape 类型的形状,然后使用 SlidePicture.PictureFill.Picture.EmbedImage.Image.Save()PictureShape.EmbedImage.Image.Save() 方法将其保存为图像文件。具体步骤如下:

  • Python
from spire.presentation.common import *
from spire.presentation import *

# 创建Presentation对象
ppt = Presentation()

# 加载PPT文档
ppt.LoadFromFile("示例.pptx")

# 获取指定幻灯片
slide = ppt.Slides[1]

i = 0
#遍历该幻灯片中的所有形状
for s in slide.Shapes:

    # 确定形状是否为SlidePicture类型
    if isinstance(s, SlidePicture):

        # 如果是,则将图片保存到指定路径
        ps = s if isinstance(s, SlidePicture) else None
        ps.PictureFill.Picture.EmbedImage.Image.Save("幻灯片图片/图_"+str(i)+".png")
        i += 1

    # 确定形状是否为PictureShape类型
    if isinstance(s, PictureShape):

        # 如果是,则将图片保存到指定路径
        ps = s if isinstance(s, PictureShape) else None
        ps.EmbedImage.Image.Save("幻灯片图片/图_"+str(i)+".png")
        i += 1

ppt.Dispose()

Python 提取 PowerPoint 中的图片

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

设置适当的页边距是创建专业 Word 文档的重要步骤。页边距看似是一个小细节,但在提升文档外观方面却起着至关重要的作用。页边距控制了文档内容周围的空白空间,能够帮助保持内容布局的平衡,提升文档的展示效果。本文将介绍如何使用 Spire.Doc for Python 通过 Python 程序设置 Word 文档页边距

安装 Spire.Doc for Python

本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.Doc

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python

设置 Word 文档的页边距

Spire.Doc for Python 在 Margins 类下提供了一些属性,可用于设置文档页面四边的边距。需要注意页边距是根据节设置的,如果需要使整个文档的页边距保持一致,就要遍历文档的每个节来设置相同的页边距。以下是设置页边距的详细操作步骤:

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建Document类的对象
doc = Document()

# 读取Word文档
doc.LoadFromFile("示例.docx")

# 遍历文档的每个节
for i in range(doc.Sections.Count):
    # 获取节
    section = doc.Sections.get_Item(i)
    # 获取节的页边距
    margins = section.PageSetup.Margins
    # 设置上下左右页边距
    margins.Top = 17.9
    margins.Bottom = 17.9
    margins.Left = 20.9
    margins.Right = 20.9
    # Margins.All = 17.9

# 保存文档
doc.SaveToFile("output/设置页边距.docx", FileFormat.Auto)

Python 设置 Word 文档的页边距

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

Spire.Doc 11.10.3已发布。该版本新增了转换Word到PDF时文本整形的功能且支持 .NET 4.6.2及以上、 .NET Core 和 .NET Standard平台。详情请阅读以下内容。

新功能:


获取Spire.Doc 11.10.3点击:

https://www.e-iceblue.cn/Downloads/Spire-Doc-NET.html

Spire.PDF for Android via Java 9.10.1已发布。该版本支持在加密PDF文档时设置加密选项以及支持判断PDF文档流是否被加密。 此外,它还新增了支持将PDF转换为Word的新方法。详情请阅读以下内容。

新功能:


获取 Spire.PDF for Android via Java 9.10.1请点击:

https://www.e-iceblue.cn/Downloads/pdf-for-android-via-java.html