将可搜索PDF转换为不可搜索PDF

将可搜索PDF转换为不可搜索PDF,pdf,ghostscript,Pdf,Ghostscript,我有一个PDF是可搜索的,我需要把它转换成一个不可搜索的 我尝试使用Ghostscript并将其改为JPEG,然后再改回PDF,这样做很有效,但文件大小太大,无法接受 我尝试使用Ghostscript先将PDF转换为PS,然后再转换为PDF,这也很管用,但质量还不够好 gswin32.exe -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pswrite -r1000 -sOutputFile=out.ps in.pdf gswin32.exe -q -dNOPAUS

我有一个PDF是可搜索的,我需要把它转换成一个不可搜索的

我尝试使用Ghostscript并将其改为JPEG,然后再改回PDF,这样做很有效,但文件大小太大,无法接受

我尝试使用Ghostscript先将PDF转换为PS,然后再转换为PDF,这也很管用,但质量还不够好

gswin32.exe -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pswrite -r1000 -sOutputFile=out.ps in.pdf
gswin32.exe -q -dNOPAUSE -dBATCH -dSAFER -dDEVICEWIDTHPOINTS=596 -dDEVICEHEIGHTPOINTS=834 -dPDFSETTINGS=/ebook -sDEVICE=pdfwrite -sOutputFile=out.pdf out.ps
有没有一种方法可以提高PDF的质量


或者,有没有更简单的方法将可搜索的PDF转换为不可搜索的PDF?

从可搜索的矢量PDF生成不可搜索的矢量PDF的可能方法是

  • 将pdf压缩到单个页面中

    pdftk file.pdf突发

  • for f in *.pdf; do pdftocairo -svg $f; done
    
  • 使用转换svg中的任何单个页面

    pdftocairo

  • 包含在poppler utils中

    三,。删除文件夹中的所有pdf文件

    四,。然后,使用batikrasterizer

    ALLsvg重新转换为pdf(这一次生成的pdf将保持矢量化,但不可搜索)

    最后一步:将所有生成的单页pd合并到一个多页pdf文件中

    pdftk *.pdf cat output out.pdf
    

    我认为转换成jpg这样的图像是一种可行的方法,它可能值得转换成am图像,优化/缩小图像的大小,然后用这些图像创建PDF?

    您可以使用Ghostscript来实现这一点。您需要两个步骤:

  • 将PDF转换为PostScript文件,该文件将所有使用的字体转换为轮廓形状。这里的键是
    -dNOCACHE
    参数输入: gs -o somepdf.ps -dNOCACHE -sDEVICE=pswrite somepdf.pdf 这将导致输出设备
    pdfwrite
    ps2write
    eps2write
    “将字形“展平”为“基本”标记操作(而不是将字体写入输出)”

    这意味着可以避免上述两个步骤,只需一个命令即可实现所需的结果:

     -dNoOutputFonts
    
     gs -o somepdf-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite somepdf.pdf
    

    注意事项:我已经使用基于当前Git源代码的自编Ghostscript对一些输入文件进行了测试。它在每种情况下都能完美地工作

    依我拙见,我建议先在postscript中转换:
    gs-dBATCH-dNOPAUSE-dNOCACHE-dSAFER-sDEVICE=pswrite-sOutputFile=output.ps input.pdf
    ,然后将生成的postscript传递给ps2pdf。如果您的页面具有自定义页面大小(例如17x24 cm),则需要将-g开关传递到ps2pdf,例如,对于17x24 cm页面大小:
    ps2pdf-g4820x6800 input.ps output.pdf
    ;换句话说,查看点的页面大小(使用pdfinfo),然后将两个维度乘以10@Dingo:如果使用最新的GS版本,
    -o out.ps
    -dBATCH-dNOPAUSE-soutput file=out.ps
    相同。此外,GS的最新版本会自动将输出文件(PostScript)的页面大小设置为与输入文件(PDF)相同的大小。如果您想安全起见,可以使用
    -gNNNxMMM
    对其进行额外设置,而不会出现问题。在大多数情况下,我不喜欢
    ps2pdf
    ,因为它是一个Ghostscript命令行的包装器那么,你的最新推荐和我的有什么不同呢?你是对的。我以前没有仔细阅读过。对不起,谢谢你给我的好建议!在我的gentoo系统上,它也与gs-o somepdf-with-outlines.pdf-dNoOutputFonts-sDEVICE=pdfwrite somepdf.pdf配合得很好。9.10太旧了,但9.15可以很好地转换为曲线。也许一步解决方案中有一些亮点:)步骤4的for可以与以下命令一起使用:
    $for*.svg中的f;dorasterizer-m应用程序/pdf$f;完成
    。PS:我不太确定这两个工具是如何关联或重叠的,但是……扩大原始问题的范围,这将是裁剪结果文件的一种方法:
     -dNoOutputFonts
    
     gs -o somepdf-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite somepdf.pdf