【问题标题】:get rid of annotation in pdf file using imagick使用 imagick 去除 pdf 文件中的注释
【发布时间】:2021-07-20 04:50:31
【问题描述】:

我使用 imagick 将 pdf 翻译成 jpg;

但由于pdf文件中存在注释,它返回黑色区域,当我将图片悬停在pdf文件中时会出现注释

图片文件:

原始pdf示例:

我的代码:

$img = new Imagick('./pige.pdf[1]');
$img->setImageBackgroundColor('white');

$img = $img->flattenImages();

$img->setImageFormat('jpg');
$img->writeImage('image.jpg');

【问题讨论】:

  • 您的原始文件是 PNG。我们需要实际的 PDF。请压缩 PDF 并发布 zip 文件。
  • @fmw42 这是驱动器中的 [pdf 文件](drive.google.com/file/d/1qmaKBA5vd-2_I4WlpZs8oInKGONNOBRb/…)
  • 当我在 Imagemagick 命令行中渲染该 pdf 文件时,我在图像的底部看到了两个黑色方块。但我似乎无法摆脱它们。 Imagemagick 使用 Ghostscript 处理 PDF 文件。所以问题很可能出在 GS 上。
  • 我认为是因为 pdf 文件上的注释,因为当您将这些区域悬停在 pdf 上并激活注释时,您会看到这个黄色方块,如上图所示
  • 我认为您的 PDF 中有一些东西是 GS 无法处理的。

标签: php pdf imagemagick imagick


【解决方案1】:

所以我的解决方案是使用imagick更改默认安装的gs:

这似乎是默认情况下与 ImageMagick 一起安装的 ghostscript 版本中的一个错误。 Ghostscript 是实际将 pdf 转换为渲染位图的程序。

我尝试了从https://www.ghostscript.com/download/gsdnld.html下载的最新版Ghostscript

使用命令行转换您的 PDF:

gs-9540-linux-x86_64 -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r72x72' '-sOutputFile=/var/app/bugs/bug389/gs_output.png' '-f/var/app/bugs/bug389/pige.pdf'

它似乎工作正常。

我想如果你:

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    相关资源
    最近更新 更多