Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用字节数组而不是文件目录的Ghostscript包装器_C#_Ghostscript - Fatal编程技术网

C# 使用字节数组而不是文件目录的Ghostscript包装器

C# 使用字节数组而不是文件目录的Ghostscript包装器,c#,ghostscript,C#,Ghostscript,在用户上传文件后,我使用一个来渲染PDF中的图像,我想知道是否可以将包装器配置为使用字节数组而不是磁盘上的实际文件,因为这将节省我的额外行程并提高应用程序的性能。理想情况下,我希望传递PDF的一个字节数组,并让它返回一个字节数组。我查看了包装器代码,但我不知道该如何做(如果可能的话)。那有可能吗?如果有,我应该从哪里开始 谢谢。您无法向Ghostscript PDF解释器提供字节序列,也无法将PDF文件作为pdfwrite设备生成的字节序列读回 原因很简单,PDF解释器和PDF编写器都需要随机访

在用户上传文件后,我使用一个来渲染PDF中的图像,我想知道是否可以将包装器配置为使用字节数组而不是磁盘上的实际文件,因为这将节省我的额外行程并提高应用程序的性能。理想情况下,我希望传递PDF的一个字节数组,并让它返回一个字节数组。我查看了包装器代码,但我不知道该如何做(如果可能的话)。那有可能吗?如果有,我应该从哪里开始


谢谢。

您无法向Ghostscript PDF解释器提供字节序列,也无法将PDF文件作为pdfwrite设备生成的字节序列读回


原因很简单,PDF解释器和PDF编写器都需要随机访问文件才能解释/创建文件。如果整个文件都保存在内存中,则可以这样做,但这将严重限制文件的大小。

您使用的包装器是纯包装器,无法提供您所需的内容。看看托管Ghostscript包装器(完整实现),它允许您在需要同时处理多个pdf文件的情况下同时运行Exploration prolog/postscript和Ghostscript库的多个实例。有一个类演示如何通过解释器操作pdf。您需要的一切都可以完成。

Ghostscript.NET允许并行编程吗?据我所知,Ghostscript库不是线程安全的,这就是为什么每个进程只能创建一个实例的原因。Ghostscript.NET允许您从内存中加载Ghostscript库,这允许您在Ghostscript库自己的内存空间中运行多个Ghostscript库实例。我尽可能多地测试了Ghostscript.NET,结果表明,目前在单个进程中在自己的线程中运行每个Ghostscript实例没有问题。关于并行编程:Ghostscript库有一个开关(-dNumRenderingThreads),它允许您利用多个CPU。Ghostscript内存使用率也可以通过使用(-c)开关来增加。(示例:-c“30000000 setvmthreshold”应将Ghostscript内存的最大使用量增加到30 MB。