用于将PDF标记为在单页视图中打开的命令行工具

时间:2014-08-28 08:16:45

标签: php macos shell pdf pdftk

简短问题: 是否有PDF命令行/ shell工具(对于osx),它可以在PDF上设置必要的属性,以便最初在"单页面视图中打开" (适合窗户)


更多信息

我目前正在使用WkhtmlToPdf生成PDF,并且在某些情况下使用PDFTK通过PHP合并生成的文件以及在Mac上进行一些shell调用。

但是,我希望这些文档默认由用户PDF阅读器在"单页面查看" /"适合Window"。

我发现以下question表明此功能已放在PDFTk的功能请求列表中,但我找不到对它的引用。我也遇到Advanced PDF Tools(请参阅-q [OpenAction]标志)但是,此工具似乎只适用于Windows,我需要支持OSX的东西

2 个答案:

答案 0 :(得分:2)

您可以使用CPDF执行此操作:

cpdf in.pdf -set-page-layout SinglePage AND -fit-window -o out.pdf

答案 1 :(得分:0)

您可以使用特殊pdfmark运算符使用PostScript代码段,在Ghostscript的帮助下将适当的DOCVIEW设置插入到目标PDF中。

以下是嵌入在文本文件中的示例my-pdf-docview-pdfmark.ps

[ /PageMode /UseOutlines  % Display bookmarks upon opening the doc
 %/PageMode /UseThumbs    % Display thumbnails upon opening the doc
 %/PageMode /FullScreen   % Open the document in fullscreen mode
 %/PageMode /None         % Display neither bookmarks nor thumbnails upon opening
  /Page 2                 % Open document with page 2, not page 1!
 %/View [ /XYZ null null null ]
                          % Go to specified page and retain same ... 
                          % ... horizontal/vertical offset+zoom as current page
  /View /Fit              % Fit page to window
 %/View /FitB             % Fit visible part of page to window
 %/View [/FitH 220]       % Fit page width to window; 220 is distance ...
                          % ... of page origin from top of window
                                         /DOCVIEW    pdfmark

 [ {Catalog} <<
              /PageLayout /SinglePage
             %/PageLayout /OneColumn
             %/PageLayout /TwoColumnRight
             %/PageLayout /TwoColumnLeft
             >>                          /PUT        pdfmark

注意,仅查看左方的方括号 [ 并不是错误,但不是关闭方括号。 [是一个运算符,它由最终关键字pdfmark关闭。

上面的一些行未使用初始%字符进行评论,以向您展示其他替代方案。

请注意,这可能不适用于所有用户或所有观看者。这些设置仅是对观众的提示和建议,观众可能会也可能不会尊重他们。此外,用户可以覆盖其查看器的配置,并告诉它始终忽略这些提示,而是打开用户指定的所有PDF。

创建上述文件后,将其应用于PDF:

gs -o output.pdf               \
   -sDEVICE=pdfwrite           \
     my-pdf-docview-pdfmark.ps \
   -f input.pdf