我想获取一个现有的 pdf 并使其尺寸更宽(添加空白),以便我可以使用我的图形输入板(在 Xournal++ 中加载)向其添加我自己的手绘注释。
到目前为止,我找到了一种通过 pdfcrop 做到这一点的方法:
pdfcrop --margin '0 0 400 0' in.pdf out.pdf
但我丢失了右侧的大纲/书签部分。
有谁知道有什么办法吗?
(Linux app/cmd 是首选,但如果有人知道的话,我愿意探索在线或 windows/osx 工具..)。
答案1
由于我缺乏发表评论的声誉,我想在这里扩展 Yuta 的答案。要添加额外边距,请使用以下命令pdf作物利润:
pdf-crop-margins -o out.pdf -p 100 -a4 $left $bottom $right $top in.pdf
单位为 BP(= 1/72 英寸)。正数缩小边距,负数扩大边距。例如,要将右边距扩大 1 英寸,您可以使用-a4 0 0 -72 0
。
如果没有-p 100
pdfCropMargins,则在应用参数的绝对偏移之前,始终将原始边距缩小到 10% a4
。
答案2
[作者]
经过大量研究 [1],我找到了一个可以在 Linux 上运行的工具。它可以免费试用,但我认为它需要 50 美元的许可证。我能够使用它为我的 pdf 添加边距并保留轮廓。
我一直没能找到免费的工具。如果有人确实找到了,请随时发布额外的答案,我很乐意尝试一下。
如果对遇到同样问题的人有帮助,我使用的工具是Master pdf editor:
https://code-industry.net/masterpdfeditor/
文档->页面布局->“宽度”。
(在 RHEL/Fedora 上,我必须安装 qt5-qtsvg 库才能使其正常工作。)。
[1]我尝试过的Linux工具:
(按照https://www.howtoing.com/best-pdf-page-cropping-tools-for-linux/)
- Briss - 无法扩大利润,只能缩小。
- pdfcrop - 可以扩展,但会丢失目录(如问题所述)。
- Pdf Shuffler - 不裁剪,仅重新排列/删除页面。
- Evince/Okular - 似乎无法编辑页面布局/裁剪。
- pdf-quench - 无法让它工作。
- KCrop - 可以使页面变小,但不能变大。
答案3
pip install pdfCropMargins
pdf-crop-margins sample.pdf -o sample_cropped.pdf
以上对我有用。它可以sample.pdf
在不丢失轮廓的情况下进行裁剪。它应该可以增加额外的边距,但我没有尝试过。
答案4
该脚本首先创建一个 A4 格式的临时 PDF,确保它适合页面。然后,它通过增加宽度并将内容向左移动来调整大小。请随意自定义参数以满足您的需求。
#!/bin/bash
# Check if an input PDF file is provided as an argument
if [ $# -ne 1 ]; then
echo "Usage: $0 <input.pdf>"
exit 1
fi
input_pdf="$1"
# Check if the input PDF file exists
if [ ! -f "$input_pdf" ]; then
echo "Error: The input PDF file '$input_pdf' does not exist."
exit 1
fi
# Extract the base name of the input file (without the extension)
inputname=$(basename "$input_pdf" .pdf)
# Create temp_a4.pdf
gs -o temp_a4.pdf -sDEVICE=pdfwrite -sPAPERSIZE=a4 -dPDFFitPage -f "$input_pdf"
# Wait for temp_a4.pdf to be created
while [ ! -f temp_a4.pdf ]; do
sleep 1
done
# Create output.pdf with increased width and content translated to the left
gs -o "${inputname}-wide.pdf" -sDEVICE=pdfwrite -dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=1100 -dFIXEDMEDIA -dPDFFitPage -c "<</Install {0 0 translate 0 -150 translate}>> setpagedevice" -f temp_a4.pdf
# Cleanup temp_a4.pdf
rm temp_a4.pdf
echo "Output PDF: ${inputname}-wide.pdf"
用法:根据您的喜好重命名脚本 (ae addwidth.sh) 运行:sh ./addwidth.sh input.pdf