在对 Word 文档进行格式化时,设置段落的段前间距、段后间距是我们经常碰到的场景,设置段前、段后间距可以改善文档的可读性、美观性以及排版效果;同时适当的段落间距可以使不同段落之间更加明确地区分开来,让读者更容易理解文本的逻辑结构和段落之间的关系。在本文中,您将学习如何使用 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 文档新增一个文本内容的段落,并为其设置字体颜色、字体大小;然后设置该段落的段前、段后间距,最后保存结果文档到指定目录。
#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();
}
我们用 Spire.Doc for 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();
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该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
新功能:
worksheet.checkProtectionPassword(String password)问题修复:
新功能:
PdfEncryptionAlgorithm.AES//创建密码安全策略
PdfSecurityPolicy securityPolicy = new PdfPasswordSecurityPolicy("", "123456");
//设置加密算法
securityPolicy.setEncryptionAlgorithm( PdfEncryptionAlgorithm.AES_256);
//设置文档权限(所有权),默认是ForbidAll
securityPolicy.setDocumentPrivilege(PdfDocumentPrivilege.getForbidAll());
securityPolicy.getDocumentPrivilege().setAllowDegradedPrinting(true);
securityPolicy.getDocumentPrivilege().setAllowModifyAnnotations(true);
securityPolicy.getDocumentPrivilege().setAllowAssembly(true);
securityPolicy.getDocumentPrivilege().setAllowModifyContents(true);
securityPolicy.getDocumentPrivilege().setAllowFillFormFields(true);
securityPolicy.getDocumentPrivilege().setAllowPrint(true);
pdf.encrypt(securityPolicy);PdfDocument pdf = new PdfDocument();
//传递打开密码打开PDF文档
pdf.loadFromFile(inputFile, "1234");
//解密
pdf.decrypt();
pdf.saveToFile(outputFile, FileFormat.PDF);
pdf.dispose();PdfDocument document=new PdfDocument();
document.loadFromFile("https://cdn.e-iceblue.cn/input.pdf");
PdfFormWidget formWidget = (PdfFormWidget)document.getForm();
for (int i = 0; i < formWidget.getFieldsWidget().getCount(); i++)
{
PdfField field = (PdfField)formWidget.getFieldsWidget().get(i);
for (PdfFieldWidget widget : (Iterable<? extends PdfFieldWidget>) formWidget.getFieldsWidget())
{
if (widget.getName() == "oldName")
{
widget.setName("NewName");
}
}
}
document.saveToFile("result.pdf",FileFormat.PDF);问题修复:
新功能:
paragraph.appendHorizonalLine()Document doc = New Document();
doc.loadFromFile(https://cdn.e-iceblue.cn/inputFile);
doc.saveFontFallbackRuleSettings(outputFile_xml);
doc.loadFontFallbackRuleSettings(outputFile_xml);
doc.saveToFile(outputFile, FileFormat.PDF);问题修复:
新功能:
Presentation ppt = new Presentation();
ppt.loadFromFile("input.pptx");
List<byte[]> bytes=ppt.saveToSVGZ();
for (int i=0;i<bytes.size();i++){
FileOutputStream fileOutputStream=new FileOutputStream("slide"+i+".svgz");
fileOutputStream.write(bytes.get(i));
fileOutputStream.flush();
fileOutputStream.close();
}Presentation ppt = new Presentation();
ppt.loadFromFile("input.pptx");
List<byte[]> bytes=ppt.saveToSVG(0,36);
for (int i=0;i<bytes.size();i++){
FileOutputStream fileOutputStream=new FileOutputStream("slide"+(i+1)+".svg");
fileOutputStream.write(bytes.get(i));
fileOutputStream.flush();
fileOutputStream.close();
}问题修复:
Spire.Presentation for Java 8.10.4 已发布。本次更新新增支持转换指定幻灯片到 SVG 以及转换 PPT 到 SVGZ。该版本还增强了 PPT 到 PDF 的转换功能。此外,一些已知问题也在该版本中得到修复,如加载 PPT 文档程序时抛异常 java.lang.NullPointerException 的问题。详情请阅读以下内容。
新功能:
Presentation ppt = new Presentation();
ppt.loadFromFile("input.pptx");
List<byte[]> bytes=ppt.saveToSVGZ();
for (int i=0;i<bytes.size();i++){
FileOutputStream fileOutputStream=new FileOutputStream("slide"+i+".svgz");
fileOutputStream.write(bytes.get(i));
fileOutputStream.flush();
fileOutputStream.close();
}Presentation ppt = new Presentation();
ppt.loadFromFile("input.pptx");
List<byte[]> bytes=ppt.saveToSVG(0,36);
for (int i=0;i<bytes.size();i++){
FileOutputStream fileOutputStream=new FileOutputStream("slide"+(i+1)+".svg");
fileOutputStream.write(bytes.get(i));
fileOutputStream.flush();
fileOutputStream.close();
}问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
当您想共享或展示文档内容但却担心出现跨设备兼容性问题时,将 Word 文档转换成图片是一个比较推荐的选择。通过将 Word 文档转换为图片,可以确保文本、图片和格式保持不变,是在社交媒体、网站或通过电子邮件共享文档的理想解决方案。在本文中,您将学习如何使用 Spire.Doc for Python 在 Python 中将 Word 转换为 PNG、JPEG 或 SVG 图片。
本教程需要用到 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.SaveImageToStream() 方法可将特定页面转换为位图(Bitmap)。然后,您可以将位图(Bitmap)再进一步保存为 PNG、JPEG 或 BMP 等常用图像格式。具体步骤如下。
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()

仅需使用 Document.SaveToFile() 方法即可将 Word 文档转换为多个 SVG 文件。具体步骤如下。
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()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Cloud 8.10.9 已发布。在本次更新中,该版本修复了 Word 文档中内容显示不正确,以及页码显示不一致等多个已知问题。详情请阅读以下内容。
问题修复:
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 提供的 Paragraph.AppendComment() 方法可用于为指定段落添加批注。而批注对应的文本范围需要使用批注开始标记和结束标记来控制。为段落添加批注的具体步骤如下:
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()

Spire.Doc for 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()

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

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

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
除了文本内容外,PDF 文件中的图片在有效传达信息方面也发挥着重要作用。在 PDF 文档中对图片进行添加、替换、删除等操作,对于增强视觉吸引力、更新过时的图片或修改文档内容非常有帮助。在本文中,您将学习如何使用 Spire.PDF for Python 在 Python 中添加、替换、删除和提取 PDF 文档中的图片。
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF如果您不清楚如何安装,请参考此教程: 如何在 Windows 中安装 Spire.PDF for Python
要在 PDF 页面中添加图片,可以使用 PdfPage.Canvas.DrawImage() 方法。具体步骤如下:
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)

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

PdfImageHelper.DeleteImage() 方法可以删除 PDF 页面中的指定图片。具体步骤如下:
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()

通过 PdfImageHelper.GetImagesInfo() 获取的图片也能轻松地提取保存出来。具体步骤如下:
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()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc for Java 11.10.3 已发布。本次更新同步 AppendHorizonalLine() 方法到 Java,同时还支持在转换为非流式布局文档时,将不支持绘制字符的字体通过 FontFallbackRule 方法中的 XML 做字体切换。此外,本次更新还增强了 Word 到 PDF、HTML 和 OFD 的转换功能。一些已知问题也在该版本中得到修复,如设置图片缩放大小的结果不正确的问题。详情请阅读以下内容。
新功能:
paragraph.appendHorizonalLine()Document doc = New Document();
doc.loadFromFile(https://cdn.e-iceblue.cn/inputFile);
doc.saveFontFallbackRuleSettings(outputFile_xml);
doc.loadFontFallbackRuleSettings(outputFile_xml);
doc.saveToFile(outputFile, FileFormat.PDF);问题修复:
上标和下标是排版和写作中使用的格式样式,用于将字符或数字置于正常文本行的上方或下方。上标是将较小尺寸的文字或符号置于基线之上,常用于指数、数学公式中的幂运算、化学式中的原子序号等。下标则是将较小尺寸的文字或符号置于基线之下,常用于化学公式、数学表达式和一些语言符号等。这些格式样式可以帮助用户区分文本中的特定元素,更有效地传达信息。本文将展示如何使用 Spire.XLS for Python 通过代码在 Excel 中应用上标和下标。
本方案需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它轻松安装到 Windows 中。
pip install Spire.XLS如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
要为 Excel 中的特定字符应用上标或下标样式,首先需要创建自定义字体并设置其上标或下标属性。然后使用 Spire.XLS for Python 提供的 CellRange.RichText.SetFont() 方法将字体分配给单元格中的指定字符。具体步骤如下:
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()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc 11.10.7已发布。该版本修复了将Word转换为PDF时泰语字符未对齐和换行的问题。详情请阅读以下内容。
问题修复: