以下是完整的中文(简体)翻译,保留所有 Markdown 格式、代码块、链接和短代码。
有 18 项功能、改进和错误修复。本次更新强化了 CAD 转换,支持布局级别选择、按布局输出(幻灯片、工作表、页面、SVG 等),并新增 XAR 与 CAB 作为压缩目标,同时支持 Mermaid MMD 与 Drawio 作为图表的来源/目标。
本版本新增内容
| 关键 | 类别 | 摘要 |
|---|---|---|
| CONVERSIONNET-8437 | 功能 | 将 Drawio 文件格式添加为图表文档的转换目标 |
| CONVERSIONNET-8442 | 功能 | 将 Mermaid MMD 文件格式添加为图表文档的转换来源 |
| CONVERSIONNET-8445 | 功能 | 将 CAB 添加为压缩文档的转换目标 |
| CONVERSIONNET-8459 | 功能 | 在 CadLoadOptions 中添加 CadLayoutScope,以转换模型空间、纸张布局或两者 |
| CONVERSIONNET-8464 | 功能 | 将 XAR 添加为压缩文档的转换来源和目标 |
| CONVERSIONNET-8460 | 改进 | 将每个 CAD 布局转换为其独立的幻灯片、工作表、Word 页面、HTML/MHTML 图像和 SVG 区域 |
| CONVERSIONNET-8461 | 改进 | 当 CAD 布局选择未匹配任何布局时,列出缺失的布局名称 |
| CONVERSIONNET-8462 | 改进 | 将未设置的 LoadOptions.Format 报告为缺失,而不是抛出异常 |
| CONVERSIONNET-8361 | 错误 | 将 DOCX 中带轮廓的形状转换为 PDF 时渲染不正确 |
| CONVERSIONNET-8396 | 错误 | 将 Presentation 文件转换为 PDF 时导致页眉/页脚不一致 |
| CONVERSIONNET-8399 | 错误 | 将带有损坏摘要链接的 Presentation 文件转换时抛出 GroupDocsConversionException |
| CONVERSIONNET-8426 | 错误 | DWG 文件转换为 PDF 时每页纸张方向设置错误 |
| CONVERSIONNET-8427 | 错误 | 修复在没有活动布局的 CAD 图纸转换时出现 NullReferenceException |
| CONVERSIONNET-8428 | 错误 | 修复在为 CAD 转换显式设置页面尺寸时出现的双重单位转换 |
| CONVERSIONNET-8429 | 错误 | 修复 CAD 转 PDF/UA 时忽略 CadLoadOptions 的问题 |
| CONVERSIONNET-8430 | 错误 | 修复 CadDocumentInfo 在多布局 CAD 文档中仅报告一页的问题 |
| CONVERSIONNET-8444 | 错误 | 在 Linux 环境下的 GroupDocs.Conversion 缩略图生成问题 |
| CONVERSIONNET-8467 | 错误 | EML 转 PDF 时出现不兼容的单位类型异常 |
公共 API 更改
⚠️ 向后不兼容的更改 – 以下更新修改了现有的公共行为。请相应地调整代码,以避免运行时错误。
1. LoadOptions.Format 现在在未设置格式时返回 null 而不是抛出异常
受影响的类:所有 28 种具体的加载选项(例如,SpreadsheetLoadOptions、PdfLoadOptions、CadLoadOptions、……)
变更内容
在为 Format 属性分配格式之前读取它会抛出异常。现在它返回 null,可以直接进行空值检查。
迁移示例
var loadOptions = new SpreadsheetLoadOptions();
if (loadOptions.Format == null)
{
// 新的代码路径——以前因为 getter 抛异常而不可达。
}
指导
将任何围绕 loadOptions.Format 的 try/catch 替换为空值检查。不要与 FileType.Unknown 比较;正确的判断方式是 == null。
2. 对 CadLoadOptions.LayoutNames 的精确匹配验证并提供详细错误报告
受影响的类:CadLoadOptions
变更内容
LayoutNames 现在必须 完全匹配(区分大小写)绘图的布局名称。如果没有匹配项,转换将失败并抛出 InvalidLoadOptionsException,错误信息会列出可用布局以及不匹配的请求。
迁移示例
using GroupDocs.Conversion.Exceptions;
try
{
using var converter = new Converter("drawing.dwg",
ctx => new CadLoadOptions { LayoutNames = new[] { "layout1" } });
converter.Convert("out.pdf", new PdfConvertOptions());
}
catch (InvalidLoadOptionsException ex)
{
// 示例信息:
// "No layout name in CadLoadOptions.LayoutNames matches this drawing, which carries
// Model, Layout1, Layout2. Requested: layout1. Names are matched exactly, so a name
// that differs only in case is a different name."
Console.WriteLine(ex.Message);
}
指导
- 确保布局名称拼写正确且大小写与源绘图保持一致。
- 当只需要部分布局时,提供精确的名称;不匹配的条目会被忽略,匹配的布局仍会被渲染。
3. 多页 CAD 图纸现在为每个纸张生成单独的输出单元
受影响的类:Converter、PresentationConvertOptions、PdfConvertOptions
变更内容
之前,将包含多个纸空间布局的图纸转换时会得到 单个扁平化 的图像/幻灯片。现在,转换会为每个布局创建 独立的输出单元(幻灯片、页面等),并根据布局的页面设置确定尺寸。Converter.GetDocumentInfo().PagesCount 现在返回生成的单元数量。
迁移示例 – 转换
using var converter = new Converter("multi-layout.dwg");
// 三个纸张 → 三个幻灯片——之前是一个扁平化的幻灯片。
converter.Convert("drawing.pptx", new PresentationConvertOptions());
迁移示例 – 查询页数
using var converter = new Converter("multi-layout.dwg");
int sheets = converter.GetDocumentInfo().PagesCount; // 对于三个布局返回 3
指导
- 调整下游处理(例如 UI 分页、文件命名)以适配多个输出文件/页面。
- 对于单页图纸,行为保持不变。
- 例外情况是 CAD → PDF/UA‑1,仍然渲染为单个标记页面。
4. 新增 CadLoadOptions.LayoutScope 属性以显式控制转换的空间范围
受影响的类:CadLoadOptions
变更内容
LayoutScope 允许指定加载 Model、Layouts 或 Both(默认)。
- 当设置了
LayoutNames时,LayoutScope会被忽略,因为显式名称优先。 - 若选择的范围在包含至少一个纸张的图纸中未产生任何纸张,则抛出
InvalidLoadOptionsException,而不是默默渲染默认空间。
迁移示例 – 仅转换纸张布局
using GroupDocs.Conversion;
using GroupDocs.Conversion.Options.Convert;
using GroupDocs.Conversion.Options.Load;
using var converter = new Converter("drawing.dwg",
ctx => new CadLoadOptions { LayoutScope = CadLayoutScope.Layouts });
converter.Convert("layouts.pdf", new PdfConvertOptions());
指导
- 现有代码仍可正常工作,因为 Both 仍为默认值。
- 若需排除模型空间或仅包含模型空间,请分别将
LayoutScope设置为CadLayoutScope.Model或CadLayoutScope.Layouts。 - 若之前通过提供空的
LayoutNames数组来过滤布局,请改用合适的LayoutScope值,以在未选择纸张时获得明确的错误提示。
新功能
高级 CAD 布局控制:可选择特定 CAD 布局,将每个布局转换为独立的幻灯片、工作表、页面、图像或 SVG 区域,并通过 CadLayoutScope 选择模型空间、纸张布局或两者,实现精确的按布局输出,并尊重每张纸的方向和页面尺寸等设置。
扩展归档支持:XAR 与 CAB 现已同时作为压缩文档的来源和目标,支持在这些归档类型之间无缝转换。
现代图表互操作性:Mermaid MMD 文件可用作图表来源,Drawio 文件受支持作为转换目标,便于将当代绘图工具轻松集成到转换流水线中。
关键稳定性改进:修复了 EML → PDF、DOCX 形状轮廓、演示文稿页眉/页脚以及损坏的摘要链接导致的转换失败,修复了 Linux 环境下的缩略图生成问题,并改进了 DWG 纸张方向处理。这些修复提升了邮件、办公、演示和 CAD 工作流的可靠性。
代码示例
using var converter = new Converter("multi-layout.dwg");
// 三个纸张 → 三个幻灯片——之前是一个扁平化的幻灯片。
converter.Convert("drawing.pptx", new PresentationConvertOptions());
如何获取更新
NuGet
Install-Package GroupDocs.Conversion -Version 26.8
GroupDocs.Conversion 26.8 on NuGet
直接下载
发布说明中未提供直接下载链接。