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

Spire.Cloud 纯前端文档控件

在对 Word 文档进行格式化时,设置段落的段前间距、段后间距是我们经常碰到的场景,设置段前、段后间距可以改善文档的可读性、美观性以及排版效果;同时适当的段落间距可以使不同段落之间更加明确地区分开来,让读者更容易理解文本的逻辑结构和段落之间的关系。在本文中,您将学习如何使用 Spire.Doc for C++新增的段落设置段前、段后间距以及如何批量给同类型的段落设置段前、段后间距。

安装 Spire.Doc for C++

有两种方法可以将 Spire.Doc for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire.Doc for C++ 集成到 C++ 程序中

关键方法

Spire.Doc for C++ 提供了 ParagraphFormat 类用于处理段落格式。您可以使用 Paragraph->GetFormat() 方法获取 ParagraphFormat 类的对象,然后使用下面的方法设置对应的段落段前、段后值:

方法 方法解释
para->GetFormat()->SetBeforeAutoSpacing(bool value); 设置段前间距是否自动变化
para->GetFormat()->SetBeforeSpacing(float value); 设置固定的段前间距值
para->GetFormat()->SetAfterAutoSpacing(bool value); 设置段后间距是否自动变化
para->GetFormat()->SetAfterSpacing(float value); 设置固定的段后间距值

给新增的段落设置段前、段后间距

下面介绍如何对给新增的段落设置段前、段后间距,下面步骤的主要逻辑就是给加载的 Word 文档新增一个文本内容的段落,并为其设置字体颜色、字体大小;然后设置该段落的段前、段后间距,最后保存结果文档到指定目录。

  • C++
#include "../include/Spire.Doc.o.h"

using namespace Spire::Doc;
using namespace std;

int main()
{
	// 输入文件路径
	wstring inputFile = L"sample.docx";

	// 输出文件路径
	wstring outputFile = L"result.docx";

	// 创建Word文档对象
	intrusive_ptr<Document> document = new Document();

	// 从磁盘加载文件
	document->LoadFromFile(inputFile.c_str());

	// 向文档中新增一个段落
	intrusive_ptr<Paragraph> para = new Paragraph(document);

	// 向段落中添加文本字符串并设置样式
	intrusive_ptr<TextRange> textRange1 = para->AppendText(L"这是插入的段落。");
	textRange1->GetCharacterFormat()->SetTextColor(Color::GetBlue());
	textRange1->GetCharacterFormat()->SetFontSize(15);

	// 获取ParagraphFormat对象
	intrusive_ptr<ParagraphFormat> format = para->GetFormat();

	// 设置段前间距为固定值:10(磅)pt
	format->SetBeforeAutoSpacing(false);
	format->SetBeforeSpacing(10);

	// 设置段后间距为固定值:10(磅)pt
	format->SetAfterAutoSpacing(false);
	format->SetAfterSpacing(10);

	// 将添加的段落插入到Word文档中
	document->GetSections()->GetItemInSectionCollection(0)->GetParagraphs()->Insert(1, para);

	// 保存到文件
	document->SaveToFile(outputFile.c_str(), FileFormat::Docx2013);

	// 关闭文档
	document->Close();

}

C++ 给 Word 文档中段落设置段前、段后间距

批量给同类型的段落设置段前、段后间距

我们用 Spire.Doc for C++ 格式化文档段落时,更多的场景是需要批量对某些段落进行段前、段后间距的设置以此来提高效率。下面就介绍如何批量对拥有相同样式的段落设置段前、段后间距。下面看看具体实现步骤:

对于符合需求的段落设置段前、段后间距,就和给新增段落设置段前、段后间距一样,如下步骤:

  • C++
#include "../include/Spire.Doc.o.h"

using namespace Spire::Doc;
using namespace std;

int main()
{
	
      // 输入文件路径
	wstring inputFile = L"sample.docx";

	// 输出文件路径
	wstring outputFile = L"result.docx";

	// 创建Word文档对象
	intrusive_ptr<Document> document = new Document();

	// 从磁盘加载文件
	document->LoadFromFile(inputFile.c_str());

	// 遍历文档中的所有setion
	for (int i = 0; i < document->GetSections()->GetCount(); i++)
	{
		// 获取当前section
		intrusive_ptr<Section> section = document->GetSections()->GetItemInSectionCollection(i);

		// 遍历当前section的所有段落
		for (int j = 0; j < section->GetParagraphs()->GetCount(); j++)
		{
			// 获取当前段落
			intrusive_ptr<Paragraph> paragraph = section->GetParagraphs()->GetItemInParagraphCollection(j);

			// 获取当前段落的样式名称
			wstring style_name = paragraph->GetStyleName();

			// 判断样式名称是否为“Heading1”
			if (style_name.compare(L"Heading1") == 0)
			{
				// 获取ParagraphFormat对象
				intrusive_ptr<ParagraphFormat> format = paragraph->GetFormat();

				// 设置段前间距为固定值:20(磅)pt
				format->SetBeforeAutoSpacing(false);
				format->SetBeforeSpacing(20);

				// 设置段后间距为固定值:20(磅)pt
				format->SetAfterAutoSpacing(false);
				format->SetAfterSpacing(20);
			}
		}
	}

	// 保存到文件
	document->SaveToFile(outputFile.c_str(), FileFormat::Docx2013);

	// 关闭文档
	document->Close();
}

C++ 给 Word 文档中段落设置段前、段后间距

申请临时 License

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

Spire.Office for Java 8.10.2 已发布。在该版本中,Spire.XLS for Java 新增支持验证限制编辑的密码是否正确的方法;Spire.PDF for Java新增支持设置 AES 加密算法以及重置已有域的名字;Spire.Doc for Java将 AppendHorizonalLine() 方法同步到 Java中; Spire.Presentation for Java支持转换指定幻灯片到 SVG 以及转换 PPT 到 SVGZ。 此外,一些已知问题也在该版本中得到修复。详情请阅读以下内容。

获取 Spire.Office for Java 8.10.2请点击:

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


Spire.XLS for Java

新功能:

问题修复:


Spire.PDF for Java

新功能:

问题修复:


Spire.Doc for Java

新功能:

问题修复:


Spire.Presentation for Java

新功能:

问题修复:

Spire.Presentation for Java 8.10.4 已发布。本次更新新增支持转换指定幻灯片到 SVG 以及转换 PPT 到 SVGZ。该版本还增强了 PPT 到 PDF 的转换功能。此外,一些已知问题也在该版本中得到修复,如加载 PPT 文档程序时抛异常 java.lang.NullPointerException 的问题。详情请阅读以下内容。

新功能:

问题修复:


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

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

当您想共享或展示文档内容但却担心出现跨设备兼容性问题时,将 Word 文档转换成图片是一个比较推荐的选择。通过将 Word 文档转换为图片,可以确保文本、图片和格式保持不变,是在社交媒体、网站或通过电子邮件共享文档的理想解决方案。在本文中,您将学习如何使用 Spire.Doc for PythonPython 中将 Word 转换为 PNG、JPEG 或 SVG 图片

安装 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 转换为 PNG 或 JPEG

Spire.Doc for Python 提供的 Document.SaveImageToStream() 方法可将特定页面转换为位图(Bitmap)。然后,您可以将位图(Bitmap)再进一步保存为 PNG、JPEG 或 BMP 等常用图像格式。具体步骤如下。

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

# 创建Document对象
document = Document()

# 加载Word文档
document.LoadFromFile("工作汇报.docx")

# 遍历文档中的所有页面
for i in range(document.GetPageCount()):

    # 将指定页面转换为位图(bitmap)
    imageStream = document.SaveImageToStreams(i, ImageType.Bitmap)

    # 将位图(bitmap)保存为PNG文件
    with open('图片/图-{0}.png'.format(i),'wb') as imageFile:
        imageFile.write(imageStream.ToArray())

document.Close()

Python 将 Word 转换为图片

Python 将 Word 转换为 SVG

仅需使用 Document.SaveToFile() 方法即可将 Word 文档转换为多个 SVG 文件。具体步骤如下。

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

# 创建Document对象
document = Document()

# 加载Word文档
document.LoadFromFile("工作汇报.docx")

# 将其转换为 SVG 文件
document.SaveToFile("转SVG/ToSVG.svg", FileFormat.SVG)
document.Close()

Python 将 Word 转换为图片

申请临时 License

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

Spire.Cloud 8.10.9 已发布。在本次更新中,该版本修复了 Word 文档中内容显示不正确,以及页码显示不一致等多个已知问题。详情请阅读以下内容。

问题修复:


获取 Spire.Cloud 8.10.9 请点击:

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

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 for Python 提供的 Paragraph.AppendComment() 方法可用于为指定段落添加批注。而批注对应的文本范围需要使用批注开始标记和结束标记来控制。为段落添加批注的具体步骤如下:

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

# 创建一个 Document 类对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("示例.docx")

# 获取第一节
section = doc.Sections.get_Item(0)

# 获取第四段
paragraph = section.Paragraphs.get_Item(3)

# 向段落添加注释
comment = Comment(doc)
comment.Body.AddParagraph().Text = "缺乏对货币历史的讲述。"

# 设置注释的作者
comment.Format.Author = "丽雯"

paragraph.ChildObjects.Add(comment)

# 创建注释开始标记和结束标记,并将它们设置为创建的注释的开始和结束标记
commentStart = CommentMark(doc, CommentMarkType.CommentStart)
commentEnd = CommentMark(doc, CommentMarkType.CommentEnd)
commentStart.CommentId = comment.Format.CommentId
commentEnd.CommentId = comment.Format.CommentId

# 在段落的开头和结尾分别插入注释开始标记和结束标记
paragraph.ChildObjects.Insert(0, commentStart)
paragraph.ChildObjects.Add(commentEnd)

# 保存文档
doc.SaveToFile("output/批注段落.docx")
doc.Close()

***

Python 添加批注到 Word 文档中的文本

Spire.Doc for Python 还支持查找指定文本并为其添加批注。具体步骤如下:

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

# 创建一个 Document 类的对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("示例.docx")

# 查找要添加评论的文本
text = doc.FindString("交换媒介", True, True)

# 创建一个评论对象并设置评论的内容和作者
comment = Comment(doc)
comment.Body.AddParagraph().Text = "交换媒介还包括商品交换、信贷和资产交换等。"
comment.Format.Author = "琳达"

# 将找到的文本作为文本范围,并获取其所属的段落
range = text.GetAsOneRange()
paragraph = range.OwnerParagraph

# 将评论添加到段落中
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range) + 1, comment)

# 创建评论起始标记和结束标记,并将它们设置为创建的评论的起始标记和结束标记
commentStart = CommentMark(doc, CommentMarkType.CommentStart)
commentEnd = CommentMark(doc, CommentMarkType.CommentEnd)
commentStart.CommentId = comment.Format.CommentId
commentEnd.CommentId = comment.Format.CommentId

# 在找到的文本之前和之后插入创建的评论起始和结束标记
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range), commentStart)
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range) + 1, commentEnd)

# 保存文档
doc.SaveToFile("output/批注文本.docx")
doc.Close()

***

Python 从 Word 文档中删除批注

Spire.Doc for Python 为删除批注提供了 Document.Comments.RemoveAt() 方法和 Document.Clear() 方法,前者可用于删除指定的批注,后者可删除所有批注。移除批注的详细步骤如下:

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

# 创建一个 Document 类对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("示例1.docx")

# 移除第二个注释
doc.Comments.RemoveAt(1)

# 移除所有注释
#doc.Comments.Clear()

# 保存文档
doc.SaveToFile("output/删除批注.docx")
doc.Close()

***

Python 在 Word 文档中回复批注

Spire.Doc for Python 还支持通过 Comment.ReplyToComment(Comment) 方法将一条批注设置为对另一条批注的回复,从而实现在 Word 文档中对指定批注进行回复。具体步骤如下:

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

# 创建一个 Document 类对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("https://cdn.e-iceblue.cn/output/批注文本.docx")

# 获取一个注释
comment = doc.Comments.get_Item(0)

# 创建一个回复注释并设置其内容和作者
reply = Comment(doc)
reply.Body.AddParagraph().Text = "我们将提供有关货币历史的更多细节。"
reply.Format.Author = "莫里"

# 将创建的注释设置为获取到的注释的回复
comment.ReplyToComment(reply)

# 保存文档
doc.SaveToFile("output/回复批注.docx")
doc.Close()

***

申请临时 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

Python 在 PDF 文件中添加图片

要在 PDF 页面中添加图片,可以使用 PdfPage.Canvas.DrawImage() 方法。具体步骤如下:

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

# 创建PdfDocument对象
doc = PdfDocument()

# 设置页边距
doc.PageSettings.SetMargins(30.0, 30.0, 30.0, 30.0)

# 添加一页
page = doc.Pages.Add()

# 加载图片
image = PdfImage.FromFile("logo.png")

# 指定图片大小
width = image.Width * 0.50
height = image.Height * 0.50

# 在页面指定位置绘制图像
x = 10.0
y = 30.0
page.Canvas.DrawImage(image, x, y, width, height)

# 保存结果文件
doc.SaveToFile("添加图片.pdf", FileFormat.PDF)

Python 添加、替换、删除和提取 PDF 中的图片

Python 替换 PDF 文件中的图片

Spire.PDF for Python 提供了 PdfImageHelper 类来操作处理图片,要用新图片替换 PDF 中的已有图片,可以使用 PdfImageHelper.ReplaceImage() 方法。具体步骤如下:

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


# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文件
pdf.LoadFromFile("添加图片.pdf")

# 获取第一页
page = pdf.Pages.get_Item(0)

# 加载图片
image = PdfImage.FromFile("img.png")

# 创建PdfImageHelper对象
imageHelper = PdfImageHelper()

# 通过PdfImageHelper获取页面中的图片信息
imageInfos = imageHelper.GetImagesInfo(page)

# 用加载的图片替换页面上的第一张图片
imageHelper.ReplaceImage(imageInfos[0], image)

# 保存结果文件
pdf.SaveToFile("替换图片.pdf", FileFormat.PDF)

# 对象释放
pdf.Close()

Python 添加、替换、删除和提取 PDF 中的图片

Python 删除 PDF 文件中的图片

PdfImageHelper.DeleteImage() 方法可以删除 PDF 页面中的指定图片。具体步骤如下:

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


# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文件
pdf.LoadFromFile("图片.pdf")

# 获取第一页
page = pdf.Pages[0]

# 创建PdfImageHelper对象
imageHelper = PdfImageHelper()

# 通过PdfImageHelper获取页面中的图片信息
imageInfos = imageHelper.GetImagesInfo(page)

# 删除页面中指定的图片
imageHelper.DeleteImage(imageInfos[0])

# 保存结果文件
pdf.SaveToFile("删除图片.pdf", FileFormat.PDF)

# 对象释放
pdf.Close()

Python 添加、替换、删除和提取 PDF 中的图片

Python 提取 PDF 文件中的图片

通过 PdfImageHelper.GetImagesInfo() 获取的图片也能轻松地提取保存出来。具体步骤如下:

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


# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文件
pdf.LoadFromFile("图片.pdf")

# 获取第一页
page = pdf.Pages[0]

# 创建PdfImageHelper对象
imageHelper = PdfImageHelper()

# 通过PdfImageHelper获取页面中的图片信息
imageInfos = imageHelper.GetImagesInfo(page)

# 遍历保存图片
for i in range(len(imageInfos)):
    info = imageInfos.__getitem__(i)
    fileName = "\\ExtractedImg-{0:d}.png".format(i)
    info.Image.Save(fileName)

# 对象释放
pdf.Close()

Python 添加、替换、删除和提取 PDF 中的图片

申请临时 License

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

Spire.Doc for Java 11.10.3 已发布。本次更新同步 AppendHorizonalLine() 方法到 Java,同时还支持在转换为非流式布局文档时,将不支持绘制字符的字体通过 FontFallbackRule 方法中的 XML 做字体切换。此外,本次更新还增强了 Word 到 PDF、HTML 和 OFD 的转换功能。一些已知问题也在该版本中得到修复,如设置图片缩放大小的结果不正确的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.Doc for Java 11.10.3请点击:

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

上标和下标是排版和写作中使用的格式样式,用于将字符或数字置于正常文本行的上方或下方。上标是将较小尺寸的文字或符号置于基线之上,常用于指数、数学公式中的幂运算、化学式中的原子序号等。下标则是将较小尺寸的文字或符号置于基线之下,常用于化学公式、数学表达式和一些语言符号等。这些格式样式可以帮助用户区分文本中的特定元素,更有效地传达信息。本文将展示如何使用 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 中应用上标和下标

要为 Excel 中的特定字符应用上标或下标样式,首先需要创建自定义字体并设置其上标或下标属性。然后使用 Spire.XLS for Python 提供的 CellRange.RichText.SetFont() 方法将字体分配给单元格中的指定字符。具体步骤如下:

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

# 创建Workbook对象
workbook = Workbook()

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

# 在指定单元格中添加文本
sheet.Range["B2"].Text = "添加下标的示例:"
sheet.Range["D2"].Text = "添加上标的示例:"

# 在指定单元格中添加富文本
range = sheet.Range["B3"]
range.RichText.Text = "an = Sn - Sn-1"

# 创建自定义字体
font = workbook.CreateFont()

# 通过将IsSubscript属性设置为"true",启用字体的下标属性
font.IsSubscript = True

# 设置字体颜色
font.Color = Color.get_Red()

# 将该字体分配给所添加的富文本中的指定字符
range.RichText.SetFont(6, 6, font)
range.RichText.SetFont(11, 13, font)

# 在另一单元格中添加富文本 
range = sheet.Range["D3"]
range.RichText.Text = "a2 + b2 = c2"

# 创建自定义字体
font = workbook.CreateFont()

# 将IsSuperscript属性设置为"true",从而启用字体的上标属性
font.IsSuperscript = True

# 将该字体分配给所添加的富文本中的指定字符
range.RichText.SetFont(1, 1, font)
range.RichText.SetFont(6, 6, font)
range.RichText.SetFont(11, 11, font)

# 自适应列宽
sheet.AllocatedRange.AutoFitColumns()
 
# 保存结果文件
workbook.SaveToFile("设置上标和下标.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python 在 Excel 中应用上标和下标

申请临时 License

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

Spire.Doc 11.10.7已发布。该版本修复了将Word转换为PDF时泰语字符未对齐和换行的问题。详情请阅读以下内容。

问题修复:


获取Spire.Doc 11.10.7请点击:

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