使用ImageMagick修改PDF时消除质量问题
我们的目标是让用户上传PDF文件,并在左上角贴上“图章”(一个背景颜色+文本的框)。“戳记”部分工作得很好,但一旦我们将PDF通过ImageMagick,我们就会立即遇到质量问题——特别是当原始PDF已经有某种人工制品时 这是我的源PDF(出于隐私原因添加的黑色区域)的屏幕截图。 你可以看到质量不是很好,因为它是用复印机扫描的 经过ImageMagick处理后,结果如下所示: 这是正在进行的呼叫:使用ImageMagick修改PDF时消除质量问题,pdf,imagemagick,Pdf,Imagemagick,我们的目标是让用户上传PDF文件,并在左上角贴上“图章”(一个背景颜色+文本的框)。“戳记”部分工作得很好,但一旦我们将PDF通过ImageMagick,我们就会立即遇到质量问题——特别是当原始PDF已经有某种人工制品时 这是我的源PDF(出于隐私原因添加的黑色区域)的屏幕截图。 你可以看到质量不是很好,因为它是用复印机扫描的 经过ImageMagick处理后,结果如下所示: 这是正在进行的呼叫: '/usr/bin/convert' +profile '*' -compress jpeg -
'/usr/bin/convert' +profile '*' -compress jpeg -quality 90 -density 180 -pointsize 10 -fill 'rgba(220, 220, 220, 0.75)' -stroke 'rgba(220, 220, 220, 0.75)' -draw 'rectangle 40,20,491,100' -stroke '#000000' -font Courier -draw "text 48,47 'Vermittlernummer Gesellschaft'" -draw "text 48,81 '70_202_3297'" mysource.pdf mytarget.pdf
- 如果我省略“-compress jpeg-quality 90”参数,结果看起来是一样的,只是文件大小稍微大一点
- 如果我忽略“-density 180”参数,结果看起来更糟
ImageMagick的哪些选项可以帮助我获得更好的结果?请先尝试将pdf转换为png。我之所以这么说是因为我下载了你的.png图像: 并运行您的代码:
convert -density 180 +profile '*' -compress jpeg -quality 90 -pointsize 10 -fill 'rgba(220, 220, 220, 0.75)' -stroke 'rgba(220, 220, 220, 0.75)' -draw 'rectangle 40,20,491,100' -stroke '#000000' -font Courier -draw "text 48,47 'Vermittlernummer Gesellschaft'" -draw "text 48,81 '70_202_3297'" test.png mytarget.png
得到了这个结果:
我觉得很好。我用你的代码输出了一个.png,但是pdf看起来也一样好——StackOverflow似乎不允许上传pdf
如果不行,请告诉我
干杯。首先尝试将pdf转换为png。我之所以这么说是因为我下载了你的.png图像: 并运行您的代码:
convert -density 180 +profile '*' -compress jpeg -quality 90 -pointsize 10 -fill 'rgba(220, 220, 220, 0.75)' -stroke 'rgba(220, 220, 220, 0.75)' -draw 'rectangle 40,20,491,100' -stroke '#000000' -font Courier -draw "text 48,47 'Vermittlernummer Gesellschaft'" -draw "text 48,81 '70_202_3297'" test.png mytarget.png
得到了这个结果:
我觉得很好。我用你的代码输出了一个.png,但是pdf看起来也一样好——StackOverflow似乎不允许上传pdf
如果不行,请告诉我
干杯。谢谢你的回答。我试图在第一步将PDF转换为PNG,但后来我已经遇到了这些问题。因此,问题似乎与写入的格式无关,而是与“读取”部分有关。您是否尝试在转换中设置-密度?你能在评论中发布你的代码或者更新你的问题吗?谢谢你的回答。我试图在第一步将PDF转换为PNG,但后来我已经遇到了这些问题。因此,问题似乎与写入的格式无关,而是与“读取”部分有关。您是否尝试在转换中设置-密度?你能在评论中发布你的代码或者更新你的问题吗?