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