我正在编写开源C# Ghostscript 包装器。你可以试试看(http://ghostscriptnet.codeplex.com)。大多数功能都已实现,并且适用于两个版本(x86/x64)。我遇到的问题是当我初始化显示设备以将 pdf 直接呈现到屏幕上时(我成功实现了 gsapi_set_display_callback 回调)。
我正在使用的参数如下:
string[] args = new string[] {
"",
"-sDEVICE=display",
"-dTextAlphaBits=4",
"-dGraphicAlphaBits=4",
"-dDisplayHandle=1234",
"-dDisplayResolution=72",
"-dDisplayFormat=" + ((int)DISPLAY_FORMAT_COLOR.DISPLAY_COLORS_RGB |
(int)DISPLAY_FORMAT_ALPHA.DISPLAY_ALPHA_NONE |
(int)DISPLAY_FORMAT_DEPTH.DISPLAY_DEPTH_8 |
(int)DISPLAY_FORMAT_ENDIAN.DISPLAY_LITTLEENDIAN |
(int)DISPLAY_FORMAT_FIRSTROW.DISPLAY_BOTTOMFIRST).ToString() };
这个论点在 32 位版本上运行良好,我能够将 pdf 页面呈现到屏幕上。初始化工作正常。
当我切换到64 位版本时,我得到类型检查(e_typecheck = -20)错误。
我知道 64 位版本使用-sDisplayFormat,我也尝试过,但没有运气。
任何人都知道如何将设备初始化为 64 位版本 Ghostscript 库上的显示?我不认为我错过了什么。这是 64 位版本的 ghostscript 库中的错误吗?
我尝试了早期版本的 Ghostscript 库,但在 64 位版本上出现了相同的错误。
我使用的当前版本是 9.09。可以查看代码的类:Ghostscript.NET.Viewer.GhostscriptViewer.cs