故障排除 Aspose.Words FOSS for .NET
本页涵盖在构建和使用 Aspose.Words FOSS for .NET 时常见的问题,以及如何解决它们。
构建和安装问题
dotnet add package Aspose.Words 找不到该软件包
该命令解析为商业版 Aspose.Words 软件包,而非 FOSS 版——FOSS 软件包 ID 为 Aspose.Words.FOSS:
dotnet add package Aspose.Words.FOSS或者,运行 git clone 获取源码,然后将 cd 放入克隆的文件夹并对解决方案运行 dotnet build:
git clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git
cd Aspose.Words-FOSS-for-.NET
dotnet build Aspose.Words.sln -c Release然后在您自己的应用程序中添加对 Aspose.Words.csproj 的项目引用,而不是包引用。
克隆后项目引用未解析
确认引用指向克隆的 Aspose.Words-FOSS-for-.NET/Aspose.Words/ 文件夹内的 Aspose.Words.csproj,并且先成功构建了解决方案(dotnet build Aspose.Words.sln -c Release)。该库面向 .NET Standard 2.0,因此任何面向 .NET Framework 4.6.2+ 或 .NET 6/8/10 的 SDK 都可以引用它。
加载问题
加载文档时的 UnsupportedFileFormatException
UnsupportedFileFormatException 在加载时会被抛出,当文件格式未被识别或不受此版本支持时。此版本支持的加载格式包括 DOCX、DOCM、DOTX、DOTM、Flat OPC、Markdown 和纯文本——将不受支持的路径(如 input.doc)传递给 Document 构造函数会抛出此异常,而不是返回已加载的文档:
using Aspose.Words;
try
{
Document doc = new Document("input.doc");
}
catch (UnsupportedFileFormatException ex)
{
Console.WriteLine("Format not supported by this edition: " + ex.Message);
}在 Document 构造函数周围捕获 UnsupportedFileFormatException,可以报告清晰的消息,而不是让异常以原始堆栈跟踪的形式传播。
对看似有效的文件触发 FileCorruptedException
FileCorruptedException 在加载时抛出,当文件似乎已损坏且无法解析——例如,一个不是有效 ZIP 基础 OOXML 包的 .docx 文件,或在传输过程中被截断的文件。请重新从源获取文件,并确认其能够正确打开后再使用 Document 加载。
打开受保护文档时的 IncorrectPasswordException
当文档使用密码加密,而在 Document 构造函数的 LoadOptions 重载中提供的密码缺失或不正确时,会抛出此异常。请在加载前通过 LoadOptions.Password 提供正确的密码。
保存和导出问题
将 Document.Save() 导出为 PDF、XPS 或图像格式时失败
此版本不包含页面布局和渲染子系统,因此 Document.Save() 无法导出为 PDF、XPS 或图像格式。
保存为 DOCX、DOCM、DOTX、DOTM、Flat OPC、Markdown 或纯文本——这些才是此版本实际写入的格式。商业版 Aspose.Words 用于 .NET 新增 PDF、XPS 和图像输出。
页码和目录条目始终显示 0
Aspose.Words FOSS for .NET 包含完整的字段求值引擎,因此内容字段如 DATE 和 DOCPROPERTY 能够正确更新。依赖页面布局的字段——页码、NUMPAGES 和目录条目——会求值为占位符 0,而不是计算值,因为此版本不包含通常用于分页的布局引擎。这在此版本中是预期行为,而非错误。
数字签名问题
对文档签名没有任何效果
DigitalSignatureUtil.Sign() 及相关签名 API 存在于对象模型中,以保持与商业产品的结构兼容性,但在此 FOSS 版中创建新签名不可用——调用它们不会产生已签名的输出。此版本可以通过 Document.DigitalSignatures 和 DigitalSignatureUtil.LoadSignatures() 检查和验证已附加到文档的签名,但签名工作流需要商业版的 Aspose.Words 来实现 .NET。
字体问题
嵌入的字体比预期的要大
当启用 EmbedTrueTypeFonts 时,字体会以完整文件的形式嵌入,而不是仅子集化为文档实际使用的字形,因此嵌入字体的保存文件会比商业产品的等效输出更大。此版本没有解决办法——不包含嵌入字体的子集化功能。