Spire.XLS 14.9.1 已发布。本次更新新增支持识别 Msg 格式的 OLE 对象和对 DTD 进行禁用处理。同时,该版本还补充了对 BAHTTEXT 公式的支持。此外,一些已知问题也在该版本中成功修复,如使用 MarkerDesigner 功能进行数据求和的结果不正确的问题。详情请阅读以下内容。
新功能:
Workbook wb = new Workbook();
wb.LoadFromFile(inputFile);
Worksheet sheet =wb.Worksheets[0];
OleObjectType type;
if (sheet.HasOleObjects)
{
for (int i = 0; i < sheet.OleObjects.Count; i++)
{
var Object = sheet.OleObjects[i];
type = sheet.OleObjects[i].ObjectType;
switch (type)
{
case OleObjectType.Msg:
File.WriteAllBytes(outputFile_1, Object.OleData);
break;
......
}
}
}Workbook workbook = new Workbook();
workbook.ProhibitDtd = true;
workbook.LoadFromFile(inputFile);
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
workbook.Dispose();Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A3"].Value2 = 1234;
workbook.Worksheets[0].Range["C3"].Formula = "=BAHTTEXT(A3)";
workbook.Worksheets[0].Range["A9"].Value = "1234";
workbook.Worksheets[0].Range["C9"].Formula = "=BAHTTEXT(A9)";
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
workbook.Dispose(); 问题修复:
Spire.Doc for Java 12.9.0 现已正式发布。本次更新支持判断书签是否被隐藏。此外,一些已知的问题也在新版本中被成功修复,比如替换书签内容后行距不一致的问题。详情请查阅以下内容。
新功能:
问题修复:
在打印 Excel 电子表格时,特别是那些包含复杂数据集或详细报告的文档,正确配置页面设置至关重要。Excel 的页面设置使您能够调整页面边距、方向、纸张大小和缩放等各种属性,以确保你的文档符合不同的打印需求。通过自定义这些设置,你可以控制内容在页面上的显示方式,使其看起来更加精美和专业。本文将演示如何使用 Spire.XLS for .NET 和 C# 调整 Excel 页面设置。
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
Spire.XLS for .NET 提供了 PageSetup 类,用于配置 或修改 Excel 工作表的页面设置。你可以通过 Worksheet.PageSetup 属性获取特定工作表的 PageSetup 对象,然后使用 PageSetup 类的 TopMargin、BottomMargin、LeftMargin、RightMargin、HeaderMarginInch 和 FooterMarginInch 等属性设置相应的页边距。具体步骤如下:
using Spire.Xls;
namespace SetPageMargins
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.PageSetup;
// 设置工作表的上、下、左、右、页眉、页脚页边距(单位为英寸,1英寸 = 2.54厘米)
pageSetup.TopMargin = 1;
pageSetup.BottomMargin = 1;
pageSetup.LeftMargin = 1;
pageSetup.RightMargin = 1;
pageSetup.HeaderMarginInch = 1;
pageSetup.FooterMarginInch = 1;
// 将修改后的工作簿保存为新文件
workbook.SaveToFile("设置页边距.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

要调整 Excel 工作表的页面方向,你可以使用 PageSetup 类的 Orientation 属性。具体步骤如下:
using Spire.Xls;
namespace SetPageOrientation
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.PageSetup;
// 将工作表的打印页面方向设置为横向
pageSetup.Orientation = PageOrientationType.Landscape;
// 将修改后的工作簿保存为新文件
workbook.SaveToFile("设置页面方向.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

你还可以使用 PageSetup 类的 PaperSize 属性为 Excel 工作表设置多种纸张大小,如 A3、A4、A5、B4、B5、Letter、Legal 和 Tabloid 等。具体步骤如下:
using Spire.Xls;
namespace SetPaperSize
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.PageSetup;
// 将纸张大小设置为 A4
pageSetup.PaperSize = PaperSizeType.PaperA4;
// 将修改后的工作簿保存为新文件
workbook.SaveToFile("设置纸张大小.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

Excel 工作表的打印区域可以通过 PageSetup 类的 PrintArea 属性自定义。具体步骤如下:
using Spire.Xls;
namespace SetPrintArea
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.PageSetup;
// 将工作表的打印区域设置为 "A1:E5"
pageSetup.PrintArea = "A1:E5";
// 将修改后的工作簿保存为新文件
workbook.SaveToFile("设置打印区域.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

通过使用 PageSetup 类的 Zoom 属性,你可以将工作表的内容缩放到原始大小的特定百分比。具体步骤如下:
using Spire.Xls;
namespace SetScalingFactor
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.PageSetup;
// 将工作表的缩放比例设置为 90%
pageSetup.Zoom = 90;
// 将修改后的工作簿保存为新文件
workbook.SaveToFile("设置缩放比例.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

除了将工作表的内容缩放到原始大小的特定百分比外,你还可以使用 PageSetup 类的 FitToPagesTall 和 FitToPagesWide 属性将其适应到特定页数,例如1页。具体步骤如下:
using Spire.Xls;
namespace SetFitToPages
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.PageSetup;
// 将工作表内容在垂直方向上调整到一页(即所有行都适应到一页)
pageSetup.FitToPagesTall = 1;
// 将工作表内容在水平方向上调整到一页(即所有列都适应到一页)
pageSetup.FitToPagesWide = 1;
// 将修改后的工作簿保存为新文件
workbook.SaveToFile("调整为一页.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

有关给 Excel 设置页眉和页脚的详细信息,请查看这篇文章:C#/VB.NET 向 Excel 添加页眉和页脚。
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在撰写学术论文、报告和法律文件等各类文档时,通常会有关于字数、页数和其他重要指标的具体格式要求。准确衡量这些元素至关重要,因为这能确保您的文档符合所需标准并且达到预期。本文将介绍如何使用 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 提供的 BuiltinDocumentProperties 类来获取 Word 文档里的重要信息。通过这个类,你可以访问包括内置文档属性在内的大量详细信息,还可以获取文档中的字数、页数、字符数、段落数和行数。
下面的步骤将介绍怎样通过 Spire.Doc for Python 在 Python 中获取 Word 文档的字数、页数、字符数、段数和行数:
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 对象
doc = Document()
# 加载 Word 文档
doc = Document("样本.docx")
# 创建一个列表,用以存储数据
sb = []
# 获取该文档的内置属性
properties = doc.BuiltinDocumentProperties
# 获取该文档的字数、字符数、段数、行数和页数,并将结果添加到列表中
sb.append("字数为: " + str(properties.WordCount))
sb.append("字符数为: " + str(properties.CharCount))
sb.append("段落数为: " + str(properties.ParagraphCount))
sb.append("行数为: " + str(properties.LinesCount))
sb.append("页数为: " + str(properties.PageCount))
# 将列表中的数据保存到文本文件中
with open("结果.txt", "w") as file:
file.write("\n".join(sb))
# 释放资源
doc.Close()

除了获取整个 Word 文档的总字数、页数和其他指标以外,你也可以通过 Paragraph.WordCount 和 Paragraph.CharCount 属性来获取指定段落的字数和字符数。
下面将介绍怎样通过 Spire.Doc for Python 在 Python 中获取某个段落的字数和字符数:
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 对象
doc = Document()
# 加载 Word 文档
doc = Document("样本.docx")
# 获取一个特定的段落
paragraph = doc.Sections.get_Item(0).Paragraphs.get_Item(0)
# 创建一个列表
sb = []
# 获取该段落中的字数和字符数,并将结果保存到列表
sb.append("字数为: " + str(paragraph.WordCount))
sb.append("字符数为: " + str(paragraph.CharCount))
# 将列表中的内容保存到文本文件中
with open("段落结果.txt", "w") as file:
file.write("\n".join(sb))
# 释放资源
doc.Close()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
PDF 文件中的条形码可以加快数据检索和处理速度。您可以在 PDF 文件中添加包含详细信息的条形码,如文档的唯一标识符、版本号、创建者,甚至整个文档内容。扫描后,所有信息都会立即解码。这种即时访问对于处理大量文件的企业来说非常有用,因为它最大限度地减少了人工搜索和数据录入所需的时间和精力。在本文中,您将学习如何使用 Spire.PDF for Python 和 Spire.Barcode for Python 在 Python 中为 PDF 添加条形码和二维码。
本教程需要用到 Spire.PDF for Python 和 Spire.Barcode for Python。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
pip install Spire.Barcode
如果您不清楚如何安装,请参考: 如何在 Windows 中安装 Spire.PDF for Python
Spire.PDF for Python 提供了多种类来代表不同的一维条码类型,如 PdfCodabarBarcode、PdfCode11Barcode、PdfCode32Barcode、PdfCode39Barcode、PdfCode93Barcode。
每一类都提供了相应的属性,用于设置条形码文本、大小、颜色等。以下是在 PDF 页面指定位置绘制常见的 Codabar、Code39 和 Code93 条码的步骤。
from spire.pdf.common import *
from spire.pdf import *
# 创建PDF文档
pdf = PdfDocument()
# 添加一页
page = pdf.Pages.Add(PdfPageSize.A4())
# 初始化y轴
y = 20.0
# 创建字体
font = PdfTrueTypeFont("Arial", 12.0, PdfFontStyle.Bold, True)
# 在页面上绘制文本
text = PdfTextWidget()
text.Font = font
text.Text = "Codabar:"
result = text.Draw(page, 0.0, y)
page = result.Page
y = result.Bounds.Bottom + 2
# 在页面上绘制Codabar条码
Codabar = PdfCodabarBarcode("00:12-3456/7890")
Codabar.BarcodeToTextGapHeight = 1.0
Codabar.EnableCheckDigit = True
Codabar.ShowCheckDigit = True
Codabar.TextDisplayLocation = TextLocation.Bottom
Codabar.TextColor = PdfRGBColor(Color.get_Blue())
Codabar.Draw(page, PointF(0.0, y))
y = Codabar.Bounds.Bottom + 6
# 在页面上绘制文本
text.Text = "Code39:"
result = text.Draw(page, 0.0, y)
page = result.Page
y = result.Bounds.Bottom + 2
# 在页面上绘制Code39条码
Code39 = PdfCode39Barcode("16-273849")
Code39.BarcodeToTextGapHeight = 1.0
Code39.TextDisplayLocation = TextLocation.Bottom
Code39.TextColor = PdfRGBColor(Color.get_Blue())
Code39.Draw(page, PointF(0.0, y))
y = Code39.Bounds.Bottom + 6
# 在页面上绘制文本
text.Text = "Code93:"
result = text.Draw(page, 0.0, y)
page = result.Page
y = result.Bounds.Bottom + 2
# 在页面上绘制Code93条码
Code93 = PdfCode93Barcode("16-273849")
Code93.BarcodeToTextGapHeight = 1.0
Code93.TextDisplayLocation = TextLocation.Bottom
Code93.TextColor = PdfRGBColor(Color.get_Blue())
Code93.QuietZone.Bottom = 5.0
Code93.Draw(page, PointF(0.0, y))
# 保存文档
pdf.SaveToFile("添加条形码.pdf")
pdf.Close()

要在 PDF 文件中添加二维条码,首先需要使用 Spire.Barcode for Python 库生成二维码,然后再通过 Spire.PDF for Python 库将二维码图片添加到 PDF 文件中。具体步骤如下:
from spire.pdf.common import *
from spire.pdf import *
from spire.barcode import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 添加一页
page = pdf.Pages.Add()
# 创建BarcodeSettings对象
settings = BarcodeSettings()
# 将条码类型设置为QRcode
settings.Type = BarCodeType.QRCode
# 设置二维码数据
settings.Data = "E-iceblue"
settings.Data2D = "E-iceblue"
# 设置二维码宽度
settings.X = 2
# 设置二维码纠错级别
settings.QRCodeECL = QRCodeECL.M
# 设置底部显示文本
settings.ShowTextOnBottom = True
# 基于以上设置生成二维码图片
barCodeGenerator = BarCodeGenerator(settings)
QRimage = barCodeGenerator.GenerateImage()
# 将二维码图片保存为PNG格式
with open("QRCode.png", "wb") as file:
file.write(QRimage)
# 初始化y轴
y = 20.0
# 创建字体
font = PdfTrueTypeFont("Arial", 12.0, PdfFontStyle.Bold, True)
# 在页面上绘制文本
text = PdfTextWidget()
text.Font = font
text.Text = "QRCode:"
result = text.Draw(page, 0.0, y)
page = result.Page
y = result.Bounds.Bottom + 2
# 将二维码图片绘制到页面指定位置
pdfImage = PdfImage.FromFile("QRCode.png")
page.Canvas.DrawImage(pdfImage, 0.0, y)
# 保存文档
pdf.SaveToFile("添加二维码.pdf")
pdf.Close()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Office 9.8.0 已发布。在该版本中,Spire.PDF 支持利用 Chrome 插件转换 HTML 到 PDF;Spire.XLS 支持获取工作表的自定义属性以及开启修订模式;Spire.Presentation 支持转换 PowerPoint 文档为 Markdown 文件;Spire.OCR 支持配置 OCR 使用的模型、识别语言以及依赖库。此外,大量已知问题也在该版本中成功修复。详情请阅读以下内容。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
问题修复:
新功能:
Workbook workbook = new Workbook ();
workbook.LoadFromFile("funds-test.xlsx");
ICustomPropertiesCollection customProperties = workbook.Worksheets[0].CustomProperties;
for (int i = 0; i < customProperties.Count; i++)
{
XlsCustomProperty xcp = customProperties[i];
string name = xcp.Name;
string value = xcp.Value;
}ole.OleOriginNameWorkbook.TrackedChanges=true;//default value is falseWorkbook.SetGlobalCustomFontsFolders(string[] fontPath);问题修复:
新功能:
PdfStandardsConverter converter = new PdfStandardsConverter(stream);
converter.Options.PreserveAllowedMetadata = true;string chromeLocation = baseDirectory + "chrome\\Chrome-bin\\chrome.exe";
ChromeHtmlConverter converter = new ChromeHtmlConverter(chromeLocation);
ConvertOptions options = new ConvertOptions();
options.Timeout = 10 * 1000;
options.PageSettings = new PageSettings()
{
PaperWidth = 8.77,
PaperHeight = 6.20,
MarginBottom = 0,
MarginTop = 0,
MarginLeft = 0,
MarginRight = 0
};
converter.ConvertToPdf("https://www.e-iceblue.cn/", outputFile, options);var pdfAsStream = new MemoryStream();
string chromeLocation = baseDirectory + "chrome\\Chrome-bin\\chrome.exe";
ChromeHtmlConverter converter = new ChromeHtmlConverter(chromeLocation);
ConvertOptions options = new ConvertOptions();
options.Timeout = 10 * 1000;
options.PageSettings = new PageSettings()
{
PaperWidth = 8.77,
PaperHeight = 6.2,
MarginBottom = 0,
MarginTop = 0,
MarginLeft = 0,
MarginRight = 0
};
converter.ConvertToPdf("https://www.e-iceblue.cn/", pdfAsStream, options);pdfDocument.ConvertOptions.SetPdfToXlsxOptions(new XlsxLineLayoutOptions(true, false, false)); //bool convertToMultipleSheet, bool rotatedText, bool splitCell优化:
问题修复:
新功能:
Presentation ppt = new Presentation();
ppt.LoadFromFile("1.pptx");
ppt.SaveToFile("1.md", FileFormat.Markdown);
ppt.Dispose();问题修复:
新功能:
OcrScanner scanner = new OcrScanner();
// 创建 ConfigureOptions 类的新实例
ConfigureOptions configureOptions = new ConfigureOptions();
// 配置模型文件的路径
configureOptions.ModelPath = @"D:\Model&Lib\Model\V4.Server";
// 配置依赖库的路径
configureOptions.LibPath = @"D:\Model&Lib\Lib\V2.7\Net\X64";
// 指定语言
configureOptions.Language = "Chinese";
// 使用 ConfigureDependencies 应用配置到扫描器
scanner.ConfigureDependencies(configureOptions);
scanner.Scan("test.tif");问题修复:
Spire.Presentation for Java 9.8.3 已发布。该版本支持在替换文本时设置样式,并修复了一些在加载 PPT 文件,在表格单元格中添加公式,以及添加 Latex 公式时出现的问题。详情请查看以下内容。
新功能:
Presentation ppt = new Presentation();
// 加载指定 PowerPoint 文档
ppt.loadFromFile(inputFile);
// 创建一个新对象,用于存储默认文本范围格式属性
PortionFormatEx format = new PortionFormatEx();
// 将文本范围格式的 IsBold 属性设置为 true 来加粗文本
format.isBold(TriState.TRUE);
// 将文本区域填充的 FillType 属性设置为 SOLID,表示纯色填充
format.getFill().setFillType(FillFormatType.SOLID);
// 将纯色填充的颜色属性设置为红色
format.getFill().getSolidColor().setColor(Color.red);
// 将文本范围格式的 FontHeight 属性设置为 25,表示字体大小
format.setFontHeight(25);
format.isBold(TriState.TRUE);
// 将所有出现的 "Spire.Presentation for .NET" 文本替换为 "Spire.PPT",并应用指定格式
ppt.ReplaceAndFormatText("Spire.Presentation for .NET", "Spire.PPT", format);
// 保存修改后的 PowerPoint 文档,并释放资源
ppt.saveToFile(outputFile, FileFormat.PPTX_2016);
ppt.dispose();问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
HTML 文件通常包含重要的表格数据,但直接在 HTML 中处理这些数据既不直观也不高效。通过将 HTML 表格转换为 Excel 格式,可以利用 Excel 的数据管理和分析功能,更轻松地整理、分析和展示这些数据。不论是为了数据分析、报告编制,还是为了更好地组织数据,将 HTML 转换为 Excel 都能让这个过程变得更加简洁和高效。本文将介绍如何使用 Spire.XLS for Java 和 Java 将 HTML 转为 Excel。
首先,您需要在 Java 程序中添加 Spire.Xls.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.xls</artifactId>
<version>16.9.2</version>
</dependency>
</dependencies>
Spire.XLS for Java 提供了 Workbook.loadFromHtml() 方法来加载 HTML 文件。加载后,你可以使用 Workbook.saveToFile() 方法将其转换为 Excel 格式。详细步骤如下:
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
public class ConvertHtmlToExcel {
public static void main(String[] args) {
// 指定输入的 HTML 文件路径
String filePath = "C:\\Users\\Administrator\\Desktop\\test.html";
// 创建 Workbook 类的对象
Workbook workbook = new Workbook();
// 加载 HTML 文件
workbook.loadFromHtml(filePath);
// 将 HTML 文件保存为 Excel XLSX 格式
String result = "C:\\Users\\Administrator\\Desktop\\HtmlToExcel.xlsx";
workbook.saveToFile(result, ExcelVersion.Version2013);
workbook.dispose();
}
}

除了将 HTML 文件转换为 Excel 格式外,你还可以使用 Spire.XLS for Java 提供的 CellRange.setHtmlString() 方法直接将 HTML 字符串插入到 Excel 单元格中。详细步骤如下:
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class InsertHtmlStringInExcelCell {
public static void main(String[] args) {
// 创建 Workbook 类的对象
Workbook workbook = new Workbook();
// 获取第一张工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 指定 HTML 字符串
String htmlCode = "<p><font size='12'>这是一段包含<b>粗体文本</b>和<span style='color: red;'>彩色文本</span>的段落。</font></p>";
// 获取要添加 HTML 字符串的单元格
CellRange range = sheet.getCellRange("A1");
// 将 HTML 字符串添加到单元格中
range.setHtmlString(htmlCode);
// 设置第一列的列宽
sheet.setColumnWidth(1, 45);
// 将结果工作簿保存为新文件
String result = "InsertHtmlStringInCell.xlsx";
workbook.saveToFile(result, ExcelVersion.Version2013);
workbook.dispose();
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
PDF 文档中的动作(Action)可以实现各种特殊的功能,例如文件打开、导航控制甚至是媒体播放。通过在 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 文档的指定页面的指定位置的动作。开发者可以通过创建一个 PdfDestination 对象,并基于该对象创建一个 PdfGoToAction 对象,来完成导航动作的创建。创建好导航动作后,开发者可以创建动作注释添加到文档的任何位置。以下是详细操作步骤:
from spire.pdf import *
# 创建PdfDocument类的一个实例并加载一个PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 获取第二页
page = pdf.Pages.get_Item(1)
# 创建一个PdfDestination实例并设置其属性
destination = PdfDestination(pdf.Pages.get_Item(0))
destination.Location = PointF(0.0, 0.0)
destination.Mode = PdfDestinationMode.Location
destination.Zoom = 0.8
# 创建一个PdfGoToAction实例
action = PdfGoToAction(destination)
# 在第二页上绘制一个矩形
rect = RectangleF.FromLTRB(70, pdf.PageSettings.Size.Height - 120, 140, pdf.PageSettings.Size.Height - 100)
page.Canvas.DrawRectangle(PdfBrushes.get_LightGray(), rect)
# 绘制按钮的文字
font = PdfTrueTypeFont("HarmonyOS Sans SC", 14.0, PdfFontStyle.Regular, True)
stringFormat = PdfStringFormat(PdfTextAlignment.Center)
page.Canvas.DrawString("转到第一页", font, PdfBrushes.get_Green(), rect, stringFormat)
# 创建一个PdfActionAnnotation实例
annotation = PdfActionAnnotation(rect, action)
# 将注释添加到第二页
page.Annotations.Add(annotation)
# 保存文档
pdf.SaveToFile("output/PDF添加导航动作.pdf")
pdf.Close()

开发者可以将音频作为动作嵌入到 PDF 文档中,在用户执行特定操作时(如文件打开时或点击按钮时)播放特定音频,从而实现文档背景音乐等特殊功能。以下是创建声音动作的操作步骤:
from spire.pdf import *
# 创建PdfDocument实例并加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 获取文档的第一页
page = pdf.Pages.get_Item(0)
# 使用声音文件路径创建PdfSoundAction实例
soundAction = PdfSoundAction("Wave.wav")
# 设置音频参数
soundAction.Sound.Bits = 16
soundAction.Sound.Channels = PdfSoundChannels.Stereo
soundAction.Sound.Encoding = PdfSoundEncoding.Signed
soundAction.Sound.Rate = 44100
# 设置播放参数
soundAction.Volume = 0.5
soundAction.Repeat = True
soundAction.Mix = True
soundAction.Synchronous = False
# 在页面上绘制一张图片
image = PdfImage.FromFile("Sound.png")
page.Canvas.DrawImage(image, PointF(30.0, 30.0))
# 使用声音动作创建PdfActionAnnotation实例
rect = RectangleF.FromLTRB(30.0, 30.0, image.GetBounds().Width + 30.0, image.GetBounds().Height + 30.0)
annotation = PdfActionAnnotation(rect, soundAction)
# 将注释添加到页面
page.Annotations.Add(annotation)
# 设置声音动作为文档打开后播放(注:此行注释掉了,如果需要播放则取消注释)
# pdf.AfterOpenAction = soundAction
# 保存文档
pdf.SaveToFile("output/PDF创建声音动作.pdf")
pdf.Close()

PdfLaunchAction 类代表了 PDF 中的文件打开动作,允许用户通过特定操作来打开对应的文件。开发者可以在创建文件打开动作时,指定文件的绝对路径或相对路径,以及是否在新窗口中打开等。创建文件打开动作的详细步骤如下:
from spire.pdf import *
# 创建PdfDocument类的一个实例
pdf = PdfDocument()
# 加载一个PDF文件
pdf.LoadFromFile("示例.pdf")
# 获取文档的第一页
page = pdf.Pages.get_Item(0)
# 在页面上绘制一个矩形
rect = RectangleF.FromLTRB(50, pdf.PageSettings.Size.Height - 100, 200, pdf.PageSettings.Size.Height - 80)
page.Canvas.DrawRectangle(PdfPens.get_LightGray(), rect)
# 在矩形内绘制文本
font = PdfTrueTypeFont("HarmonyOS Sans SC", 14.0, PdfFontStyle.Regular, True)
page.Canvas.DrawString("点击打开示例2", font, PdfBrushes.get_Green(), rect, PdfStringFormat(PdfTextAlignment.Center))
# 创建一个PdfLaunchAction对象
action = PdfLaunchAction("示例2.pdf", PdfFilePathType.Relative)
action.IsNewWindow = True
# 根据该动作创建一个PdfActionAnnotation对象
annotation = PdfActionAnnotation(rect, action)
annotation.Color = PdfRGBColor(Color.get_Blue())
# 将注释添加到页面
page.Annotations.Add(annotation)
# 保存文档
pdf.SaveToFile("output/PDF创建文件打开动作.pdf")
pdf.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
页面方向是由页面宽度和高度之间的关系决定的。使用 Spire.PDF for Python,你可以比较这两个值,来检测页面是横向(宽大于高)还是竖向(宽小于高)。具体的操作步骤请阅读下面的内容。
from spire.pdf.common import *
from spire.pdf import *
# 创建一个 PdfDocument 对象
pdf = PdfDocument()
# 从文件路径加载一个 PDF 文档
pdf.LoadFromFile("样本.pdf")
# 获取第一页 PDF 页面
page = pdf.Pages.get_Item(0)
# 获取该页面的宽和高
Width = page.Size.Width
Height = page.Size.Height
# 比较这个页面宽和高的值
if Width > Height:
print("该页面为横向")
else:
print("该页面为竖向")

PDF 页面可以按一定的角度旋转。你可以使用 PdfPageBase.Rotation 属性来检测 PDF 页面的旋转角度。下面就是具体的操作步骤。
from spire.pdf.common import *
from spire.pdf import *
# 创建一个 PdfDocument 对象
pdf = PdfDocument()
# 从文件路径加载一个 PDF 文档
pdf.LoadFromFile("样本1.pdf")
# 获取第一页 PDF
page = pdf.Pages.get_Item(0)
# 检测该页的旋转角度
rotationAngle = page.Rotation
rotation = str(rotationAngle)
# 输出结果
print("该页的旋转角度为:" + rotation)

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