将两个 PDF 页面拼接在一起并复制纸张宽度

将两个 PDF 页面拼接在一起并复制纸张宽度

我有使用默认 LaTex 演示文稿格式生成的 PDF 格式的讲座幻灯片。我想在这些幻灯片上写数字笔记,为此我希望在每张幻灯片的右侧留出较大的线条/标尺空间。

我尝试了这里提供的解决方案超级用户问题一切正常:我复制了纸张宽度,并添加了右边距,该边距将占据页面的一半空间。结果如下:https://i.stack.imgur.com/MXQof.png

这个解决方案的问题是,当我用数字方式做笔记时,我会把页面放大很多,因此我失去了手写字迹应该有多大的参考。我想让右边的空白处有线条来指导我的手写。

考虑到这一点,我尝试Pages per sheet在打印 PDF 时使用该功能。我会在每张幻灯片之间插入一张空白页(假设它有线条)——大小与幻灯片相同——然后放入2 pages per sheet。遗憾的是,无论我尝试的方向、纸张大小和旋转组合如何,输出看起来都很糟糕:两张纵向页面拼接起来2 pages per sheet看起来像一张横向页面上的两张纵向页面,两张横向页面拼接起来2 pages per sheet看起来像一张纵向页面上的两张横向页面。这会导致非常大的顶部和底部边距,这是我不想要的:https://i.stack.imgur.com/GVO4G.png

我需要的是讲座幻灯片(横向,这样就不会有多余的边距),并在其右侧缝合一个带线的空间(很大,最好与幻灯片大小相同)。我希望解决方案是可编程或可自动化的。

答案1

我建议可以使用pdfcpu因为它作为单个可执行文件非常轻量但功能强大(目前 V 0.7 为 10 MB)。

我的目标是将 LaTeX Beamer 或 PowerPoint Slide 源大致配对,使其位于左侧 2 个四分位数中,右侧有线条,就像这个全屏视图一样。注意,我将第 1 页留空,以添加“讲义”封面页。pdfcpu可以轻松添加徽标/主题标题和其他书面数据作为最后一步。或者,如果封面在注释中,则调整它在第一页上印得更大(它将是一个额外的命令行和对现有印章行的小调整。

在此处输入图片描述

这是 Windows“ComManD”脚本,您只需将讲义拖放到脚本上即可。最终名称是“done.pdf”,但可以使用“%~dpn1-done.pdf”将其反馈到源文件夹,或者按照您的意愿?

set "cwd=%~dp0%"

REM Count source pages and prepare a4L backdrop from half page count

%cwd%pdfcpu info "%~1"|find /i "page count">count.txt
for /f "tokens=3" %%c in (count.txt) do set count=%%c && set /a pairs=(1+count) / 2
REM reset count of 2nd template pages
echo|set /p "=1" 1>count2.txt
for /l %%c in (1,1,%pairs%) do echo|set /p"=,2" 1>>count2.txt
set /p string=<count2.txt
pdfcpu collect -p %string% BackDraft.pdf BackDrop.pdf

REM Prepare the Left hand (A5) nup
%cwd%pdfcpu nup -- "formsize:A5P, border:off" Nup.pdf 2 "%~1"

REM Overstamp Nup on BackDrop
%cwd%pdfcpu stamp add -m pdf -- "Nup.pdf:1:2" "pos:l, rot:0, scale:1.0 abs" BackDrop.pdf done.pdf

pause

特制的2页“模板”BackDraft.pdf如下,但请注意下面的剪切和粘贴注释。

%PDF-1.4
%ÞЃ²
1 0 obj <</Type/Catalog/Pages 2 0 R/Metadata null >> endobj
2 0 obj <</Type/Pages/Count 2/Kids[3 0 R 4 0 R]>> endobj
3 0 obj <</Type/Page/Parent 2 0 R/MediaBox[0 0 841 595]/Contents null /Resources<<>>>>endobj
4 0 obj <</Type/Page/Parent 2 0 R/MediaBox[0 0 841 595]/Contents 5 0 R/Resources<<>>>>endobj
5 0 obj <</Length 744>>stream
1.0 0.5 0.5 RG
421 000 m 421 595 l s
0.5 0.5 1.0 RG
421 007 m 841 007 l s  421 027 m 841 027 l s  421 047 m 841 047 l s  421 067 m 841 067 l s  421 087 m 841 087 l s
421 107 m 841 107 l s  421 127 m 841 127 l s  421 147 m 841 147 l s  421 167 m 841 167 l s  421 187 m 841 187 l s
421 207 m 841 207 l s  421 227 m 841 227 l s  421 247 m 841 247 l s  421 267 m 841 267 l s  421 287 m 841 287 l s
421 307 m 841 307 l s  421 327 m 841 327 l s  421 347 m 841 347 l s  421 367 m 841 367 l s  421 387 m 841 387 l s
421 407 m 841 407 l s  421 427 m 841 427 l s  421 447 m 841 447 l s  421 467 m 841 467 l s  421 487 m 841 487 l s
421 507 m 841 507 l s  421 527 m 841 527 l s  421 547 m 841 547 l s  421 567 m 841 567 l s  421 587 m 841 587 l s
endstream
endobj
xref
0 6
0000000000 65536 f  0000000017 00000 n  0000000078 00000 n  0000000136 00000 n  0000000230 00000 n  0000000324 00000 n
trailer
<</Size 6/Root 1 0 R>>
startxref
1119
%%EOF

注释第 1 页特意留作空白“占位符”,用于以后的封面,除非您在 PDF 编辑器中编辑整个文件,否则请不要尝试添加内容(当前设置为“空”)。

Windows 剪切和粘贴应使用 MS Notepad 并保存为 ANSI 格式。如果可行,文件将正确1,307 字节 在此处输入图片描述

如果不是,你需要考虑为什么(每行末尾有一个 Windows 换行符),因为包含的十进制地址指针仅针对该文件字节长度而设计。如果你使用的是 Mac 或 Linux 简单编辑器,行尾可以是一个空间和此后是 Linux 单个 \x0A 字符换行。

相关内容