首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ghostscript BMP缩放

Ghostscript BMP缩放
EN

Stack Overflow用户
提问于 2017-10-18 00:01:04
回答 1查看 632关注 0票数 0

我正在尝试使用Ghostscript将PS文件首先转换为PDF,然后转换为BMP,同时在两种转换中都进行一些缩放。

要将我的PS文件转换为PDF,以下是我的参数:

代码语言:javascript
复制
 -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,以下是我的参数:

代码语言:javascript
复制
 -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。

EN

回答 1

Stack Overflow用户

发布于 2017-10-18 15:37:39

如果您解释了为什么要从PostScript生成PDF和从PDF生成BMP,而不是从相同的输入生成两者,这可能会有所帮助。

如果您想使用FIXEDMEDIA,则需要将DEVICEHEIGHTPOINTSDEVICEWIDTHPOINTSFitPage结合使用,因为它们所做的就是设置当前媒体大小,然后可以覆盖该媒体大小,除非您对其进行修复。

PDF解释器为每一页调用setpagedevice,因为PDF文件可以为每一页包含不同的媒体大小,所以除非您设置FIXEDMEDIA,否则它将为您调整输出的每一页的大小。

-g静默设置FIXEDMEDIA

页面适配对于比请求更大的媒体不做放大,只做缩小,它尊重原始媒体大小,并将其集中在新的(更大的)媒体上。

假设您已经创建了一个PDF文件,其中每个页面都是相同的固定大小,那么更改输出尺寸(以像素为单位)的最简单方法就是更改分辨率。

现在PDF文件没有这样的分辨率,因为他们不是一个严格的位图格式,所以通过设置一个固定的(像素)大小和分辨率在原始转换为PDF,你实际做的是创建一个固定的媒体大小。在本例中,您正在创建一个PDF文件,其中媒体大小为2838/720x4551/720= 3.941666英寸x 6.3208333英寸。

渲染到位图时,位图的大小(以像素为单位)由媒体大小(英寸)*分辨率(以dpi为单位)提供。因此,向后工作,知道所需的大小是374x635,媒体大小在上面,所需的分辨率是:

代码语言:javascript
复制
374 / 3.9416666 = 94.8837
635 / 6.3208333 = 100.4614

所以使用-r95x100或多或少会产生你想要的输出大小。请注意,在最初的PDF创建步骤中,您不需要-c save pop -f

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46794426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档