Spire.PDF 9.10.2 已发布。本次更新新增支持按阅读顺序获取分栏文档的文本坐标、为 PdfStringFormat 设置 HorizontalScalingFactor 属性以及在转换有权限密码的PDF时设置是否允许转换。同时该版本还增强了 OFD 到 PDF 的转换。此外,一些已知问题也在该版本种得到修复,如提取的表格数据格式不正确的问题。详情请阅读以下内容。
新功能:
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(input);
PdfPageBase pdfPageBase = doc.Pages[0];
PdfTextFinder finder = new PdfTextFinder(pdfPageBase);
finder.Options.Strategy = PdfTextStrategy.Simple;PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add();
string text = "Please add the code picture BehindText=true to set the picture behind text";
PdfSolidBrush solidBrush = new PdfSolidBrush (new PdfRGBColor(Color.Black));
PdfStringFormat format = new PdfStringFormat():
format.HorizontalScalingFactor = 80;
PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 14f, PdfFontStyle.Regular);
PdfGraphicsState state = page.Canvas.Save();
page.Canvas.DrawString(text, font, solidBrush, 0, 0, format);
page.Canvas.Restore(state):
doc.SaveToFile(outputFile);
doc.Close();PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
doc.ConvertOptions.ApplyPermissionsOptions(true);
StringBuilder sb = new StringBuilder();
foreach (FileFormat type in Enum.GetValues(typeof(FileFormat)))
{
try
{
if (type.ToString().Equals("PDF"))
{
doc.SaveToFile(outputFile_P, type);
}
else
{
doc.SaveToFile(outputFile, type);
}
}
catch (Exception ex)
{
sb.AppendLine("save to: "+ type +" :"+ ex.Message);
}
}
File.AppendAllText(outputFile,sb.ToString());
doc.Dispose();问题修复:
PDF 文档的比较功能能够帮助用户实现高效的文档管理。通过比较 PDF 文档,用户可以轻松识别文档内容的差异,对文档有更全面的了解,从而更方便地对文档内容进行修改和整合。本文将介绍如何使用 Spire.PDF for Java 通过 Java 程序比较 PDF 文档并找出文档内容的差异。
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>11.11.11</version>
</dependency>
</dependencies>
将用于比较的两个 PDF 文档的示例:

Spire.PDF for Java 提供了 PdfComparer 类来表示 PDF 文档比较器。用户可以使用两个 PdfDocument 类对象创建 PdfComparer 类的对象,从而创建对两个文档进行比较的比较器。创建好 PdfComparer 类的对象后,用户可使用 PdfComparer.compare(String fileName) 方法对两个文档进行比较,并将比较结果保存到新的 PDF 文件。
生成的比较结果 PDF 文档左右会两边分别显示两个原始文档,删除的项目用红色显示在左边,添加的项目用黄色显示在右边。
比较两个 PDF 文档的详细操作步骤如下:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;
public class ComparePDF {
public static void main(String[] args) {
//创建一个PdfDocument类对象并加载一个PDF文档
PdfDocument pdf1 = new PdfDocument();
pdf1.loadFromFile("示例1.pdf");
//创建另一个PdfDocument类对象并加载另一个PDF文档
PdfDocument pdf2 = new PdfDocument();
pdf2.loadFromFile("示例2.pdf");
//创建一个PdfComparer类的对象
PdfComparer comparer = new PdfComparer(pdf1, pdf2);
//比较两个PDF 档并将比较结果保存到一个新文档中
comparer.compare("比较结果.pdf");
}
}

在对文档进行比较之前,还可以使用 PdfComparer.getOptions().setPageRanges() 方法来限制要比较的页面范围。具体操作步骤如下:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;
public class ComparePDFPageRange {
public static void main(String[] args) {
//创建一个PdfDocument类的对象并加载一个PDF文档
PdfDocument pdf1 = new PdfDocument();
pdf1.loadFromFile("示例1.pdf");
//创建另一个PdfDocument类的对象并加载另一个PDF文档
PdfDocument pdf2 = new PdfDocument();
pdf2.loadFromFile("示例2.pdf");
//创建一个PdfComparer类的对象
PdfComparer comparer = new PdfComparer(pdf1, pdf2);
//设置要比较的页面范围
comparer.getOptions().setPageRanges(1, 1, 1, 1);
//比较这两个PDF文档并将比较结果保存到一个新文档中
comparer.compare("比较结果.pdf");
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
对于许多使用 Python 编程语言的开发人员来说,创建、读取和编辑 Word 文档是一个常见需求。无论是生成报告、操作现有文档还是自动化文档创建,通过程序来处理 Word 文档可以极大地提高工作效率。本文将介绍如何使用 Spire.Doc for Python 在 Python 程序中创建、读取或编辑 Word 文档。
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
Spire.Doc for Python 提供了 Document 类用于表示 Word 文档模型。文档必须至少包含一个节(由 Section 类表示),每个节都是各种元素(如段落、表格、图表和图像)的容器。此示例将展示如何使用 Spire.Doc for Python 创建一个包含多个段落的简单 Word 文档。
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类的对象
doc = Document()
# 添加一个节
section = doc.AddSection()
# 设置页面边距
section.PageSetup.Margins.All = 40
# 添加一个标题
titleParagraph = section.AddParagraph()
titleParagraph.AppendText("Spire.Doc for Python 简介")
# 添加两个段落
bodyParagraph_1 = section.AddParagraph()
bodyParagraph_1.AppendText("Spire.Doc for Python 是专为开发人员设计的专业 Python 库,可在任何 Python 应用程序中创建、读取、写入、转换、比较和打印 Word 文档,处理速度快且质量高。")
bodyParagraph_2 = section.AddParagraph()
bodyParagraph_2.AppendText("作为独立的 Word Python API,Spire.Doc for Python 不需要在开发系统或目标系统上安装 Microsoft Word,而可以将 Microsoft Word 文档创建能力整合到任何 Python 应用程序中。")
# 应用标题1样式到标题段落
titleParagraph.ApplyStyle(BuiltinStyle.Heading1)
# 创建样式用于段落
style2 = ParagraphStyle(doc)
style2.Name = "paraStyle"
style2.CharacterFormat.FontName = "HarmonyOS Sans SC"
style2.CharacterFormat.FontSize = 13
doc.Styles.Add(style2)
bodyParagraph_1.ApplyStyle("paraStyle")
bodyParagraph_2.ApplyStyle("paraStyle")
# 设置段落的水平对齐方式
titleParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center
bodyParagraph_1.Format.HorizontalAlignment = HorizontalAlignment.Left
bodyParagraph_2.Format.HorizontalAlignment = HorizontalAlignment.Left
# 设置段落之间的间距
titleParagraph.Format.AfterSpacing = 10
bodyParagraph_1.Format.AfterSpacing = 10
# 保存到文件
doc.SaveToFile("output/Word文档.docx", FileFormat.Docx2019)

使用 Document.GetText() 方法即可直接提取出 Word 文档中的所有文本内容。以下是详细操作步骤。
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类的对象
doc = Document()
# 加载一个 Word 文件
doc.LoadFromFile("https://cdn.e-iceblue.cn/output/Word文档.docx")
# 从整个文档中获取文本
text = doc.GetText()
# 打印文本
print(text)

Spire.Doc for Python 提供的 Section.Paragraphs[index] 属性可以获取 Word 文档中的指定段落。如果要修改段落的文本,则可以通过 Paragraph.Text 属性为段落重新分配文本。以下是详细操作步骤。
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 对象
doc = Document()
# 加载一个 Word 文件
doc.LoadFromFile("https://cdn.e-iceblue.cn/output/Word文档.docx")
# 获取特定的章节
section = doc.Sections[0]
# 获取特定的段落
paragraph = section.Paragraphs[1]
# 更改段落的文本
paragraph.Text = "标题已更改"
# 保存到文件
doc.SaveToFile("output/编辑Word文档.docx", FileFormat.Docx2019)

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

Word 是办公中常用的文档格式,而 HTML 是网页内容展示的标准语言。将 Word (.doc或.docx)文档精准转换为 HTML 格式,可以方便地将内容嵌入到网站、内容管理系统或邮件模板中。这种转换尤其适合用于知识库、产品说明、服务协议等需要以网页形式展示文档内容的场景。
本文将介绍如何使用 Spire.Doc for Python 库在Python中实现 Word 到 HTML 的格式转换。内容涵盖基础转换与自定义转换两种实现方式,并提供完整的代码示例,帮助开发者灵活应对不同项目对 HTML 输出的样式与结构控制需求。
将 Word 文档转换为 HTML 格式,适用于多种业务场景,例如:
Spire.Doc for Python 是一款专为 Word 文档处理与格式转换而设计的库。该库功能稳定、易于使用,可在不依赖 Microsoft Word 或 Office 的情况下,将 Word 文档精准导出为 HTML,并保持文档原有的样式与布局。
在终端中运行以下pip命令即可完成安装:
pip install spire.doc
如需详细安装指导,请参考教程:如何在Windows上安装Spire.Doc for Python。
Spire.Doc for Python 支持将 Word 文档以默认或自定义设置转换为 HTML,满足快速导出或样式精细控制等不同需求。下文将分别对这两种实现方式进行详细介绍。
如果仅需将 Word 内容一键转换为 HTML 文件,且不涉及样式修改或结构调整,可通过 LoadFromFile 方法加载 Word 文档,并直接使用 SaveToFile 方法将其保存为 HTML 格式。
Word转HTML 代码示例
from spire.doc import *
from spire.doc.common import *
# 创建 Document 对象
document = Document()
# 加载 Word 文档(支持 DOC 和 DOCX)
document.LoadFromFile("清单.docx")
# 保存为 HTML 格式
document.SaveToFile("Output/Word转Html.html", FileFormat.Html)
# 关闭文档释放资源
document.Close()

若对 HTML 输出的结构与样式有更高的控制需求,可通过 Spire.Doc 提供的 HtmlExportOptions 属性进行自定义配置。通过该属性,开发者可以灵活设置是否保留页眉页脚,是否嵌入图片,CSS 的引用方式,以及表单字段的导出形式等,从而实现更精细的页面布局与资源管理,满足复杂项目对 HTML 格式的个性化要求。
自定义Word到HTML导出选项代码示例
from spire.doc import *
from spire.doc.common import *
# 创建 Document 实例
document = Document()
# 加载 Word 文件
document.LoadFromFile("清单.docx")
# 设置:导出时不包含页眉和页脚
document.HtmlExportOptions.HasHeadersFooters = False
# 设置:指定导出 HTML 使用的外部 CSS 文件名
document.HtmlExportOptions.CssStyleSheetFileName = "sample.css"
# 设置:样式类型为外部引用(非内联)
document.HtmlExportOptions.CssStyleSheetType = CssStyleSheetType.External
# 设置:图片不嵌入 HTML 中,保存在指定文件夹中
document.HtmlExportOptions.ImageEmbedded = False
document.HtmlExportOptions.ImagesPath = "Images/"
# 设置:将表单字段以纯文本形式导出,而不是交互式控件
document.HtmlExportOptions.IsTextInputFormFieldAsText = True
# 保存为 HTML 文件
document.SaveToFile("Output/自定义Word转Html.html", FileFormat.Html)
document.Close()
本文介绍了如何使用 Spire.Doc for Python 将 Word(.doc/.docx)文档精准转换为 HTML 格式,适用于网页展示、CMS 内容导入、邮件模板生成等多种场景。无论是通过快速导出方式实现一键式转换,还是利用自定义导出选项对样式和结构进行精细控制,开发者都可以根据具体项目需求,灵活选择合适的转换方式。
此外,Spire.Doc 还支持 Word 转 PDF、Word 文档合并、查找与替换内容等多种操作,您可以进一步阅读相关教程,深入掌握 Word 文档处理技巧。
Q1:Spire.Doc 是否支持将 DOC 和 DOCX 两种格式转换为 HTML?
A1:支持,Spire.Doc 可兼容旧版 DOC 和现代 DOCX 格式的导出。
Q2:转换过程中是否必须安装 Microsoft Word?
A2:不需要,Spire.Doc 是一个独立运行的库,无需依赖 Word 或 Office。
Q3:转换时是否可以将图片嵌入 HTML 中,而非单独保存?
A3:可以,只需将 ImageEmbedded 属性设置为 True,即可将所有图片嵌入到 HTML 文件中,无需创建额外图片目录。
Q4:Spire.Doc for Python是否支持跨平台运行?
A4:支持。该库不依赖 Office,能够在Windows、Linux和MacOS等多种操作系统和环境中稳定运行。
如需体验 Spire.Doc for .NET 的完整功能(无评估限制),你可以该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。免费 30 天试用授权。
Spire.XLS for Java 13.10.0已发布。该版本新增支持验证限制编辑的密码是否正确的方法。同时,也增强了从Excel到PDF、图像和OFD格式的转换功能。此外,一些已知问题也在该版本中被成功修复,如加载Excel文档时,程序抛出“Invalid ValidationAlertType string val"的问题。详情请阅读以下内容。
新功能:
worksheet.checkProtectionPassword(String password)问题修复:
编辑限制是 Word 文档中的一项安全功能,可以限制他人能对文档所做的修改。通过应用编辑限制,文档所有者可以指定可对文档进行哪种类型的编辑,以及可在文档的哪些部分进行编辑,保护文档内容和格式的完整,从而方便进行协作编辑和信息收集等。本文将介绍如何使用 Spire.Doc for Python 在 Python 程序中限制对 Word 文档的编辑以及移除 Word 文档编辑限制。
本教程需要用到 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 提供了 Document.Protect() 方法和 ProtectionType 枚举来对 Word 文档设置指定类型的编辑限制。
下表是 ProtectionType 枚举和对应编辑限制类型及说明:
| 枚举 | 编辑限制类型 | 说明 |
| ProtectionType.AllowOnlyReading | 不允许任何更改(只读) | 只允许阅读文档 |
| ProtectionType.AllowOnlyRevisions | 修订 | 只允许修订文档 |
| ProtectionType.AllowOnlyComments | 批注 | 只允许添加评论 |
| ProtectionType.AllowOnlyFormFields | 填写窗体 | 只允许填写表单 |
| ProtectionType.NoProtection | 无 | 无编辑限制 |
from spire.doc import *
from spire.doc.common import *
# 创建一个Document类对象
doc = Document()
# 加载一个Word文档
doc.LoadFromFile("示例.docx")
# 将编辑限制类型设置为只读(无更改)
doc.Protect(ProtectionType.AllowOnlyReading, "password")
# 将编辑限制类型设置为修订
# doc.Protect(ProtectionType.AllowOnlyRevisions, "password")
# 将编辑限制类型设置为批注
# doc.Protect(ProtectionType.AllowOnlyComments, "password")
# 将编辑限制类型设置为填写窗体
# doc.Protect(ProtectionType.AllowOnlyFormFields, "password")
# 保存文档
doc.SaveToFile("output/编辑限制.docx")
doc.Close()

在设置 Word 文档的编辑限制时,用户可以通过插入允许编辑区域的起始和结束标记来添加例外项(不受限制的区域)。具体操作步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建一个Document类对象
doc = Document()
# 加载一个Word文档
doc.LoadFromFile("示例.docx")
# 获取第一节
section = doc.Sections.get_Item(0)
# 创建权限起始标记和结束标记
start = PermissionStart(doc, "exception1")
end = PermissionEnd(doc, "exception1")
# 将权限起始标记和结束标记插入到第一节中
paragraph = section.Paragraphs.get_Item(1)
paragraph.ChildObjects.Insert(0, start)
paragraph.ChildObjects.Add(end)
# 设置编辑限制
doc.Protect(ProtectionType.AllowOnlyReading, "password")
# 保存文档
doc.SaveToFile("output/可编辑区域.docx")
doc.Close()

取消文档的编辑限制时,只需使用 Document.Protect() 方法将编辑限制类型设置为无即可。具体步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建一个Document类对象
doc = Document()
# 加载一个Word文档
doc.LoadFromFile("https://cdn.e-iceblue.cn/output/编辑限制.docx")
# 通过将限制类型设置为无限制来移除编辑限制
doc.Protect(ProtectionType.NoProtection)
# 保存文档
doc.SaveToFile("output/移除编辑限制.docx")
doc.Close()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
TXT 文本文件是一种存储纯文本数据的简单、通用且易于处理的文件格式。如果想要在文本文件中应用格式或添加图片、图表、表格和其他媒体元素,推荐的方案是将它们转换为 Word 文件。
反之,如果想要有效地提取 Word 文档的内容或减小文件大小,可以将它们转换为文本格式。本文将演示如何使用 Spire.Doc for Python 通过代码实现 Word 文档和 TXT 纯文本文件的互转。
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
TXT 文件转换为 Word 文档的操作十分简单,仅需几行代码即可实现。具体步骤如下。
from spire.doc import *
from spire.doc.common import *
# 创建Document类的对象
document = Document()
# 加载文本文件
document.LoadFromFile("示例.txt")
# 将文本文件保存为Word
document.SaveToFile("Output/Txt转Word.docx", FileFormat.Docx2016)
document.Close()

Spire.Doc for Python 提供的 Document.SaveToFile(string fileName, FileFormat.Txt) 方法可将 Word 文件导出为 TXT 纯文本格式。具体步骤如下。
from spire.doc import *
from spire.doc.common import *
# 创建Document类的对象
document = Document()
# 加载Word文件
document.LoadFromFile("云计算.docx")
# 将Word文件保存为txt格式
document.SaveToFile("Output/Word转Txt.txt", FileFormat.Txt)
document.Close()

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

PDF 文件作为一种通用且广泛使用的文档格式,常见于合同、发票、报告、电子书等多种场景。虽然 PDF 文件在排版和展示效果上表现出色,但由于其底层结构采用图层、对象和坐标的存储方式,导致从 PDF 中直接提取文本变得复杂且具有挑战性。
尤其面对包含大量页码、嵌套表格或图文混排的 PDF 文件时,传统的复制粘贴方法效率低下且难以保持文本的原始格式和结构。为了实现高效、精准的 PDF 文本提取,开发者通常借助专业的 Python PDF 解析库,通过编程方式自动读取并提取所需内容。
本教程将详细介绍如何使用 Spire.PDF for Python 库在 Python 中轻松 实现 PDF 文本的全面提取,包括全文提取、按页提取、按区域提取、过滤隐藏文本,以及获取文本在页面中的坐标和尺寸信息。通过本教程,您将掌握实用的 PDF 文本提取技巧,快速构建自动化处理和数据分析的解决方案。
读取PDF文件内容在诸多应用场景中具有重要意义,例如:
Spire.PDF for Python 是一款功能全面且易于使用的 PDF 处理库,主要用于帮助开发者简化PDF文档创建和操作等任务。它提供了强大的文本提取功能,适用于解析各种结构的 PDF 文档。
您可以通过在终端中运行以下命令轻松安装该库:
pip install spire.pdf
如需了解详细安装步骤,请参考此教程:如何在 Windows 上安装 Spire.PDF for Python
以下示例展示了如何快速提取 PDF 文档中的全部文本。该方法逐页遍历文档,提取每页文本,并将包含空格和换行的完整内容保存到文本文件,便于后续查看和处理。
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 对象
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile('C:/Users/Administrator/Desktop/in.pdf')
# 用于保存提取结果的变量
all_text = ""
# 创建 PdfTextExtractOptions 对象
extractOptions = PdfTextExtractOptions()
# 启用提取全部文本(包含空格)
extractOptions.IsExtractAllText = True
# 遍历每一页并提取文本
for i in range(doc.Pages.Count):
page = doc.Pages.get_Item(i)
textExtractor = PdfTextExtractor(page)
text = textExtractor.ExtractText(extractOptions)
all_text += text + "\n"
# 将提取的文本写入文件
with open('output/Extracted.txt', 'w', encoding='utf-8') as file:
file.write(all_text)
doc.Close()
Spire.PDF for Python 提供了多种灵活的文本提取选项,适用于不同场景下的 PDF 内容处理需求。例如,开发者可按页提取文本、限定区域提取内容、提取时过滤隐藏文字,还能获取文本在页面中的坐标位置与尺寸信息,便于精确定位与结构分析。
通过指定页面索引,开发者可以直接提取目标页的文本,而无需循环遍历整个文档。这种方式可以提高处理效率,适用于仅需要处理多页文档中的特定部分的场景。
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 对象
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile('C:/Users/Administrator/Desktop/in.pdf')
# 启用完整文本提取
extractOptions = PdfTextExtractOptions()
extractOptions.IsExtractAllText = True
# 获取第 1 页
page = doc.Pages.get_Item(0)
# 创建 PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)
# 提取文本
text = textExtractor.ExtractText(extractOptions)
# 写入文件
with open('output/Extracted.txt', 'w', encoding='utf-8') as file:
file.write(text)
doc.Close()

获取指定区域的文本可以帮助用户精准提取所需内容,避免处理无关信息。您可以定义一个矩形区域,只提取该区域内的文本。
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 对象
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile('C:/Users/Administrator/Desktop/in.pdf')
# 获取第 1 页
page = doc.Pages[0]
# 创建 PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)
# 创建提取选项并设置提取区域
extractOptions = PdfTextExtractOptions()
extractOptions.ExtractArea = RectangleF(90.0, 220.0, 770.0, 130.0)
# 提取文本
text = textExtractor.ExtractText(extractOptions)
# 写入文件
with open('output/ExtractedArea.txt', 'w', encoding='utf-8') as file:
file.write(text)
doc.Close()

某些 PDF 包含隐藏或不可见的文本,例如为辅助功能或 OCR 层添加的内容。如果您只想提取对用户可见的内容,可以选择忽略这些隐藏文本。
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 对象
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile('C:/Users/Administrator/Desktop/in.pdf')
# 设置提取选项以忽略隐藏文本
extractOptions = PdfTextExtractOptions()
extractOptions.IsShowHiddenText = False
# 获取第 1 页
page = doc.Pages[0]
# 创建 PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)
# 提取文本
text = textExtractor.ExtractText(extractOptions)
# 写入文件
with open('output/ExcludeHiddenText.txt', 'w', encoding='utf-8') as file:
file.write(text)
doc.Close()
除了获取文本内容外,Spire.PDF还支持提取其在页面中的位置坐标和尺寸信息,以便进行精确批注、内容定位或页面结构分析。
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 对象
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile('C:/Users/Administrator/Desktop/in.pdf')
# 遍历所有页面
for i in range(doc.Pages.Count):
page = doc.Pages[i]
# 为当前页面创建 PdfTextFinder 对象
finder = PdfTextFinder(page)
# 查找所有文本片段
fragments = finder.FindAllText()
print(f"第 {i + 1} 页:")
# 遍历文本片段并获取其在页面的位置和尺寸
for fragment in fragments:
text = fragment.Text
rects = fragment.Bounds
print(f'文本:"{text}"')
for rect in rects:
print(f"位置:({rect.X}, {rect.Y}),尺寸:({rect.Width} x {rect.Height})")
print()
doc.Close()
借助 Spire.PDF for Python,开发者可以高效、灵活地从 PDF 文件中提取文本。无论是解析整个文档,还是提取特定页面或区域的内容,该库都提供了强大且简便的解决方案。通过自动化文本提取,您可以显著提升工作效率,优化信息管理流程,并为后续的数据分析与业务决策提供有力支持。
想掌握更多 PDF 处理技巧?欢迎查看 【Python PDF 处理全系列教程】。
A1:可以。Spire.PDF for Python 支持在加载PDF时输入正确密码,从而打开受保护的PDF文件并提取其中的文本内容。
A2:支持。您可以通过循环遍历指定文件夹中的多个PDF文件,然后利用 Spire.PDF for Python 从每个文件中提取文本。
A3:虽然本教程主要讲解文本提取,Spire.PDF for Python 同样支持从 PDF 中 提取图片和 表格,满足多样化的内容处理需求。
A4:扫描版PDF文本提取需要借助OCR(光学字符识别)技术。Spire.PDF for Python 本身不内置OCR功能,但可以结合 Spire.OCR 库实现 图片转文本的精准识别。
如需完整体验 Spire.PDF for Python 的全部功能,可 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。(30 天无功能限制)。
Spire.Office 8.9.3 已发布。在该版本中,Spire.Presentation 8.9.4 支持设置幻灯片自动切换的时间以及设置和读取渐变停止样式的透明度和亮度;Spire.PDF 9.9.9 增强了 PDF 到图像以及 OFD 到 PDF 的转换;Spire.Doc 11.9.19 增强了 Word 和 HTML 到 PDF 的转换。此外,许多已知问题也在该版本中得到修复。详情请阅读以下内容。
该版本涵盖了最新版的 Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.Barcode, Spire.DataExport。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
新功能:
Presentation ppt = new Presentation();
ppt.LoadFromFile("input.pptx");
ppt.Slides[0].SlideShowTransition.AdvanceAfterTime = 1000;
ppt.Slides[1].SlideShowTransition.SelectedAdvanceAfterTime = false;
ppt.SaveToFile("output.pptx", FileFormat.Pptx2013);
ppt.Dispose();原有的项:
FromCorner1
FromCorner2
FromCorner3
FromCorner4
新增的项:
FromTopLeftCorner
FromBottomLeftCorner
FromTopRightCorner
FromBottomRightCornerPresentation ppt = new Presentation();
ppt.LoadFromFile("input.pptx");
StringBuilder stringBuilder = new StringBuilder();
IAutoShape shape = (ppt.Slides[0].Shapes[0] as GroupShape).Shapes[2] as IAutoShape;
GradientStopCollection stops = shape.Fill.Gradient.GradientStops;
for (int i = 0; i < stops.Count; i++)
{
float transparency = stops[i].Color.Transparency;
float brightness = stops[i].Color.Brightness;
stringBuilder.AppendLine("stops" + i + "transparency: " + transparency + " brightness: " + brightness);
}
File.WriteAllText("output.txt", stringBuilder.ToString());
stops[0].Color.Transparency = 0.5f;
stops[0].Color.Brightness = -0.32f;
ppt.SaveToFile("output.pptx", FileFormat.Auto);
ppt.Dispose();问题修复:
问题修复:
问题修复:
尊敬的顾客朋友:
2023国庆节和中秋节将至,成都冰蓝科技有限公司全体职工在此向您致以最诚挚的祝福与问候!为满足节日期间的客户需求,我司就放假安排做出如下通知:
因放假给您带来的不便,我们深表歉意。
感谢您一直以来的支持与合作,祝您度过一个愉快的假期!
邮件地址: