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

Spire.Cloud 纯前端文档控件

在 Word 文档中添加页码是一项基本功能,可增强可读性和导航功能,尤其是在冗长的文档中。它能让读者更容易找到特定内容,并帮助作者组织工作。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

Python 为 Word 文档添加页码

要使用 Spire.Doc 在 Word 文档中动态添加页码,您可以利用各种字段,如 FieldPage、FieldNumPages 和 FieldSection。这些字段可作为当前页码、总页数和章节编号的占位符,使您能够自定义并自动执行分页过程。

您可以通过调用 Paragraph.AppendField() 方法将这些占位符嵌入文档的页眉或页脚。

以下是如何在页脚插入 FieldPage 和 FieldNumPages 字段的分步指南,该字段将以 "X / Y" 格式显示页码:

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

# 创建一个Document对象  
document = Document()  
  
# 加载文档
document.LoadFromFile("示例文档.docx")  
  
# 获取文档的第一个节(Section)  
section = document.Sections.get_Item(0) 
  
# 获取这个节的页脚(Footer)  
footer = section.HeadersFooters.Footer  
  
# 在页脚中添加一个新的段落  
footerParagraph = footer.AddParagraph()  
  
# 在这个段落中添加页码字段  
footerParagraph.AppendField("page number", FieldType.FieldPage)  
  
# 添加文本 " / "  
footerParagraph.AppendText(" / ")  
  
# 在这个段落中添加总页数字段  
footerParagraph.AppendField("page count", FieldType.FieldNumPages)  
  
# 设置段落的水平对齐方式为居中  
footerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center  
  
# 创建一个新的段落样式(ParagraphStyle)  
style = ParagraphStyle(document)  
  
# 设置样式的字符格式为粗体  
style.CharacterFormat.Bold = True  
  
# 设置样式的字体为"Times New Roman"  
style.CharacterFormat.FontName = "Times New Roman"  
  
# 设置样式的字体大小为18  
style.CharacterFormat.FontSize = 18  
  
# 设置样式的文本颜色为红色  
style.CharacterFormat.TextColor = Color.get_Red()  
  
# 将这个样式添加到文档的样式集合中  
document.Styles.Add(style)  
  
# 将这个样式应用到页脚段落上  
footerParagraph.ApplyStyle(style)  
  
# 保存结果文件
document.SaveToFile("添加页码到文档.docx")  
  
# 释放文档对象占用的资源  
document.Dispose()

Python 为 Word 文档添加页码

Python 为特定章节添加页码

默认情况下,当您在某一章节的页脚添加页码时,页码会自动链接到前一章节,从而保持连续的页码序列。这种行为对大多数文档来说都很方便,但当你想从某一章节开始编号而又不影响文档其他部分的编号时,这种行为可能就不太理想了。

如果需要在特定章节添加页码,而又不与前一章节链接,则必须取消后续章节的链接,并清除其页脚的内容。下面是使用 Spire.Doc for Python 的方法。

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

# 创建一个新的Document对象  
document = Document()  
  
# 加载文档内容
document.LoadFromFile("示例文档.docx")  
  
# 指定要操作的章节的索引 
sectionIndex = 0  
  
# 获取指定的节  
section = document.Sections.get_Item(sectionIndex) 
  
# 设置章节重新开始页码编号  
section.PageSetup.RestartPageNumbering = True  
  
# 设置节的起始页码为1  
section.PageSetup.PageStartingNumber = 1  
  
# 获取这个节的页脚  
footer = section.HeadersFooters.Footer  
  
# 在页脚中添加一个新的段落  
footerParagraph = footer.AddParagraph()  
  
# 在段落中添加文本 
footerParagraph.AppendText("第 ")  
  
# 添加页码域
footerParagraph.AppendField("page number", FieldType.FieldPage)  
  
# 添加文本 
footerParagraph.AppendText("页, 章节 ")  
  
# 添加章节域
footerParagraph.AppendField("section number", FieldType.FieldSection)  
  
# 设置段落的水平对齐方式为居中  
footerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center  
  
# 创建一个新的段落样式 
style = ParagraphStyle(document)  
  
# 设置样式的字符格式为粗体  
style.CharacterFormat.Bold = True  
  
# 设置样式的字体为"宋体"  
style.CharacterFormat.FontName = "宋体"  
  
# 设置样式的字体大小为18  
style.CharacterFormat.FontSize = 18  
  
# 设置样式的文本颜色为红色
style.CharacterFormat.TextColor = Color.get_Red()  
  
# 将这个样式添加到文档的样式集合中
document.Styles.Add(style)  
  
# 将这个样式应用到页脚段落上
footerParagraph.ApplyStyle(style.Name)  
  
# 断开后续节的页脚与前一个节的链接
document.Sections[sectionIndex + 1].HeadersFooters.Footer.LinkToPrevious = False  
  
# 清除后续所有节的页脚内容,并添加空段落(防止内容继承)  
for i in range(sectionIndex + 1, document.Sections.Count): 
    document.Sections[i].HeadersFooters.Footer.ChildObjects.Clear()  
    document.Sections[i].HeadersFooters.Footer.AddParagraph()  
  
#保存结果文件
document.SaveToFile("添加页码到指定章节.docx")  
  
# 释放文档对象占用的资源
document.Dispose()

Python 为 Word 文档添加页码

Python 为不同章节添加不连续的页码

在处理包含多个部分的文档时,您可能希望为每个部分重新开始页码编号,以便清楚地区分它们。为此,您必须逐个章节添加页码,然后为下一章节重新设置页码。

以下是使用 Spire.Doc for Python 为不同章节添加不连续页码的步骤:

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

# 创建一个Document对象  
document = Document()  
  
# 从文件中加载文档  
document.LoadFromFile("示例文档.docx")  
  
# 遍历文档中的所有章节  
for i in range(document.Sections.Count):  
    # 获取当前章节  
    section = document.Sections[i]  
  
    # 设置章节的页码重新开始  
    section.PageSetup.RestartPageNumbering = True  
  
    # 设置章节的起始页码为1  
    section.PageSetup.PageStartingNumber = 1  
  
    # 获取章节的页脚  
    footer = section.HeadersFooters.Footer  
  
    # 在页脚中添加一个新的段落  
    footerParagraph = footer.AddParagraph()  
  
    # 在段落中添加文本 
    footerParagraph.AppendText("第 ")  
  
    # 添加页码域
    footerParagraph.AppendField("page number", FieldType.FieldPage)  
  
    # 添加文本
    footerParagraph.AppendText(" 页, 章节 ")  
   
    # 添加章节域
    footerParagraph.AppendField("section number", FieldType.FieldSection)  
  
    # 设置段落的水平对齐方式为居中  
    footerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center  
  
    # 创建一个新的段落样式  
    style = ParagraphStyle(document)  
  
    # 设置样式的字符格式为粗体  
    style.CharacterFormat.Bold = True  
  
    # 设置样式的字体为“宋体”  
    style.CharacterFormat.FontName = "宋体"  
  
    # 设置样式的字体大小为18  
    style.CharacterFormat.FontSize = 18  
  
    # 设置样式的文本颜色为红色  
    style.CharacterFormat.TextColor = Color.get_Red()  
  
    # 将这个样式添加到文档的样式集合中  
    document.Styles.Add(style)  
  
    # 将这个样式应用到页脚段落上
    footerParagraph.ApplyStyle(style.Name) 
  
# 保存修改后的文档  
document.SaveToFile("添加不连续的页码到不同的章节.docx")  
  
# 释放文档对象占用的资源  
document.Dispose()

Python 为 Word 文档添加页码

申请临时 License

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

Python PDF 文件压缩方法

PDF 作为一种格式规范统一且跨平台兼容的电子文档格式,已成为日常工作与学习中不可或缺的工具。然而,包含高分辨率图片或扫描内容的 PDF 文件往往体积庞大,导致传输缓慢、占用较多存储空间,给文件共享和管理带来诸多不便。

通过有效的 PDF 压缩,不仅可以显著减少文件大小,还能最大限度保留内容的清晰度与完整性,满足不同场景下的使用需求。无论是提升共享效率,还是优化移动设备上的阅读体验,压缩 PDF 文件都是一项实用且必要的优化手段。

本文将介绍如何使用 Spire.PDF for Python 在Python中实现多种PDF压缩方式,包括图片压缩、字体优化、整体内容压缩、去除冗余元数据与附件、以及批量压缩等,帮助开发者在保持文件可读性和清晰度的同时,有效降低文件体积。

目录

PDF 文件压缩的使用场景及优势

PDF 文件压缩能帮助解决文件过大带来的各种问题,适用于多种场景:

使用场景 优势
作为邮件附件发送 减少发送失败的可能性,提高传输成功率
上传至网站或平台 加快上传速度,提升用户体验,减轻服务器压力
移动端访问 降低加载延迟,节省流量,提高浏览效率
存储在云端 节省存储空间,降低长期存储成本
提交至应用商店 满足平台对文件大小的限制,确保顺利提交

开发环境准备

在开始之前,需要先配置好开发环境,确保系统中已安装所需的 Python 版本及 Spire.PDF 库:

安装 Python

请确保您的设备已安装 Python 3.7 或更高版本。如果没有安装,可前往Python 官方网站下载安装最新版本。

安装 Spire.PDF for Python 库

Spire.PDF 是一款功能全面的 PDF 操作库,支持PDF文档压缩、签名、加密、内容提取、表格识别等多种功能。您可以通过 pip 命令直接安装该库:

pip install spire.pdf

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

Python 实现 PDF 压缩的五种方法

本节将详细介绍五种实用的PDF压缩方法:

  • 图片压缩
    压缩 PDF 中的图片资源,减小图片占用空间。
  • 字体压缩与取消字体嵌入
    优化字体数据,减少文件中嵌入字体的大小,降低整体文档体积。
  • 整体内容压缩
    对PDF 文件整体内容进行压缩,提升压缩比。
  • 移除元数据和附件
    清理不必要的元数据和嵌入附件,进一步缩减文件体积。
  • 批量压缩多个 PDF 文件
    对大量文件进行自动化压缩处理,提升工作效率,适合批量文档管理需求。

图片压缩

Spire.PDF 提供图片压缩功能,可统一调整文档中所有图片的质量,从而有效优化整体文件大小。支持的压缩质量等级包括 Low(低)、Medium(中)和 High(高)。该功能适用于包含大量照片或扫描图片的 PDF 文件,帮助用户在保证视觉效果的前提下减小文件体积。

示例代码

from spire.pdf import *
# 加载PDF文件
compressor = PdfCompressor("C:/Users/Administrator/Documents/示例.pdf")
options = compressor.OptimizationOptions

# 启用图片缩放
options.SetResizeImages(True)

# 启用图片压缩
options.SetIsCompressImage(True)

# 设置图片压缩质量
options.SetImageQuality(ImageQuality.Medium)

# 执行压缩操作
compressor.CompressToFile("压缩.pdf")

使用 Spire.PDF 在 Python 中压缩 PDF 图片

字体压缩与取消字体嵌入

PDF 文件中通常包含嵌入的字体或字体集,这会增加文件体积。通过对字体进行优化,可以有效减小 PDF 文件大小。Spire.PDF 支持两种字体优化方式:

  • 压缩已嵌入的字体,减少字体数据占用
  • 取消嵌入不必要的字体(适用于阅读设备已安装对应字体的情况)

示例代码

from spire.pdf import *

# 加载 PDF 文件
compressor = PdfCompressor("C:/Users/Administrator/Documents/示例.pdf")

# 获取压缩设置
options = compressor.OptimizationOptions

# 启用字体压缩
options.SetIsCompressFonts(True)

# 可选操作:取消嵌入字体
# options.SetIsUnembedFonts(True)

# 执行压缩并保存文件
compressor.CompressToFile("压缩.pdf")

整体内容压缩

除了优化图片和字体之外,Spire.PDF 还支持对整个 PDF 文档内容进行压缩。通过调整文档压缩级别并禁用增量更新功能,可以进一步缩减文件体积,提高压缩效果。

示例代码

from spire.pdf import *

# 加载 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile("C:/Users/Administrator/Documents/示例.pdf")

# 禁用增量更新
pdf.FileInfo.IncrementalUpdate = False

# 设置压缩级别为最高
pdf.CompressionLevel = PdfCompressionLevel.Best

# 保存优化后的 PDF
pdf.SaveToFile("压缩.pdf")
pdf.Close()

移除元数据和附件

很多 PDF 包含作者、标题、关键词等元数据,甚至还可能携带附件。虽然这些内容对阅读影响不大,但却可能增加文件体积。通过清除元数据与附件,可以快速实现减小文件大小的目的。

示例代码

from spire.pdf import *

pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")

# 关闭增量更新
pdf.FileInfo.IncrementalUpdate = False

# 清除作者与标题等元数据
pdf.DocumentInformation.Author = " "
pdf.DocumentInformation.Title = " "

# 删除所有嵌入附件
pdf.Attachments.Clear()

# 保存优化后的文件
pdf.SaveToFile("优化.pdf")
pdf.Close()

批量压缩多个 PDF 文件

当需要处理多个 PDF 文件时,可以通过遍历指定文件夹,对每个文件应用压缩与优化策略,从而实现批量处理流程。该方法特别适合用于批量归档、批量邮件发送或服务器端定时处理等场景。

示例代码

import os
from spire.pdf import *

# 设置文件夹路径
input_folder = "C:/PDFs/"

# 遍历文件夹中的 PDF 文件
for file in os.listdir(input_folder):
    if file.endswith(".pdf"):
        # 加载 PDF 
        compressor = PdfCompressor(os.path.join(input_folder, file))
        options = compressor.OptimizationOptions

        # 应用图片压缩
        options.SetResizeImages(True)
        options.SetIsCompressImage(True)
        options.SetImageQuality(ImageQuality.Medium)

        # 保存到新文件
        output_path = os.path.join(input_folder, "压缩_" + file)
        compressor.CompressToFile(output_path)

总结

PDF 压缩是提升文件传输效率、减少存储压力的重要手段。通过 Spire.PDF for Python,开发者可以灵活运用多种压缩策略,包括:

  • 精简嵌入字体资源
  • 压缩图片
  • 优化整体文档内容
  • 移除冗余的元数据与附件
  • 批量压缩处理

这些压缩技术为开发者提供了灵活、高效的解决方案,帮助显著减小 PDF 文件体积,优化传输和存储效率,满足多种实际应用需求。

常见问题解答

Q1:Spire.PDF for Python 是否支持 Linux 和 macOS?

A1:支持。Spire.PDF for Python 兼容 Windows、Linux 与 macOS 系统。

Q2:Spire.PDF for Python 是否有免费版本?

A2:Spire.PDF 提供适用于个人学习或小型项目的免费版本。在免费版本中,部分功能可能受限。若需完整功能,可以该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。免费 30 天的商业版试用授权。

Q3:压缩后是否会影响 PDF 的视觉质量?

A3:Spire.PDF 提供多级压缩选项,在保持视觉效果的前提下压缩图片和字体,确保文档内容清晰可读。开发者可根据需求灵活设置压缩参数。

Word 文档中通常包含称为文档属性的元数据,涵盖了标题、作者、主题及关键词等信息。对这些属性进行操作对于文档维护、文档检索,以及在协作编辑时确保正确的归属认定极为重要。借助 Spire.Doc for Python,开发者能够自动化执行在 Word 文档中设置、读取及删除文档属性的任务,从而简化文档管理流程,并使这些流程能融入更大型的自动化系统中。本文将通过详尽的步骤说明与代码示例,展示如何利用 Spire.Doc for 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 为开发者提供了 Document.BuiltinDocumentProperties 属性,以便访问 Word 文档的内置文档属性。这些属性的值可通过 BuiltinDocumentProperties 类下的相应属性进行设置。

以下是向 Word 文档中添加主要内置属性的步骤:

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

# 创建Document类实例
doc = Document()

# 载入Word文档
doc.LoadFromFile("示例.docx")

# 设置文档预设属性
builtinProperty = doc.BuiltinDocumentProperties
builtinProperty.Title = "人工智能革命"
builtinProperty.Subject = "人工智能中神经网络的高级应用和未来方向"
builtinProperty.Author = "西蒙"
builtinProperty.Manager = "艾莉"
builtinProperty.Company = "AI研究工作室"
builtinProperty.Category = "研究"
builtinProperty.Keywords = "机器学习;神经网络;人工智能"
builtinProperty.Comments = "本文介绍的是人工智能的发展现状。"
builtinProperty.HyperLinkBase = "www.e-iceblue.com"

# Save the document
doc.SaveToFile("output/添加内置文档属性到Word文档.docx", FileFormat.Docx2019)
doc.Close()

Python 设置、读取和移除 Word 文档内置属性

读取 Word 文档中的内置文档属性

除了添加信息之外,BuiltinDocumentProperties 类下的属性还可以直接读取 Word 文档中已存在的内置属性信息,从而方便实现文档搜索、信息提取及文档分析等多种功能。

使用 Spire.Doc for Python 读取文档内置属性的具体步骤如下:

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

# 创建Document类实例
doc = Document()

# 载入Word文档
doc.LoadFromFile("output/添加内置文档属性到Word文档.docx")

# 获取文档预设属性
builtinProperties = doc.BuiltinDocumentProperties

# 获取文档预设属性信息
properties = [
    "作者:" + builtinProperties.Author,
    "单位:" + builtinProperties.Company,
    "标题:" + builtinProperties.Title,
    "主题:" + builtinProperties.Subject,
    "关键词:" + builtinProperties.Keywords,
    "类别:" + builtinProperties.Category,
    "主管:" + builtinProperties.Manager,
    "备注:" + builtinProperties.Comments,
    "超链接基础:" + builtinProperties.HyperLinkBase,
    "字数:" + str(builtinProperties.WordCount),
    "页数:" + str(builtinProperties.PageCount),
]

# 输出预设属性信息
for i in range(0, len(properties)):
    print(properties[i])

doc.Close()

Python 设置、读取和移除 Word 文档内置属性

删除 Word 文档中的内置文档属性

若要移除含有特定内容的文档内置属性以保护隐私信息,同时保留必要细节,可以通过将其设置为空值来实现。

从 Word 文档中移除特定内置文档属性的详细步骤如下:

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

# 创建Document类实例
doc = Document()

# 载入Word文档
doc.LoadFromFile("output/添加内置文档属性到Word文档.docx")

# 获取文档的预设属性
builtinProperties = doc.BuiltinDocumentProperties

# 通过将属性设置为空来移除预设属性
builtinProperties.Author = None
builtinProperties.Company = None
builtinProperties.Title = None
builtinProperties.Subject = None
builtinProperties.Keywords = None
builtinProperties.Comments = None
builtinProperties.Category = None
builtinProperties.Manager = None

# 保存文档
doc.SaveToFile("output/移除Word文档预设属性.docx", FileFormat.Docx)
doc.Close()

Python 设置、读取和移除 Word 文档内置属性

申请临时 License

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

Spire.Presentation 9.5.3 已发布。该版本新增了 ColumnSpacing 属性用于设置分栏间距,还修复了在添加图片到演示文稿和将 PPT 转换为 SVG 时出现的一些问题。详情请查看下文。

新功能:

问题修复:


获取Spire.Presentation 9.5.3,请点击:

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

Spire.PDF 10.5.5 已发布。本次更新增强了 PDF 到 XPS、SVG、PDFA3A、PPTX、OFD 和图片,以及 OFD 到 PDF 的转换功能。此外,本次更新还修复了许多已知问题,如打印 PDF 时内容模糊的问题。详情请阅读以下内容。

问题修复:


获取 Spire.PDF 10.5.5,请点击:

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

要有效管理 Word 文档,通常需要将文档拆分成更小的部分。然而,手动执行这项任务既耗时又耗力。幸运的是,Spire.Doc for Python 提供了一种方便高效的方法,可以通过编程来拆分 Word 文档,帮助用户提取文档的特定部分,将冗长的文档拆分成小块,并简化数据提取。本文演示了如何使用 Spire.Doc for Python 在 Python 中将 Word 文档拆分成多个文档。

由于文档内容的动态性质,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 文档拆分成内容相关的小文档。通过分页符拆分 Word 文档的详细步骤如下:

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

# 输入文件名  
inputFile = "示例文档.docx"  
# 输出文件夹名  
outputFolder = "按分页符拆分/"  

# 创建一个Document对象
original = Document()  
# 从文件中加载原始文档  
original.LoadFromFile(inputFile)  
  
# 创建一个新的Document对象
newWord = Document()  
# 在newWord中添加一个新的章节  
section = newWord.AddSection()  
  
# 将原始文档的默认样式克隆到新文档中  
original.CloneDefaultStyleTo(newWord)  
# 将原始文档的主题克隆到新文档中  
original.CloneThemesTo(newWord)  
# 将原始文档的兼容性设置克隆到新文档中  
original.CloneCompatibilityTo(newWord)  
  
index = 0  # 初始化索引,用于命名输出文件  
  
# 遍历原始文档中的每个章节  
for m in range(original.Sections.Count):
    # 获取当前章节 
    sec = original.Sections.get_Item(m)   
      
    # 遍历当前章节中的所有子对象
    for k in range(sec.Body.ChildObjects.Count):  
        obj = sec.Body.ChildObjects.get_Item(k)  
          
        # 如果子对象是段落  
        if isinstance(obj, Paragraph):  
            # 确保obj是Paragraph类型,如果不是则跳过  
            para = obj if isinstance(obj, Paragraph) else None  
              
            # 克隆当前章节的属性到新章节  
            sec.CloneSectionPropertiesTo(section)  
            # 将段落的克隆添加到新章节中  
            section.Body.ChildObjects.Add(para.Clone())  
              
            # 遍历段落中的每个子对象
            for j in range(para.ChildObjects.Count):  
                parobj = para.ChildObjects.get_Item(j)  
                  
                # 如果子对象是分页符,并且类型为分页  
                if isinstance(parobj, Break) and (parobj if isinstance(parobj, Break) else None).BreakType == BreakType.PageBreak:  
                    # 获取分页符在当前段落中的索引  
                    i = para.ChildObjects.IndexOf(parobj)  
                      
                    # 从新章节的最后一个段落中移除分页符  
                    section.Body.LastParagraph.ChildObjects.RemoveAt(i)  
                      
                    # 构造输出文件名  
                    resultF = outputFolder  
                    resultF += "结果文件-{0}.docx".format(index)  
                      
                    # 保存新文档到文件  
                    newWord.SaveToFile(resultF, FileFormat.Docx)  
                      
                    # 更新索引和重置新文档  
                    index += 1  
                    newWord = Document()  
                    section = newWord.AddSection()  
                      
                    # 再次克隆原始文档的样式、主题和兼容性到新文档中  
                    original.CloneDefaultStyleTo(newWord)  
                    original.CloneThemesTo(newWord)  
                    original.CloneCompatibilityTo(newWord)  
                      
                    # 克隆当前章节的属性到新章节  
                    sec.CloneSectionPropertiesTo(section)  
                      
                    # 添加当前段落的克隆到新章节中  
                    section.Body.ChildObjects.Add(para.Clone())  
                      
                    # 如果新章节的第一个段落中没有子对象,则移除它  
                    if section.Paragraphs[0].ChildObjects.Count == 0:  
                        section.Body.ChildObjects.RemoveAt(0)  
                    else:  
                        # 否则,从第一个段落的子对象中移除分页符及其后面的内容  
                        while i >= 0:  
                            section.Paragraphs[0].ChildObjects.RemoveAt(i)  
                            i -= 1  

        # 判断对象obj是否为Table类型 
        if isinstance(obj, Table):  
            # 如果是Table类型,则克隆该表格,并添加到section的Body中的ChildObjects中  
            section.Body.ChildObjects.Add(obj.Clone())  
  
# 文件名格式为:"输出文件夹路径/结果文件-索引值.docx"  
result = outputFolder + "结果文件-{0}.docx".format(index)  
  
# 将Word文档保存到指定的路径,文件格式为Docx 2013  
newWord.SaveToFile(result, FileFormat.Docx2013)  
newWord.Close()

Python 拆分 Word 文档

Python 按分节符拆分 Word 文档

章节将 Word 文档划分为不同的逻辑部分,并允许每个章节有独立的格式。通过将 Word 文档分割成不同的部分,我们可以得到多个内容和格式相对独立的文档。通过分段分割 Word 文档的具体步骤如下:

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

# 创建一个Document对象  
document = Document()  
  
# 加载名为"示例文档.docx"的Word文档  
document.LoadFromFile("示例文档.docx")  
  
# 遍历文档的每个章节(Section)  
for i in range(document.Sections.Count):  
    # 获取当前索引的章节(Section)  
    section = document.Sections.get_Item(i)  
      
    # 构造结果文件的文件名,包括路径和文件名,格式为:"按分节符拆分/结果文件_编号.docx"  
    result = "按分节符拆分/" + "结果文件_{0}.docx".format(i+1)  
      
    # 创建一个新的Word文档对象来存储当前部分的内容  
    newWord = Document()  
      
    # 将当前章节(Section)的克隆添加到新Word文档的Sections中 
    newWord.Sections.Add(section.Clone()) 
      
    # 将新Word文档保存到指定的文件名 
    newWord.SaveToFile(result) 
    newWord.Close()

document.Dispose()

Python 拆分 Word 文档

申请临时 License

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

Spire.XLS for Swift 已于 2024 年 5 月正式推出,欢迎开发者下载试用!该库专为 Swift 语言定制,让 macOS 程序开发人员能够轻松集成 Excel 文件操作功能到 Swift 程序中,为 Swift 应用中 Excel 文件处理功能的开发提供专业、高效的新方案。

Spire.XLS for Swift

Spire.XLS for Swift 是一款专为开发者设计的 Excel 文件操作库,旨在为 Swift 项目提供强大而可靠的 Excel(包括 .xls 和 .xlsx 格式)文件处理能力。该库遵循 Swift 语言的性能标准,确保在 macOS 平台上实现无缝集成与流畅运行。

Spire.XLS for Swift 全面覆盖了 Excel 文件处理的核心功能,包括解析复杂的 Excel 数据结构、灵活应用单元格样式、高效管理图表及透视表,以及将 Excel 文档直接转换为 PDF、SVG 或 HTML 等多种格式。采用精心设计的 API 结构,Spire.XLS for Swift 极大地简化了这些功能的实现过程,既保证了功能的完整性,又显著缩短了开发周期,提升了开发效率。

获取 Spire.XLS for Swift 请点击:

https://www.e-iceblue.cn/Introduce/Spire-XLS-Swift.html


联系我们:

Spire.Presentation for Java 9.5.2 已发布。该版本优化了转换 PPTX 到 PDF 的耗时。此外,还修复了一些在合并 PPTX 文档和转换 PPTX 到图片时出现的问题。详情请查看以下内容。

问题修复:


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

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

段落间距和行间距对文档的可读性和外观有着重要的影响。如果段落之间紧密排列或行之间间距太小,会给读者的眼睛带来压力,并使内容显得杂乱。了解如何设置段落间距和行间距可以帮助我们创建美观且易于阅读的文档。本文将演示如何使用 Spire.Doc for Java 和 Java 设置 Word 文档的段落间距和行间距。

安装 Spire.Doc for Java

首先,您需要在 Java 程序中添加 Spire.Doc.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.doc</artifactId>
        <version>14.9.5</version>
    </dependency>
</dependencies>

Java 设置 Word 文档的段落间距

你可以利用 Spire.Doc for Java 提供的 Paragraph.getFormat().setBeforeSpacing() 和 Paragraph.getFormat().setAfterSpacing() 方法轻松调整段前和段后的距离。具体步骤如下:

  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;

import java.awt.*;

public class SetParagraphSpacing {
    public static void main(String[] args){
        // 创建Document类的对象
        Document document = new Document();
        // 向文档添加一个节
        Section section = document.addSection();

        // 向节中添加两个段落
        Paragraph para1 = section.addParagraph();
        para1.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        TextRange textRange1 = para1.appendText("Spire.Doc for Java");
        textRange1.getCharacterFormat().setTextColor(Color.BLUE);
        textRange1.getCharacterFormat().setFontName("宋体");
        textRange1.getCharacterFormat().setFontSize(15);

        Paragraph para2 = section.addParagraph();
        TextRange textRange2 = para2.appendText("Spire.Doc for Java 是一款专业的 Java Word 开发组件,开发人员可以使用它轻松将 Word 文档的创建、读取、编辑和转换等功能集成到自己的 Java 应用程序中。作为一款完全独立的组件,Spire.Doc for Java 的运行环境无需安装 Microsoft Word。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。");
        textRange2.getCharacterFormat().setFontName("宋体");
        textRange2.getCharacterFormat().setFontSize(12);

        // 设置第一个段落的段后间距
        para1.getFormat().setAfterAutoSpacing(false);
        para1.getFormat().setAfterSpacing(10);

        // 设置第二个段落的段前和段后间距
        para2.getFormat().setBeforeAutoSpacing(false);
        para2.getFormat().setBeforeSpacing(10);
        para2.getFormat().setAfterAutoSpacing(false);
        para2.getFormat().setAfterSpacing(10);

        // 保存结果文档
        document.saveToFile("设置段落间距.docx", FileFormat.Docx_2013);
        document.close();
    }
}

Java 设置 Word 文档的段落间距和行间距

Java 设置 Word 文档的行间距

你可以使用 Spire.Doc for Java 提供的 Paragraph.getFormat().setLineSpacing() 方法设置段落的行间距。具体步骤如下:

  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.LineSpacingRule;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;

public class SetLineSpacing {
    public static void main(String[] args) {
        // 创建Document类的对象
        Document document = new Document();
        // 添加一个节
        Section section = document.addSection();

        // 向节中添加一个段落
        Paragraph para = section.addParagraph();
        TextRange textRange = para.appendText("Spire.Doc for Java 能执行多种 Word 文档处理任务,包括生成、读取、和转换 Word 文档,插入图片,添加页眉和页脚,创建表格,添加表单域和邮件合并域,添加书签,添加文本和图片水印,设置背景颜色和背景图片,添加脚注和尾注,添加超链接,加密和解密 Word 文档,添加批注,添加形状等。");
        textRange.getCharacterFormat().setFontName("宋体");
        textRange.getCharacterFormat().setFontSize(12);

        // 设置行间距规则
        para.getFormat().setLineSpacingRule(LineSpacingRule.Multiple);
        // 设置行间距的值(当行间距规则为 "Multiple"时, 值为18 表示将行间距设置为 "1.5 倍行距",值为 12 表示将行间距设置为 "单倍行距")
        para.getFormat().setLineSpacing(18);

        // 保存结果文件
        document.saveToFile("设置行间距.docx", FileFormat.Docx_2013);
        document.close();
    }
}

Java 设置 Word 文档的段落间距和行间距

申请临时 License

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

Excel 文档属性对于了解表格的内容或主题至关重要。它们提供了有关文档摘要、作者和创建/修订历史的有用信息,有助于高效地组织和检索文件。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中读取或删除 Excel 文档属性。

安装 Spire.XLS for .NET

首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。

PM> Install-Package Spire.XLS

使用 C# 读取 Excel 中的标准和自定义文档属性

Excel 属性分为两大类:

Spire.XLS for .NET 允许读取 Excel 文件的标准和自定义文件属性。具体步骤如下:

  • C#
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core;
using System.IO;
using System.Text;

namespace GetExcelProperties
{
    class Program
    {

        static void Main(string[] args)
        {
            {
                //创建Workbook对象
                Workbook workbook = new Workbook();

                //加载一个Excel文件
                workbook.LoadFromFile("预算表.xlsx");

                //创建StringBuilder实例
                StringBuilder sb = new StringBuilder();

                //获取标准属性的集合
                BuiltInDocumentProperties standardProperties = workbook.DocumentProperties;

                //获取指定标准属性并将其添加到StringBuilder实例中
                sb.AppendLine("Standard Document Properties:");
                sb.AppendLine("Title: " + standardProperties.Title);
                sb.AppendLine("Subject: " + standardProperties.Subject);
                sb.AppendLine("Manager: " + standardProperties.Manager);
                sb.AppendLine("Category: " + standardProperties.Category);
                sb.AppendLine("Keywords: " + standardProperties.Keywords);
                sb.AppendLine("Comments: " + standardProperties.Comments);
                sb.AppendLine();

                //获取自定义属性集合
                ICustomDocumentProperties customProperties = workbook.CustomDocumentProperties;

                sb.AppendLine("Custom Document Properties:");
                //遍历属性
                for (int i = 0; i < customProperties.Count; i++)
                {
                    //获取每个自定义属性的名称和值,并将它们添加到StringBuilder实例中
                    string name = customProperties[i].Name;
                    string value = customProperties[i].Value.ToString();
                    sb.AppendLine(name + ": " + value);
                }

                //将StringBuilder实例的内容写入到txt文件中
                File.WriteAllText("获取Excel属性.txt", sb.ToString());
            }
        }
    }
}

C# 读取或删除 Excel 文档属性

使用 C# 删除 Excel 中的标准和自定义文档属性

通过将标准文档属性值设置为空,可以轻松删除 Excel 文件中的标准文档属性。对于自定义文档属性,可以使用 ICustomDocumentProperties.Remove() 方法来删除它们。具体步骤如下:

  • C#
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core;

namespace DeleteExcelProperties
{
    class Program
    {

        static void Main(string[] args)
        {
            {
                //创建Workbook对象
                Workbook workbook = new Workbook();

                //加载一个Excel文件
                workbook.LoadFromFile("预算表.xlsx");

                //获取标准属性的集合
                BuiltInDocumentProperties standardProperties = workbook.DocumentProperties;

                //将各标准属性的值设为空
                standardProperties.Title = "";
                standardProperties.Subject = "";
                standardProperties.Manager = "";
                standardProperties.Category = "";
                standardProperties.Keywords = "";
                standardProperties.Comments = "";
 
                //获取自定义属性的集合
                ICustomDocumentProperties customProperties = workbook.CustomDocumentProperties;

                //遍历集合
                for (int i = customProperties.Count -1; i >=0; i--)
                {
                    //删除自定义属性
                    customProperties.Remove(customProperties[i].Name);

                }

                //保存结果文件
                workbook.SaveToFile("删除Excel属性.xlsx", ExcelVersion.Version2016);            
            }
        }
    }
}

C# 读取或删除 Excel 文档属性

申请临时 License

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