【问题标题】:Adding a external PDF as appendix with ReStructuredText使用 ReStructuredText 添加外部 PDF 作为附录
【发布时间】:2012-05-25 21:14:59
【问题描述】:

我正在撰写一份重要报告,并且有两个 PDF 文件我想作为附录包含在内。报告使用 ReStructuredText 编写,将使用 rst2pdf 进行转换。

docutils 或 rst2pdf 是否具有将外部文件作为附录的功能?

【问题讨论】:

    标签: restructuredtext docutils rst2pdf


    【解决方案1】:

    Docutils 具有raw 指令,用于将数据传递到未触及的最终输出。在文档中,他们为 LaTeX 和 HTML 输出演示了这一点。 rst2pdf 似乎支持此指令:在manual 中,他们使用 raw 指令在最终 PDF 中包含一些文本/命令(请参阅标题为 Raw Directive 的部分),但他们没有演示使用此指令来包含外部 PDF 文件。

    如果 rst2pdf 确实支持此功能,您应该可以使用:

    .. raw:: pdf
       :file: your_pdf_file.pdf
       :encoding: the encoding of the PDF file, if different from the
                  reStructuredText document's encoding.
    

    我刚刚尝试过这样做(如果有疑问,请试一试),我收到了一些UnicodeDecodeErrors,所以该功能似乎受到支持,但我无法让它工作。

    【讨论】:

    • 根据rst2pdf手册,raw指令直接发送命令到ReportLab。 ReportLab 显然只支持使用 PageCatcher 插件嵌入 PDF,这需要付费。
    【解决方案2】:

    最后,我无法直接解决这个问题。我将 ReStructuredText 文件转换为 Latex,并在其中包含了附录。

    【讨论】:

      【解决方案3】:

      您可以将 PDF 作为图像嵌入,但这对附录没有意义。

      如果您只有 PDF 格式的文件,您可以使用 PDF 操作工具添加它们,但这些通常会破坏页码或链接或 PDF 的其他部分。

      【讨论】:

      • 我尝试过使用 GS 和 Pdftk。前者破坏了页码和 PDF 索引,而后者只是挂起执行而没有做任何实际工作。我开始认为做这个开源没有简单的方法。
      • 您的附录不会出现在索引/目录中,但您可以使用以下命令轻松地将 PDFS 与Ghostscript 合并:gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=out.pdf your_pdf.pdf appendix1.pdf appendix2.pdf
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      • 2017-08-15
      • 2013-11-17
      相关资源
      最近更新 更多