在 pdf 中添加额外边距(右侧)而不丢失轮廓?

在 pdf 中添加额外边距(右侧)而不丢失轮廓?

我想获取一个现有的 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 100pdfCropMargins,则在应用参数的绝对偏移之前,始终将原始边距缩小到 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

相关内容