提取幻灯片 PDF 中已完成的幻灯片

提取幻灯片 PDF 中已完成的幻灯片

我的讲师分发的幻灯片演示文稿的 PDF 文件通常包含大量页面,因为每个动画步骤都会生成一个新页面(有时每张幻灯片 20 页)。

如果您想在屏幕上观看幻灯片放映,这很好。但我想打印幻灯片,为了节省纸张,我宁愿只打印完整的幻灯片(在所有动画步骤发生之后)。

这些 PDF 的结构如下:

Page: 1/12, slide: 1
Page: 2/12, slide: 1
Page: 3/12, slide: 1 -> complete first slide (this is what I want to print)
Page: 4/12, slide: 2
...

我注意到,evince 实际上会跟踪我们所在的幻灯片。它在实际页码旁边显示幻灯片编号(如上所述)。因此,显然幻灯片编号保存在 PDF 文件中,应该可以识别哪一页是一张幻灯片的最后一页并仅打印该幻灯片。

所以我的问题是:有没有办法使用 pdftk 或 GS​​ 或类似工具提取每张幻灯片的最后一页(使用相同幻灯片编号的最后一页)?

注:我认为这个问题一定很常见,但我找不到任何类似的帖子。如果这是重复的,我深表歉意。

答案1

这是一个执行此操作的脚本,适用于 Marco 评论中的示例。它利用pdftk.

#!/bin/sh
PAGES=$(pdftk $1 dump_data |                      
    grep PageLabelNewIndex |
    cut -d' ' -f2 |                                                         
    xargs -n1 expr -1 + |                                                   
    tail -n+2 |                                                             
    tr '\n' ' ');                                                           
# Add last page                                                                 
PAGES="${PAGES} $(pdftk $1 dump_data |                                          
    grep NumberOfPages |                                                    
    cut -d' ' -f2)";                                                        

pdftk $1 cat ${PAGES} output $2

将输入文件作为第一个参数,将输出文件名作为第二个参数。

相关内容