我正在尝试使用Ghostscript将PS文件首先转换为PDF,然后转换为BMP,同时在两种转换中都进行一些缩放。
要将我的PS文件转换为PDF,以下是我的参数:
-g2838x4551 -r720 -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=""FILE PATH TO DUMP PDF IN HERE"" -c save pop -f ""FILE PATH TO GRAB PS FROM HERE""我的这部分代码运行得很好。
要将我的新PDF文件转换为BMP,以下是我的参数:
-dSAFER -dBATCH -dNOPAUSE -sDEVICE=bmp256 -sOutputFile=""OUTPUT BMP FILE LOCATION"" " & PDF FILE LOCATION & "就从PDF到BMP的转换而言,这是可行的。然而,我想把它放大一点,达到374x635像素。我尝试过使用各种开关来实现这一点,例如
-g374X635
-dPDFFITPage
-dDEVICEWIDTH=374 -dDEVICEHEIGHT=635
-dFIXEDMEDIA
或者以上内容的某种组合。-dDEVICEWIDTH和-dDEVICEHEIGHT开关似乎根本不起作用,虽然-g374x635正在将BMP增加到正确的大小,但它似乎只是添加空白以达到正确的大小,而不是按我想要的方式放大整个PDF。
发布于 2017-10-18 15:37:39
如果您解释了为什么要从PostScript生成PDF和从PDF生成BMP,而不是从相同的输入生成两者,这可能会有所帮助。
如果您想使用FIXEDMEDIA,则需要将DEVICEHEIGHTPOINTS和DEVICEWIDTHPOINTS与FitPage结合使用,因为它们所做的就是设置当前媒体大小,然后可以覆盖该媒体大小,除非您对其进行修复。
PDF解释器为每一页调用setpagedevice,因为PDF文件可以为每一页包含不同的媒体大小,所以除非您设置FIXEDMEDIA,否则它将为您调整输出的每一页的大小。
-g静默设置FIXEDMEDIA。
页面适配对于比请求更大的媒体不做放大,只做缩小,它尊重原始媒体大小,并将其集中在新的(更大的)媒体上。
假设您已经创建了一个PDF文件,其中每个页面都是相同的固定大小,那么更改输出尺寸(以像素为单位)的最简单方法就是更改分辨率。
现在PDF文件没有这样的分辨率,因为他们不是一个严格的位图格式,所以通过设置一个固定的(像素)大小和分辨率在原始转换为PDF,你实际做的是创建一个固定的媒体大小。在本例中,您正在创建一个PDF文件,其中媒体大小为2838/720x4551/720= 3.941666英寸x 6.3208333英寸。
渲染到位图时,位图的大小(以像素为单位)由媒体大小(英寸)*分辨率(以dpi为单位)提供。因此,向后工作,知道所需的大小是374x635,媒体大小在上面,所需的分辨率是:
374 / 3.9416666 = 94.8837
635 / 6.3208333 = 100.4614所以使用-r95x100或多或少会产生你想要的输出大小。请注意,在最初的PDF创建步骤中,您不需要-c save pop -f
https://stackoverflow.com/questions/46794426
复制相似问题