我有一个Sharepoint应用程序,它使用Ghostscript.net包装器将pdf文档栅格化为png。现在,我正在使用他们的site中的示例。但我遇到的问题是,当我同时尝试转换为pdf时。使用此代码一次只能使用一个代码。但是当我试图同时转换两个pdf时,我得到了错误信息“当调用'gsapi_new_instance‘时出现错误:-100”。
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); I,会出现错误“算术操作导致溢出”。
我应该使用GhostscriptProcessor还是Viewer实例?有谁有这段代码的好例子吗?
发布于 2015-06-16 18:01:09
所以我找出了问题所在。我不得不编译3.5版本的Ghostscript.net,因为我在SharePoint2010网站上使用它。当我这样做的时候,我搞砸了DynamicNativeLibrary.cs文件中的这行代码。
string procName = Marshal.PtrToStringAnsi((IntPtr)(byte*)(thunkData) + 2);当我将其更改为下面的代码时,它现在似乎可以正常工作。
IntPtr a = (IntPtr)(byte*)(thunkData);
string procName = Marshal.PtrToStringAnsi(new IntPtr(a.ToInt64() + 2));https://stackoverflow.com/questions/30670183
复制相似问题