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

Spire.Cloud 纯前端文档控件

Spire.Email 6.7 现已发布。该版本新增了适配 .NET 9.0 Framework 的 DLL,并移除了适配 .NET 7.0 Framework 的 DLL。此外,它还升级了 HarfBuzzSharp 和 SkiaSharp 版本。详情参见下文。

调整:


*获取 Spire.Email 6.7,请点击:

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

Spire.Doc for JavaScript 13.3.3 已发布。本次更新新增对 MHTML 格式文件的写出支持。详情请阅读以下内容。

新功能:


获取 Spire.Doc for JavaScript 13.3.3 请点击:

https://www.e-iceblue.cn/Downloads/Spire-DOC-Javascript.html

Spire.Doc for Python 13.3.8 现已正式发布。最新版本支持 arm64/aarch64 平台,支持写出为 MHTML 格式文件。此外,本次更新还成功修复了一些已知问题,比如转换 HTML 到 PDF 时,内容丢失的问题。更多详情请查阅下面的内容。

新功能:

升级:

问题修复:


获取 Spire.Doc for Python 13.3.8 请点击:

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

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 文档中提取指定注释

尽管 Adobe Acrobat 提供了一键提取批注的功能,但在处理特定批注时缺乏灵活性。如果您只需提取某一条或几条批注,必须手动查找并复制,操作起来既繁琐又低效,尤其是在处理包含大量批注的 PDF 时。而 Spire.PDF 提供了 PdfAnnotationCollection.get_item() 方法,可精准提取指定批注,使 PDF 批注管理更加高效和灵活。

从 PDF 文档中提取指定注释的具体步骤:

下面的代码展示了怎样获取 PDF 文档第二页的第一个注释:

  • Python
from spire.pdf.common import *
from spire.pdf import *
 
# 创建一个 PdfDocument 类的对象
pdf = PdfDocument()
 
# 加载 PDF 文件
pdf.LoadFromFile( "/示例文档.pdf")

# 创建一个列表来保存批注信息
sb = []

# 获取 PDF 文档的第二页
page = pdf.Pages.get_Item(1)
 
# 访问该页上的批注集合
annotations = pdf.Pages.get_Item(1).AnnotationsWidget
 
# 获取该页面上的第一个批注
annotation = annotations.get_Item(0)
 
# 将批注的详细信息保存到列表中
sb.append("批注信息:")
sb.append("内容:" + annotation.Text)
modifiedDate = annotation.ModifiedDate.ToString()
sb.append("修改时间:" + modifiedDate)
 
# 将批注信息保存为文本文件
with open("/获取指定批注.txt", "w", encoding="utf-8") as file:
    file.write("\n".join(sb))

pdf.Close()

通过 Python 提取 PDF 文档中的指定批注

提取 PDF 文档某页面的所有注释

要从指定的 PDF 页面导出所有批注,可以使用 PdfPageBase.AnnotationsWidget 属性结合 PdfAnnotationCollection.get_Item() 方法。不过,为了确保不遗漏任何批注,需要遍历页面上的所有批注。下面将介绍具体的操作步骤,并提供代码示例供参考。

使用 Python 提取 PDF 页面上所有批注的步骤:

下方代码展示了如何提取 PDF 文档中第二页的所有批注:

  • Python
from spire.pdf.common import *
from spire.pdf import *
 
# 创建一个 PdfDocument 类的对象
pdf = PdfDocument()
 
# 加载 PDF 文件
pdf.LoadFromFile( "/示例文档.pdf")

# 创建一个列表来保存批注信息
sb = []

# 获取第二页的批注集合
annotations = pdf.Pages.get_Item(1).AnnotationsWidget
 
# 遍历第二页的批注集合
if annotations.Count > 0:
    for i in range(annotations.Count):
        # 获取当前的批注
        annotation = annotations.get_Item(i)
 
        # 获取批注的详细信息
        if isinstance(annotation, PdfPopupAnnotationWidget):
            continue
        sb.append("批注信息:")
        sb.append("内容:" + annotation.Text)
        modifiedDate = annotation.ModifiedDate.ToString()
        sb.append("修改时间:" + modifiedDate)
 
# 将批注信息保存为文本文件
with open("/获取页面上的所有批注.txt", "w", encoding="utf-8") as file:
    file.write("\n".join(sb))

pdf.Close()

Python 获取 PDF 文档页面上的所有批注

提取 PDF 文档中的所有注释

本指南的最后一部分将演示如何使用 Python 提取 PDF 文档中的所有批注。这个过程与从单个页面导出批注类似,但需要额外遍历每一页,以确保获取所有批注并访问其详细信息。最后,提取的批注信息将被保存到文本文件中,以便进一步使用。

提取 PDF 文档所有批注的步骤:

以下是导出 PDF 文件所有批注的示例代码:

  • Python
from spire.pdf.common import *
from spire.pdf import *
 
# 创建一个 PdfDocument 类的对象
pdf = PdfDocument()
 
# 加载 PDF 文件
pdf.LoadFromFile( "/示例文档.pdf")

# 创建一个列表来保存批注信息
sb = []

# 遍历 PDF 文档中的所有页面
for pageIndex in range(pdf.Pages.Count):
    sb.append(f"第 {pageIndex + 1} 页:")
 
    # 访问当前页面的批注集合
    annotations = pdf.Pages.get_Item(pageIndex).AnnotationsWidget
   
    # 遍历批注集合中的所有批注
    if annotations.Count > 0:
        for i in range(annotations.Count):
            # 获取当前页面的批注
            annotation = annotations.get_Item(i)
 
            # 跳过无效的批注(空文本和默认日期)
            if not annotation.Text.strip() and annotation.ModifiedDate.ToString() == "0001/1/1 0:00:00":
                continue
           
            # 提取批注信息

            sb.append("批注信息:")
            sb.append("内容:" + (annotation.Text.strip() or "N/A"))
            modifiedDate = annotation.ModifiedDate.ToString()
            sb.append("修改时间:" + modifiedDate)
    else:
        sb.append("本页没有批注。")
 
    # 在每页之后添加一个空白行
    sb.append("")
 
# 将所有批注保存到文件中
with open("/获取所有批注信息1.txt", "w", encoding="utf-8") as file:
    file.write("\n".join(sb))

pdf.Close()

通过 Python 获取 PDF 文档中的所有批注

申请临时 License

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

Spire.Cloud 10.3.4 已发布。该版本优化了 Word 文档加载保存效果,并修复了预览 PDF 文档效果不正确的问题。详情请查看以下内容

问题修复:


获取 Spire.Cloud 10.3.4 请点击:

https://cloud.e-iceblue.cn/index.php/privatization-download

在处理 Word 文档时,批量提取超链接功能具有广泛的应用价值。当需要从技术文档或产品手册中批量获取 URL 资源时,手动逐条提取不仅效率低下,还容易产生遗漏和错误。为此,本文提出基于 Python 的自动化解决方案,通过解析文档结构精准提取超链接锚文本、对应 URL 以及屏幕提示,为数据分析、SEO 优化等场景提供结构化数据支持。本文将介绍如何使用 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

用 Python 提取 Word 文档中的所有超链接

Word 文档中的超链接是域(Field)的一种。在提取超链接时,我们需要先判断文档中的各个文档对象是否为 Field 实例来找出所有域对象,然后通过判断域对象的 Type 属性是否为 FieldType.FieldHyperlink 来找出所有的超链接域。找到所有超链接后,我们可以使用 Field.FieldText 属性获取超链接的锚文本,并使用 Field.Code 属性获取超链接的完整域代码,形式如下:

超链接类型 域代码
普通超链接 HYPERLINK "https://www.example.com/example"
设置屏幕提示的超链接 HYPERLINK "https://www.example.com/example" \o "屏幕提示"

我们可以通过解析域代码来获取超链接的地址以及屏幕提示文本,从而实现超链接信息的完整提取。

以下是从 Word 文档中提取所有超链接的操作步骤:

完整代码示例:

  • Python
from spire.doc import Document, DocumentObjectType, Paragraph, Field, FieldType

# 创建Document对象
doc = Document()

# 加载Word文件
doc.LoadFromFile("Sample.docx")

# 创建列表用于储存超链接对象
hyperlinks = []
# 遍历文档中的节
for i in range(doc.Sections.Count):
    section = doc.Sections.get_Item(i)
    # 遍历节中的文档对象
    for j in range(section.Body.ChildObjects.Count):
        sectionObject = section.Body.ChildObjects.get_Item(j)
        # 判断当前文档对象是否为Paragraph实例
        if sectionObject.DocumentObjectType == DocumentObjectType.Paragraph:
            # 遍历段落中的文档对象
            for k in range((sectionObject if isinstance(sectionObject, Paragraph) else None).ChildObjects.Count):
                para = (sectionObject if isinstance(sectionObject, Paragraph) else None).ChildObjects.get_Item(k)
                # 判断当前文档对象是否为Field实例
                if para.DocumentObjectType == DocumentObjectType.Field:
                    field = para if isinstance(para, Field) else None
                    # 判断对象类型是否为超链接,将超链接对象添加到列表中
                    if field.Type == FieldType.FieldHyperlink:
                        hyperlinks.append(field)

# 将所有超链接的锚文本和URL保存到文本文件
with open("output/提取Word文档超链接.txt", "w", encoding="utf-8") as file:
    for i, hyperlink in enumerate(hyperlinks):
        # 获取超链接的锚文本
        anchorText = hyperlink.FieldText
        # 获取超链接域代码
        hyperlinkCode = hyperlink.Code
        # 获取超链接的URL
        url = hyperlinkCode.split('"')[1]
        # 判断是否存在屏幕提示
        if "\\o" in hyperlink.Code:
            # 获取屏幕提示
            hyperlinkTip = hyperlinkCode.split('\”')[3].strip()
            # 将锚文本、URL和屏幕提示写入文本文件
            file.write(f"锚文本:{anchorText}\nURL:{url}\n屏幕提示:{hyperlinkTip}\n\n")
        else:
            # 将锚文本和URL写入文本文件
            file.write(f"锚文本:{anchorText}\nURL:{url}\n\n")


# 关闭文档
doc.Close()

使用 Spire.Doc for Python 提取的 Word 文档超链接

申请临时 License

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

Spire.Presentation for Java 10.3.7 已发布。本次更新新增 setThreadsCount(int count) 方法用于设置转换 PPT 到 PDF 所使用的线程数。详情请阅读以下内容。

新功能:


获取 Spire.Presentation for Java 10.3.7 请点击:

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

Spire.Barcode 7.4 现已正式发布。此次更新升级了 .NET(net4.6、4.8)、netcore、netstandard 平台上 HarfBuzzSharp 和 SkiaSharp 的版本。更多详情请查阅以下内容。

升级:


获取 Spire.Barcode 7.4 请点击:

https://www.e-iceblue.com/Download/download-barcode-for-net.html

Spire.PDFViewer 7.13 现已发布。该版本修复了 PDF 内容预览不正确和水平垂直滚动条效果不正确的问题。详情请查阅以下内容。

问题修复:


获取 Spire.PDFViewer 7.13,请点击:

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

应用样式是提升 Excel 电子表格专业性和可读性的简单有效的方法之一。Excel 提供了多种内置样式,使用户能够快速格式化单元格或整个工作表。此外,用户还可以创建自定义样式,以满足特定的需求或个人偏好。无论是设计专业报告、销售报表还是项目管理计划,了解如何有效应用样式都能使数据更加美观且易于理解。这篇文章将介绍如何使用 Python 和 Spire.XLS for Python 库 给 Excel 单元格或工作表应用样式。

安装 Spire.XLS for Python

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

pip install Spire.XLS

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

Python 给 Excel 单元格应用内置样式

Spire.XLS for Python 提供了 CellRange.BuiltInStyle 属性,使开发者能够将内置样式(如标题、标题 1 和标题 2 等)应用于 Excel 中的单个单元格或单元格区域。具体步骤如下:

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

# 创建 Workbook 类的对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 获取特定的单元格区域
range = sheet.Range["A1:H1"]
# 将内置样式应用于单元格区域
range.BuiltInStyle = BuiltInStyles.Heading2

# 保存生成的文件
workbook.SaveToFile("应用内置样式.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python 给Excel单元格应用内置样式

Python 给 Excel 单元格应用自定义样式

开发者还可以使用 Workbook.Styles.Add() 方法创建自定义样式,然后使用 CellRange.Style 属性将其应用于单个单元格或单元格区域。具体步骤如下:

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

# 创建 Workbook 类的对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 获取特定的单元格区域
range = sheet.Range["A1:H1"]

# 将自定义样式添加到工作簿
style = workbook.Styles.Add("CustomCellStyle")
# 设置字体大小
style.Font.Size = 13
# 设置字体颜色
style.Font.Color = Color.get_White()
# 加粗文本
style.Font.IsBold = True
# 设置垂直文本对齐方式
style.VerticalAlignment = VerticalAlignType.Bottom
# 设置水平文本对齐方式
style.HorizontalAlignment = HorizontalAlignType.Left
# 设置底部边框颜色
style.Borders[BordersLineType.EdgeBottom].Color = Color.get_GreenYellow()
# 设置底部边框类型
style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium
# 设置单元格背景颜色
style.Color = Color.get_CornflowerBlue()

# 将自定义样式应用于单元格区域
range.Style = style

# 保存生成的文件
workbook.SaveToFile("应用自定义样式.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python 给Excel单元格应用自定义样式

Python 给 Excel 工作表应用自定义样式

在某些情况下,开发者可能需要将自定义样式应用于整个工作表,而不是特定的单元格或单元格区域。这可以通过使用 Worksheet.ApplyStyle() 方法来实现。具体步骤如下:

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

# 创建 Workbook 类的对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 将自定义样式添加到工作簿
style = workbook.Styles.Add("CustomSheetStyle")
# 设置字体大小
style.Font.Size = 12
# 设置字体颜色
style.Font.Color = Color.FromRgb(91, 155, 213)
# 设置单元格背景颜色
style.Color = Color.FromRgb(242, 242, 242)

# 将自定义样式应用于工作表
sheet.ApplyStyle(style)

# 保存生成的文件
workbook.SaveToFile("应用自定义样式到工作表.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python给 Excel 工作表应用自定义样式

申请临时 License

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