【发布时间】:2021-07-22 13:36:37
【问题描述】:
我已经阅读了一些关于这个一般主题的主题,但它们似乎没有帮助,所以我提出了一个新问题。
我目前正在创建一个使用 vb.net 中的 ghostscript 的进程(我在 Ghostscipt.net 的参数方面遇到了一些问题,但外部进程对我来说已经足够好了)
我正在从 pdf 的特定页面捕获一个小正方形区域并转换为 png。由于该区域不在左/下边缘,因此涉及偏移量,因此我使用 200x200 作为尺寸,使用 -220、206 作为 x/y 偏移量,我为此示例指定了第 1 页,如下所示:
" -dBATCH -dNOPAUSE -sDEVICE=pnggray -r600 -dDEVICEWIDTHPOINTS=200 -dDEVICEHEIGHTPOINTS=200 -dFIXEDMEDIA -dFirstPage=1 -dLastPage=1 -SOutputFile="mypath\output.png" -c "<</PageOffset [-220 206]>> setpagedevice" -f "mypath\input.pdf"
这很好用,但接下来我需要将输出 png 文件限制为 600 x 600 像素,无论输入大小如何。
我发现的所有解决方案似乎都与更改设备宽度/高度点有关,但我使用这些来指定我想要捕获的区域,所以我对这应该如何工作感到困惑。
谁能帮忙?
抱歉,我无法为 Ghostscript 标记此内容 - 我的声誉不够高!
谢谢
【问题讨论】:
-
嗨 - 感谢您的回复。我想我对如何指定裁剪区域感到困惑 - 正如你所建议的那样,将 DEVICEWIDTHPOINTS 和 DEVICEHEIGHTPOINTS 设置为 72 让我得到一个 600 像素的正方形输出文件,但我没有看到我想要的整个图形捕获,所以我需要扩大裁剪区域 - 我错误地认为这是通过 devicepoints 参数完成的。编辑-实际上这不可能-我需要缩放它吗?
-
谢谢 - 不想玩媒体框,所以我会尝试调整偏移量。不幸的是,其中很多都是反复试验,我真的不明白我在做什么!
-
对不起,我只是糊涂了! - 我已经为我的主要问题添加了一个指向我正在使用的 pdf 的链接。如果我使用 -r600 和 200 的 devicewidth 高度/宽度,我会在 1667 像素方形文件中捕获我想要的 QR 码。如果我去 -r300 我得到 833 像素的正方形文件,这是可以接受的,但我认为需要为我正在使用的 QR 库实现 -r600 才能处理解码。
-
感谢您查看 pdf,感谢您的 cmets - 它是由我的一位同事整理的,所以我会与他核实。这只是一个证明,因此可能是存在一些奇怪之处的原因,但我会询问您发现的问题。
-
会的。再次感谢您的帮助。
标签: pdf