我想在Linux上使用C API到Ghostscript将PDF转换为其他东西:页面和图像较少的PDF是两个例子。
我的理解是通过使用gsapi_set_stdio提供回调函数,我可以从中读取和写入数据。然而,从我的实验和阅读来看,情况似乎并非如此。
我这样做的动机是我将大规模处理PDF,并且不希望我的吞吐量被旋转磁盘阻挡。
我错过了什么吗?
答案 0 :(得分:0)
stdio API允许您为stdin,stdout和stderr提供自己的替换,它不会影响不使用它们的解释器的任何活动。
pdfwrite设备广泛使用文件系统来编写临时文件,这些文件在解释时保存PDF文件的各个中间部分,然后将这些文件重新组装到新的PDF文件中。临时文件不会写入stdout或stderr。
没有办法避免这种行为。
再次渲染图像使用文件系统,除非您将stdout指定为位图的目标,在这种情况下,您可以使用stdio API调用将stdout重定向到其他位置。如果图像以足够高的分辨率渲染,那么GS将使用显示列表,并且显示列表将再次存储在不受stdio重定向影响的临时文件中。