我正在尝试将PDF格式的一页转换成图像。我成功地完成了我尝试过的大多数PDF格式,但是这个特别的例子总是在一边有大量的空白,或者是奇怪的缩放。
我尝试了每一个固定的媒体组合,固定的分辨率,适合页面,使用作物/流血/修剪/艺术框等参数来解决这个问题,但什么也不做。我得到的最好是正确的内容大小,但抵消和削减。

根据我尝试过的每一个PDF阅读器,应该是这样的:

这里有一个用于测试的PDF (8MB)链接。
https://drive.google.com/file/d/1ErS3KxADb1YAdzM7FG7T5dO8QnW4l1AQ/view?usp=sharing
编辑1:
如下所示,只使用-dUseCropBox,而不使用cropbox覆盖:

我使用的Ghostscript.NET代码非常简单。我创建了一个栅格化器,调用Ope(PDF文件,字节内的幽灵脚本dll ),然后调用GetPage(DPI,页面号)。若要使用其他标志,请在调用open之前向栅格化器添加自定义开关。
using(var rasterizer = new GhostscriptRasterizer()) {
//rasterizer.CustomSwitches.Add("-dFIXEDMEDIA");
//rasterizer.CustomSwitches.Add("-dFIXEDRESOLUTION");
//rasterizer.CustomSwitches.Add("-dPSFitPage");
//rasterizer.CustomSwitches.Add("-dFitPage");
//rasterizer.CustomSwitches.Add("-dPDFFitPage");
//rasterizer.CustomSwitches.Add("-dUseCropBox");
//rasterizer.CustomSwitches.Add("-dPrinted");
//rasterizer.CustomSwitches.Add("-dUseBleedBox");
//rasterizer.CustomSwitches.Add("-dUseTrimBox");
//rasterizer.CustomSwitches.Add("-dUseArtBox");
//rasterizer.CustomSwitches.Add("-sPAPERSIZE=letter");
//rasterizer.CustomSwitches.Add("-dORIENT1=true");
//etc
rasterizer.Open(pdfFilePath, ghostscriptDLL);
img = rasterizer.GetPage(dpi, pageNumber);
img.Save(pageFilePath, imageFormat);
}我将再试一次,使用最新版本的纯鬼怪脚本(没有.NET),看看这是否有什么区别。
编辑2:
仅使用gswin64c版本9.55.0和-dUseCropBox就像KenS所说的那样工作。因为我不需要Ghostscript.NET来完成这个任务,所以这是一个很好的解决方案。
发布于 2022-03-27 23:49:19
仅使用gswin64c版本9.55.0和-dUseCropBox就像KenS所说的那样工作。因为我不需要Ghostscript.NET来完成这个任务,所以这是一个很好的解决方案。
https://stackoverflow.com/questions/71626692
复制相似问题