1
我有一个Sharepoint应用程序,它使用Ghostscript.net包装器将pdf文档栅格化为png。现在我正在使用site中的示例。但我遇到的问题是,当我尝试同时转换为pdf文件时。使用此代码一次只能使用一个。但是,当我尝试同时转换2个pdf时,出现错误“调用'gsapi_new_instance'时出现错误:-100”。Ghostscript.net多线程问题
using (MemoryStream pdfStream = new MemoryStream(pdfbyte))
using (GhostscriptRasterizer rasterizer = new GhostscriptRasterizer())
{
rasterizer.Open(pdfStream, version, false);
for (int i = 1; i <= rasterizer.PageCount; i++)
{
using (MemoryStream ms = new MemoryStream())
{
DrawImage img = rasterizer.GetPage(dpi, dpi, i);
img.Save(ms, ImageFormat.Png);
ms.Close();
output = "data:image/png;base64," + Convert.ToBase64String((byte[])ms.ToArray());
}
}
rasterizer.Close();
否则,如果我用rasterizer.Open(pdfStream, version, true);
我的错误“算术运算导致溢出”
我应该使用一个GhostscriptProcessor或浏览器实例,而不是?有没有人有这个代码的好例子?
很高兴知道你找到了你的答案。我正在开发一个使用Unity的HoloLens应用程序,VS中的解决方案表示目标框架是.net 3.5。我可以在Unity Editor中使用gsdll64,但是当我尝试在UWP应用程序(gsdll32)中导入Dll时,它会返回dllnotfound异常。我在想这是因为ghost script dll与UWP应用程序不兼容? 不断研究这个发现确定的答案。只希望与您联系,看看您是如何做到的。谢谢! – jtth
我下载了源代码并将目标框架从4.x改为3.5。然后我修复了由于4.x特定代码而出现的所有错误。我认为这是唯一难以解决的问题。 – RobbZ
Gotcha。我最终获得了为WinRT编译的gsdll32。感谢您的回复! – jtth