shell - 如何使用 graphicsmagick 运行/调用 shell 脚本函数
问题描述
我有一个 LaTeX 数学任务的 pdf,我想使用 graphicsmagick 将其转换为 png。我尝试了很多在线转换器和类似的工具,没有一个对我有用。我在我的 pdf 文档的单页上有单独的任务。一位同事建议使用 graphicsmagick。他还提供了一个代码片段,我原则上可以理解。一切都在一个 shell 脚本中,到目前为止我从未使用过。
我的问题是:如何使用/执行/调用给定的代码片段?
这就是我得到的(我将它作为exam.sh 保存在我的工作目录中):
function ex {
p=$1
gm convert -trim -density 300x300 file.pdf[$p] /tmp/page.png
H=$(gm identify /tmp/page.png -format "%h")
gm convert page.png -background white -extent 2000x$H auf.png
}
这是我管理/尝试做的事情:
- 在 Windows 10 上安装 Ubuntu
- 使用终端导航到我的目录(其中包括代码片段的 .sh 和我的 file.pdf)
- 我可以调用一个脚本:我创建了一个与“hello world”相呼应的 hello.sh(我将其称为“source hello.sh”)
- 我可以调用一个包含带参数的函数的脚本:我创建了一个 add.sh(来自 youtube-video),尽管我没有设法从“脚本外部”调用函数,即保存/激活函数终端。
- 我安装了graphicsmagick并调用了一条线,我可以手动执行“gm convert -trim -density 300x300 file.pdf[$p] /tmp/page.png”。
- 我进一步注意到,在 Windows 文本编辑器中编辑 shell 脚本存在一些问题,因此我在终端中使用了“nano”。
当我尝试
source exam.sh
它返回“意外标记附近的语法错误”
似乎 page 是我必须为该函数提供的唯一参数。
ex 1
这也不起作用。
我很感激关于我必须在脚本中包含什么(也许指定某种 shell?),我必须在终端中写什么(chmod + x?)以告诉终端我的函数存在以及如何执行的任何建议函数或为函数提供参数,以便最终获得一些 png。
更新
这是一张用于说明的图片。我需要裁剪在其他空白 A4 页面上给出的任何文本/公式。最终裁剪应为 2000 像素宽。相对高度,取决于“长”文本/公式/图片的长度。
解决方案
您应该可以像这样在没有 Ubuntu 或 shell 脚本的情况下完成所有操作,只需在命令提示符中:
gm convert -density 300x300 file.pdf[0] -trim -background white -extent 2000x auf.png
您可能可以制作一个EXTRACT.BAT
像这样调用的批处理文件:
gm convert -density 300x300 %1[%2] -trim -background white -extent 2000x auf.png
然后你应该能够做到:
EXTRACT FILE.PDF 2
提取第 3 页(因为第一页是第 0 页)的FILE.PDF
推荐阅读
- python - 使用 Python 在 PE 文件中搜索字符串
- c# - 在视图上自动更新 ViewComponent
- javascript - 将日期转换为时间戳,以便在 javascript 中存储到 firebase firestore
- 3d - 随机修改 3D 矢量
- excel - SAP BO 4.2 报告导出到 Excel、PDF、CSV 运行时间过长
- python - Python中根据索引值过滤数据框
- php - Laravel:未经授权使页面可用
- python - 使用python在白色背景上使用不同半径圆的半色调
- python - DJango REST Framework SyntaxError 入门:语法无效
- django - 如何检查 Field.choices 值在同一模型 django 中是否唯一