我正在尝试使用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。
答案 0 :(得分:1)
如果您解释了为什么要从PDF中生成PostScript和BMP中的PDF,而不是从同一输入生成两者,这可能会有所帮助....
opacity: 1;
和DEVICEHEIGHTPOINTS
如果您想使用DEVICEWIDTHPOINTS
,则需要与FIXEDMEDIA
结合使用,因为他们只需设置当前< / strong>媒体大小,可以覆盖,除非你修复它。
PDF解释器为每个页面调用FitPage
,因为PDF文件可以包含每个页面的不同介质尺寸,因此除非您设置setpagedevice
,否则它将为您调整每页输出的大小。
FIXEDMEDIA
默默设置-g
。
对于较大的媒体而言,页面拟合不会向上扩展,只能缩小,而是要求它尊重原始媒体大小并将其集中在新的(较大的)媒体上。
鉴于您已经创建了一个PDF文件,其中每个页面都是相同的固定大小,那么改变输出尺寸(以像素为单位)的最简单方法就是改变分辨率。
现在PDF文件没有这样的分辨率,因为它们不是严格的位图格式,因此通过在原始转换为PDF中设置固定(以像素为单位)的大小和分辨率,您实际在做的是创建固定的媒体大小。在这种情况下,您将创建一个PDF文件,其中介质尺寸为2838/720乘4551/720 = 3.941666英寸乘6.3208333英寸。
渲染到位图时,位图的大小(以像素为单位)由介质尺寸(以英寸为单位)* dpi的分辨率给出。因此,如果知道所需尺寸为374x635且介质尺寸高于所需分辨率,则向后工作:
FIXEDMEDIA
因此,使用374 / 3.9416666 = 94.8837
635 / 6.3208333 = 100.4614
会产生或多或少的输出大小。请注意,在原始PDF创建步骤中,您不需要-r95x100