我正在尝试在 Centos 8 上的 bash 脚本中使用 pdfcrop。我找不到带有 texlive-extra-utils(提供 pdfcrop)的包。
如何使 pdfcrop 在 Centos 8 上使用?
答案1
texlive-extra-utils
似乎是 Debian 软件包名称。我不希望在 CentOS 中找到该名称。但快速搜索显示 pdfcrop 无论如何都不存在于 CentOS 中。如果 Red Hat 没有为 RHEL 打包它,它就不会在 CentOS 中。另一方面,我确实在 ELN 中看到了它,所以它可能会进入 RHEL 9。
您可以联系 Red Hat 负责该软件包的软件包维护人员,并要求将 pdfcrop 打包到 RHEL 8。尝试rpm -q --changelog texlive-base | less
找到合适的人来询问。但不要指望这会很快发生。
您还可以尝试反向移植texlive-base
来自 Fedora 的源 RPM,它确实构建了一个名为 pdfcrop 的包texlive-pdfcrop
。但你有责任跟上包的任何更新(根据其历史记录,似乎每年更新几次)。但你还必须反向移植缺少的依赖项并将它们放在你自己的私有存储库中。这可能是相当多的工作。您可以使用考普尔处理大部分问题。只需向其提供所有必要的源 RPM,它就会处理创建仓库和构建软件包。不过我预计这也会失败,因为它似乎texlive-base
存在循环依赖(依赖于其自身提供的软件包)。您现在处于专家领域,除非您已经知道如何解决奇怪的 RPM 打包问题,否则我不建议您走这条路。不过维护人员确实应该意识到循环依赖。
在这种情况下您可能还想考虑实际使用 Fedora。
答案2
深入研究 pdfcrop 后,我发现它是一个 perl 脚本。(可在此处获得:https://www.ctan.org/tex-archive/support/pdfcrop)
我将脚本放在 Centos 服务器上的 /usr/bin 中(这样它就位于路径中)。在运行脚本时,我发现缺少依赖项 - pdftex,它由 texlive-pdftex 提供。我安装了依赖项,一切基本正常。我确实必须在 pdfcrop 中使用 --ini 开关,它告诉 pdfcrop 不要使用格式。但是,我认为这是原始 pdf 文件的问题,该文件由 MS Publisher 生成,可能格式很奇怪。
我希望这对其他人有帮助。