以下是完整的中文(简体)翻译,保留所有 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

直接下载

发布说明中未提供直接下载链接。

资源