Ben*_*asi 5 pdf vector-graphics adobe-reader ghostscript
我有一个包含地图的大型 PDF 文件。PDF 文件可能是用 AutoCAD 生成的。
该图像由彩色光栅地图和地图顶部带有线条的矢量组成。(街道等)
我需要分别处理栅格和矢量。当我将其导入 photoshop 时,它只能看到一层。当我在 Adobe PDF Reader 上选择图层选项卡时,它也只显示一个图层。但我确定有多个图层,因为在渲染文件时,它首先在背景中绘制地图,然后才开始在顶部绘制矢量。如果我足够快,我实际上可以使用“打印屏幕”来保存背景光栅。我需要一种更可靠的方法来提取该图像以及矢量。
我可以使用诸如 ghostscript 之类的开源工具将 pdf 分成其基本部分,如文本、光栅、矢量数据吗?然后他们把它们都放在一个文件夹里?
我找到了一个使用Inkscape 的手动解决方案,我正在寻找使其自动化的方法。
我找到了一种执行此操作的命令行方式。
inkscape -z -i g2846 -j -D -d 300 test3.pdf -e 3.png
Run Code Online (Sandbox Code Playgroud)
参考文档:https : //inkscape.org/sk/doc/inkscape-man.html
参数说明:
-z : 没有 gui,仅在命令行中运行inkscape-i g2846:选择要导出的特定组/图层 ID。我通过上面提到的 Inkscape gui 中的手动步骤知道了这个 ID/标签。-j :隐藏导出中的所有其他图层等-D:保持导出图像的尺寸与整个图纸/文档相同,并保持提取对象的位置。(如果原始对象被旋转/扭曲并且您希望输出不是原始对象,或者您正在提取多个图层并需要保持它们在画布上的位置,这很重要)-d 300 : 300 DPI : 默认设置使输出 png 太有损,这个设置在我结束时保持一切良好。test3.pdf :我的输入pdf-e 3.png : 导出为 PNG,并给出文件名。不幸的是,我们现在一次只能提取一个对象/层。为inkscape 提交了一个错误,要求允许多个图层:允许多个-i (--export-id=ID) 选项。
[编辑] 如果您想要多个(但不是全部)图层,则另一种解决方法:使用inkscape上面共享的命令将各个图层导出为:1.png, 2.png, 3.png
然后,从imagemagick运行以下命令:
$ convert -page +0+0 1.png \
-page +0+0 2.png \
-page +0+0 3.png \
-layers merge +repage merged.png
Run Code Online (Sandbox Code Playgroud)
这应该将图层合并到merged.png.
| 归档时间: |
|
| 查看次数: |
9330 次 |
| 最近记录: |