【问题标题】:ASPOSE Converting PDF to SVG via streams produces invalid resultsASPOSE 通过流将 PDF 转换为 SVG 会产生无效结果
【发布时间】:2021-01-12 19:59:28
【问题描述】:

我正在尝试将 pdf 文档转换为 svg 页面。我的第一次尝试是加载 pdf 文档并将其保存为流,然后将假定转换的 svg 流加载为 SVGDocument,但这会产生一个垃圾对象。

pageDocument.Save(ms, SaveFormat.Svg);
pageDocument.Save("temp.svg", SaveFormat.Svg);

// Object is invalid
var svgDocument1 = new SVGDocument(ms, ".");

// Create a FileStream object
using (var stream = new FileStream("temp.svg", FileMode.Open, FileAccess.Read))
{
   // Valid object
   var svgDocument2 = new SVGDocument(stream, ".");
}

通过稍微修改代码以将 pdf 页面保存为 svg 图像,然后将其作为文件流加载,效果很好,所以我不确定这里发生了什么。

需要说,我想尽量避免仅仅为了转换而创建不必要的文件。

【问题讨论】:

    标签: c# .net aspose .net-standard-2.0


    【解决方案1】:

    正如官方论坛forum thread 所分享的,寻找内存流回到开头将解决问题。请在从 MemoryStream 加载 SVGDocument 之前添加以下代码行:

    ms.Seek(0, SeekOrigin.Begin);
    

    我们还将向 API 添加说明,说明文档是从流中的当前位置开始处理的,因为使用流中的位置是 Microsoft 文档中描述的常规做法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 2011-05-06
      相关资源
      最近更新 更多