在我们的学生时代,我们经常需要完成各种考试题目。对于卷子这种形式,我们并不陌生,因为它伴随着我们从小学到大学的学习生涯。通常情况下,卷子采用 A3 格式的横向布局,以 Word 文档的形式呈现。一页卷子被分成两栏,每栏下方通常都有一个包含页码的页脚。
本篇帮助文档将介绍如何使用 Spire.Doc for Java 将 A4 格式的纵向的 Word 文档变成横向的分栏 A3 文档,并为每栏设置页码页脚。实现效果图如下:

由于本篇是一篇综合性的帮助文档,本文主要还是介绍如何给每栏插入包含页码的页脚,对于插入页码和分栏可以点击下面链接访问相关文档做一个简单了解。
首先,您需要在 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>13.12.2</version>
</dependency>
</dependencies>
由于页脚设置页码和总页数用到了两个域,Page 和 Num_Pages。但分栏的两部分内容始终在同一页上,获取到的页码也都是相同的,必须要进行一些计算处理才能达到预期的效果。
如果把所有分栏从开始到结束排列起来,那么可以很轻易得出,奇数栏实际的页码应该是 “2*当前 Word 页码-1“,偶数栏实际的页码应该是 “2*当前 Word 页码”,总页码应该是 “2*Word 总页数”。因此,现在存在两个主要问题:
好,我们带着这两个问题,继续往下吧!
解决问题1:利用嵌套域的方式完成
在一个表达式域中嵌套页码域,并让页码域获取的值参与表达式的计算。即达到 “{=2*{page}-1 }” 或者 “{=2*{page} }” 的效果。
那么如何实现表达式域嵌套页码域呢?首先需要了解的是一个完整的 Field 的构成应该是 Field+FieldMark(分隔符)+FieldMark(结束符)。并且,分隔符和结束符应该相邻;Field 和分隔符之间,可以嵌套其他的域。因此在表达式域中嵌套页码域完整表达如下:
Field(表达式域)
+Field(页码域)+FieldMark(页码域的分隔符)+FieldMark(页码域的结束符)
+FieldMark(表达式域的分隔符)+FieldMark(表达式域的结束符)
解决问题2:利用 Table 来达到需要的效果
在页脚中添加一个一行两列的不带边框的 Table,把两个分栏的页码部分分别放置于两个单元格中,再分别居中对齐。这样便可达到需要的效果。
关于表格的帮助文档,可以从下面链接中查看更多:表格帮助文档
Spire.Doc for Java 提供了 Field 类用于处理域。
| 方法 | 方法解释 |
| new Field(Document) | 实例化一个 Field,构造方法中要传入 Document 对象 |
| Field.setType(FieldType) | 设置 Field 类型,这里我们需要用到3种域的类型,分别是:FieldType.Field_Expression(表达式域)、FieldType.Field_Page(页码域)、FieldType.Field_Num_Pages(总页数域) |
| Field.setEnd(FieldMark) | 设置 Field 的结束符,将结束符实例作为参数 |
Spire.Doc for Java 提供了 FieldMark 类用于处理域的分隔符和结束符。
| 方法 | 方法解释 |
| new FieldMark(Document,FieldMarkType) | 实例化一个 FieldMark,构造方法中要传入 Document 和 FieldMarkType 对象,这里需要用到2个种类型,分别是:FieldMarkType.Field_Separator(分隔符)、FieldMarkType.Field_End(结束符) |
最后将,将添加的页码域或者总页数域 Field 和 FieldMark 按照上面提到的嵌套顺序插入到段落中即可。
| 方法 | 方法解释 |
| Paragraph.getItem().add() | 方法参数传入 Field 和 FieldMark 实例 |
下面介绍如何将 A4 格式的 Word 文档变成横向的分栏 A3 文档,并为每栏设置页码页脚。本 Demo 代码除主方法(Main)外,另写了 addPage() 方法来处理页码这一块的逻辑,因为需要多次插入分隔符和结束符,所以写 insertFieldMark() 方法来简化代码。另本次操作的 Word 文档只有一个 Section。
下面代码实现 “第y页 共x页” 的效果
Field field = new Field(document);
field. setType(FieldType.Field_Expression);Field field = new Field(document);
field. setType(FieldType.Field_Page);footerParagraph.appendText("-1");到此已经完成了对 “第y页” 效果的实现,后面 “共x页” 实现步骤类似,就不重复了。
FieldMark fieldMark = new FieldMark(document,FieldMarkType.Field_Separator);FieldMark FieldMark = new FieldMark(document,FieldMarkType.Field_End);import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
//加载源文档
Document doc = new Document();
doc.loadFromFile("https://cdn.e-iceblue.cn/data/考试题.docx");
//获取第一个Section
Section section = doc.getSections().get(0);
//设置页面大小A3并将页面设置为横向
section.getPageSetup().setPageSize(PageSize.A3);
section.getPageSetup().setOrientation(PageOrientation.Landscape);
//分栏
section.addColumn(0,0);
//获取页脚并清空页脚内容
HeaderFooter footer = section.getHeadersFooters().getFooter();
footer.getChildObjects().clear();
//页脚中插入一行二列的表格
Table table=footer.addTable(false);
table.resetCells(1,2);
//左分栏页码
addPage(table.get(0,0).addParagraph(),doc,"Left");
//右分栏页码
addPage(table.get(0,1).addParagraph(),doc,"Right");
//保存结果文档
doc.saveToFile("output/分栏word加页码.docx",FileFormat.Docx);
}
public static void addPage(Paragraph footerParagraph, Document document,String direction) {
//添加文本、节域、页码域到段落 第1页,共7页
footerParagraph.appendText("第 ");
//自定义域代码。表达式域嵌套页码域 完成页码计算
//创建表达式域
Field currentPage_Field =new Field(document);
currentPage_Field.setType(FieldType.Field_Expression);
//设置前半部分域代码
currentPage_Field.setCode("=2*");
//添加到段落中
footerParagraph.getItems().add(currentPage_Field);
//创建嵌入表达式域中的页码域(获取当前页码)
Field fieldPage=new Field(document);
fieldPage.setType(FieldType.Field_Page);
//添加到段落中
footerParagraph.getItems().add(fieldPage);
//给页码域设置“域分隔符标志”和“域结束标志”
insertFieldMark(document,footerParagraph,fieldPage);
//判断是左侧分栏页码还是右侧,如果是左侧,则追加域代码"减一"即"-1"
//左侧分栏页码对应计算表达式应该是 2*page-1
//右侧分栏页码对应计算表达式应该是 2*page
//page表示当前页码
if(direction.equals("Left")){
footerParagraph.appendText("-1");
}
//给页码域设置“域分隔符标志”和“域结束标志”
insertFieldMark(document,footerParagraph,currentPage_Field);
footerParagraph.appendText(" 页,共 ");
//添加嵌套“总页数”的表达式域
Field totalPage_Field = new Field(document);
totalPage_Field.setType(FieldType.Field_Expression);
totalPage_Field.setCode("=2*");
footerParagraph.getItems().add(totalPage_Field);
// 添加总页数域
Field pageNums=new Field(document);
pageNums.setType(FieldType.Field_Num_Pages);
footerParagraph.getItems().add(pageNums);
// 给总页数域设置“域分隔符标志”和“域结束标志”
insertFieldMark(document,footerParagraph,pageNums);
//给表达式域设置“域分隔符标志”和“域结束标志”
insertFieldMark(document,footerParagraph,totalPage_Field);
footerParagraph.appendText(" 页");
//设置段落样式
footerParagraph.getStyle().getCharacterFormat().setFontSize(9f);
footerParagraph.getStyle().getCharacterFormat().setFontName("宋体");
footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
}
// 给field插入分隔符(Field_Separator)和结束(Field_End)
public static void insertFieldMark(Document document,Paragraph paragraph, Field field) {
// 插入Field的分隔符
FieldMark separatorFieldMark = new FieldMark(document,FieldMarkType.Field_Separator);
paragraph.getItems().add(separatorFieldMark);
// 插入Field的结束符
FieldMark endFieldMark = new FieldMark(document,FieldMarkType.Field_End);
paragraph.getItems().add(endFieldMark);
field.setEnd(endFieldMark);
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
PDF 文档的属性是指嵌入在文档中的信息,这些信息包括作者、创建日期、最后修改日期等与文档有关的详细信息。通过 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
Spire.PDF for Python 提供了 PdfDocumentInformation 类来处理 PDF 文档的属性。在该类下存在多个属性,用于设置文档的默认属性,包括作者、主题、关键词等。此外,它还提供了 PdfDocumentInformation.SetCustomProperty() 方法来设置 PDF 文档的自定义属性。以下是设置 PDF 属性的详细步骤:
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument类的对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 获取文档的属性
properties = pdf.DocumentInformation
# 设置内置属性
properties.Author = "泰德"
properties.Creator = "Spire.PDF"
properties.Keywords = "云服务;数字化业务"
properties.Subject = "云服务的介绍及其优势"
properties.Title = "云服务的力量:赋能数字企业"
properties.Producer = "Spire.PDF for Python"
# 设置自定义属性
properties.SetCustomProperty("公司", "E-iceblue")
properties.SetCustomProperty("标签", "云;数字业务;服务器")
# 保存文档
pdf.SaveToFile("output/设置PDF属性.pdf")
pdf.Close()
默认 PDF 属性中的信息可通过 PdfDocumentInformation 类下的属性获取,而自定义的 PDF 属性中的信息则需要通过 PdfDocumentInformation.GetCustomProperty() 方法获取。获取 PDF 属性的具体步骤如下:
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument类的对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("https://cdn.e-iceblue.cn/output\设置PDF属性.pdf")
# 获取文档的属性
properties = pdf.DocumentInformation
# 创建字符串对象
information = ""
# 获取内置属性
information += "作者: " + properties.Author
information += "\n标题: " + properties.Title
information += "\n主题: " + properties.Subject
information += "\n关键字: " + properties.Keywords
information += "\n应用程序: " + properties.Creator
information += "\nPDF制作程序: " + properties.Producer
# 获取自定义属性
information += "\n公司: " + properties.GetCustomProperty("公司")
information += "\n标签: " + properties.GetCustomProperty("标签")
# 打印文档属性
print(information)
pdf.Close()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF 9.11.4 已发布。本次更新新增 PdfImageHelper 接口来支持提取、删除、替换以及压缩图片。该版本还增强了 PDF 到 XPS 和 XPS 到 PDF 的转换功能。此外,一些已知问题也在该版本中得到修复,如提取出的 PDF 表格有两列合并在一起的问题。详情请阅读以下内容。
新功能:
// Delete image:
imageHelper.DeleteImage(imageInfos[0]);
// Extract images:
int index = 0;
foreach (PdfImageInfo info in imageInfos)
{
info.Image.Save(outputFile_I + string.Format("Image-{0}.png", index));
index++;
}
// Replace image:
PdfImage image = PdfImage.FromFile(TestUtil.DataPath + "ImgFiles/E-iceblue logo.png");
imageHelper.ReplaceImage(imageInfos[0], image);
// Compress images:
foreach (PdfPageBase page in doc.Pages)
{
foreach (PdfImageInfo info in imageHelper.GetImagesInfo(page))
{
bool success = info.TryCompressImage();
}
}问题修复:
图片在有效传达复杂想法或概念方面起着重要作用。当 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 不仅支持在 Word 中插入图片,还支持替换现有图片。以下是在 Word 中获取特定图片并将其替换为新图片的详细步骤。
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
doc = Document()
# 加载Word文档
doc.LoadFromFile("示例.docx")
# 创建一个列表来存储图片
pictures = []
# 遍历文档中的所有节
for i in range(doc.Sections.Count):
sec = doc.Sections.get_Item(i)
# 遍历每一节中的所有段落
for j in range(sec.Paragraphs.Count):
para = sec.Paragraphs.get_Item(j)
# 遍历每个段落中的所有子对象
for k in range(para.ChildObjects.Count):
docObj = para.ChildObjects.get_Item(k)
# 查找图片并将其添加到列表中
if docObj.DocumentObjectType == DocumentObjectType.Picture:
pictures.append(docObj)
# 用新图片替换列表中的第一张图片
picture = pictures[0] if isinstance(pictures[0], DocPicture) else None
picture.LoadImage("图片.png")
# 保存结果文档
doc.SaveToFile("替换图片.docx", FileFormat.Docx)
doc.Close()
Spire.Doc for Python 没有提供用文本替换图片的直接方法,但您可以通过在图片位置插入文本,然后删除文档中的图片来实现这一功能。以下是用文本替换 Word 文档中所有图片的详细步骤:
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
doc = Document()
# 加载Word文档
doc.LoadFromFile("示例.docx")
j = 1
# 遍历文档中的所有节
for k in range(doc.Sections.Count):
sec = doc.Sections.get_Item(k)
# 遍历每一节中的所有段落
for m in range(sec.Paragraphs.Count):
para = sec.Paragraphs.get_Item(m)
# 创建一个列表来存储图片
pictures = []
# 查找图片并将其添加到列表中
for x in range(para.ChildObjects.Count):
docObj = para.ChildObjects.get_Item(x)
if docObj.DocumentObjectType == DocumentObjectType.Picture:
pictures.append(docObj)
# 遍历列表中的所有图片,并用文本替换它们
for pic in pictures:
index = para.ChildObjects.IndexOf(pic)
textRange = TextRange(doc)
textRange.Text = "这是图片 {0}".format(j)
para.ChildObjects.Insert(index, textRange)
para.ChildObjects.Remove(pic)
j += 1
# 保存结果文档
doc.SaveToFile("文本替换图片.docx", FileFormat.Docx)
doc.Close()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在进行 Word 文档格式化时,调整段落的段前间距和段后间距是一种常见需求。通过设置段前和段后间距,可以显著提升文档的可读性、美观性和排版效果。这样做不仅可以使文档更舒适地呈现给读者,还能够让读者更加轻松地理解文本的逻辑结构和段落之间的关系。
合理设置段落间距也是非常重要的。适当的间距可以将不同段落清晰地区分开来,使其之间的界限更加明确。这样一来,读者就能更容易地辨认每个段落,并更好地理解它们之间的联系与转换。
在本文中,我们将学习如何利用 Spire.Doc for 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 提供了 ParagraphFormat 类用于处理段落格式。您可以使用 Paragraph.Format 方法获取 ParagraphFormat 类的对象,然后使用下面的方法设置对应的段落段前、段后值:
| 方法 | 方法解释 |
| ParagraphFormat.BeforeAutoSpacing = bool value | 设置段前间距是否自动变化 |
| ParagraphFormat.BeforeSpacing = float value | 设置固定的段前间距值 |
| ParagraphFormat.AfterAutoSpacing = bool value | 设置段后间距是否自动变化 |
| ParagraphFormat.AfterSpacing = float value | 设置固定的段后间距值 |
下面介绍如何对给新增的段落设置段前、段后间距,下面步骤的主要逻辑就是给加载的 Word 文档新增一个文本内容的段落,并为其设置字体颜色、字体大小;然后设置该段落的段前、段后间距,最后保存结果文档到指定目录。
import os
from spire.doc import *
from spire.doc.common import *
# 输入文件路径
inputFile = " sampleForPython.docx"
# 输出文件路径
outputFile = "SetSpacing_python.docx"
# 创建Word文档对象
document = Document()
# 从磁盘加载文件
document.LoadFromFile(inputFile)
# 向文档中新增一个段落
para = Paragraph(document)
# 向段落中插入文本
textRange1 = para.AppendText("这是一个新增的段落。")
# 设置文本颜色为蓝色
textRange1.CharacterFormat.TextColor = Color.get_Blue()
# 设置文本字体大小为15pt
textRange1.CharacterFormat.FontSize = 15
# 获取ParagraphFormat对象
paraFormat = para.Format
# 设置段前的间距为10pt
paraFormat.BeforeAutoSpacing = False
paraFormat.BeforeSpacing = 10
# 设置段后的间距为10pt
paraFormat.AfterAutoSpacing = False
paraFormat.AfterSpacing = 10
# 将添加的段落插入到Word文档中
document.Sections.get_Item(0).Paragraphs.Insert(1, para)
# 保存到文件
document.SaveToFile(outputFile, FileFormat.Docx2013)
document.Close()
我们用 Spire.Doc for Python 格式化文档段落时,更多的场景是需要批量对某些段落进行段前、段后间距的设置以此来提高效率。下面就介绍如何批量对拥有相同样式的段落设置段前、段后间距。下面看看具体实现步骤:
对于符合需求的段落设置段前、段后间距,就和给新增段落设置段前、段后间距一样,如下步骤:
import os
from spire.doc import *
from spire.doc.common import *
# 输入文件路径
inputFile = " sampleForPython.docx"
# 输出文件路径
outputFile = "SetSpacingMuti_python1.docx"
# 创建Word文档对象
document = Document()
# 从磁盘加载文件
document.LoadFromFile(inputFile)
# 遍历文档中的所有setion
for i in range(document.Sections.Count):
# 获取当前section
section = document.Sections.get_Item(i)
# 遍历当前section的所有段落
for j in range(section.Paragraphs.Count):
# 获取当前段落
para = section.Paragraphs.get_Item(j)
# 判断样式名称是否为“Heading1”
if para.StyleName == "Heading1":
# 获取ParagraphFormat对象
paraFormat = para.Format
# 设置段前的间距为固定值20pt
paraFormat.BeforeAutoSpacing = False
paraFormat.BeforeSpacing = 20
# 设置段后的间距为固定值20pt
paraFormat.AfterAutoSpacing = False
paraFormat.AfterSpacing = 20
# 保存到文件
document.SaveToFile(outputFile, FileFormat.Docx2013)
document.Close()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS for Java 13.11.0已发布。该版本新增支持从“名称管理器”中获取注释的功能。同时,也增强了从Excel到PDF的转换功能。此外,一些已知问题也在该版本中被成功修复,如读取Excel文档时,程序抛出“Invalid ValidationAlertType"的问题。详情请阅读以下内容。
新功能:
Workbook workbook = new Workbook();
workbook.loadFromFile(inputFile);
INameRanges nameManager = workbook.getNameRanges();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0;i < nameManager.getCount();i++)
{
XlsName name = (XlsName) nameManager.get(i);
stringBuilder.append("Name:" + name.getName() + ", Comment: " +name.getCommentValue() + "\r\n");
}
workbook.dispose();问题修复:
Spire.Doc 11.11.0 已发布。本次更新增强了 Word、HTML 和 ODT 到 PDF 转换功能以及 Word 到图片和 PDF 的转换功能。此外,一些已知问题也在该版本中得到修复,如将一 Doc 格式文档另存为新文档后编辑限制效果丢失的问题。详情请阅读以下内容。
问题修复:
更改幻灯片大小是保持 PPT 文档视觉完整性的方法之一。通过根据目标屏幕或投影设备的特定长宽比和尺寸来调整幻灯片大小,可以避免出现内容被裁剪、拉伸或扭曲等问题。在本文中,您将学习如何使用 Spire.Presentation for .NET 通过 C# 代码更改 PowerPoint 演示文稿的幻灯片大小。
首先,您需要添加 Spire.Presentation for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PresentationSpire.Presentation for .NET 提供的 Presentation.SlideSize.Type 属性可用于设置或更改幻灯片大小为预设尺寸。具体步骤如下。
using Spire.Presentation;
namespace CreateCombination
{
class Program
{
static void Main(string[] args)
{
//创建Presentation对象
Presentation ppt = new Presentation();
//加载PPT文档
ppt.LoadFromFile("模板.pptx");
//更改PPT幻灯片大小
ppt.SlideSize.Type = SlideSizeType.Screen4x3;
//保存结果文档
ppt.SaveToFile("预定义幻灯片大小.pptx", FileFormat.Pptx2013);
ppt.Dispose();
}
}
}

自定义幻灯片大小需要先将幻灯片尺寸类型更改为自定义 Custom,然后通过 Presentation.SlideSize.Size 属性设置所需的大小。具体步骤如下。
using Spire.Presentation;
using System.Drawing;
namespace CreateCombination
{
class Program
{
static void Main(string[] args)
{
//创建Presentation对象
Presentation ppt = new Presentation();
//加载PPT文档
ppt.LoadFromFile("模板.pptx");
//将幻灯片尺寸类型更改为自定义
ppt.SlideSize.Type = SlideSizeType.Custom;
//设置幻灯片尺寸
ppt.SlideSize.Size = new SizeF(900, 600);
//保存结果文档
ppt.SaveToFile("自定义幻灯片大小.pptx", FileFormat.Pptx2013);
ppt.Dispose();
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF 9.11.0已发布。该版本增强了PDF到图片和SVG的转换功能。此外,还修复了一系列其他已知问题,例如打印PDF时部分文本显示不清晰的问题。详情请阅读以下内容。
问题修复:
PDF 页面是构成 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
通过使用 Spire.PDF for Python 提供的 PdfDocument.Pages.Insert() 或 PdfDocument.Pages.Add(SizeF, PdfMargins) 方法,您可以轻松地将空白页添加到 PDF 中的特定位置或文档末尾。具体步骤如下:
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文档
pdf.LoadFromFile("文档.pdf")
# 在文档中插入空白页作为第二页
pdf.Pages.Insert(1)
# 在文档末尾添加空白页
pdf.Pages.Add(PdfPageSize.A4(), PdfMargins(0.0, 0.0))
# 保存结果文件
pdf.SaveToFile("Output\添加页面.pdf")
pdf.Close()

要从 PDF 中删除指定页面,可以使用 PdfDocument.Pages.RemoveAt() 方法。具体步骤如下:
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文档
pdf.LoadFromFile("文档.pdf")
# 删除文件第二页
pdf.Pages.RemoveAt(1)
# 保存结果文件
pdf.SaveToFile("Output\删除页面.pdf")
pdf.Close()

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