微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASPOSE 通过流将 PDF 转换为 SVG 会产生无效结果

如何解决ASPOSE 通过流将 PDF 转换为 SVG 会产生无效结果

我正在尝试将 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 图像,然后将其作为文件流加载,效果很好,所以我不确定这里发生了什么。

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

解决方法

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

ms.Seek(0,SeekOrigin.Begin);

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。