【问题标题】:Web pages to print media -- solutions?网页到印刷媒体——解决方案?
【发布时间】:2009-01-15 15:39:11
【问题描述】:

我一直是 MediaWiki 和类似的基于 wiki 的文本编辑器的忠实粉丝。我喜欢快速添加文本、协作和共享的能力。但是,仍然需要格式良好的打印输出。诸如页眉和页脚(说明我想让他们说的内容)、分页符、页边距等内容。

我见过的大多数解决方案都涉及到某种中间打印媒体格式的转换(可能是 MediaWiki 到 Microsoft Word,或者可能是一些从网页内容生成 PDF 的自定义脚本(有很多硬-编码参考)。

对于这个问题是否存在更通用的解决方案?是否有任何框架旨在将 HTML 和一般的 Web 内容合并为打印媒体输出格式?

任何解决方案,关于赞成或反对的讨论,或任何欢迎的。

谢谢!

更新:我认为 CSS 只会让我到目前为止... )。想想 MediaWiki 文章——想象一下我能够调整内容中的标签或类似的东西,现在我的边距是 1 英寸而不是 0.5 英寸。这更符合我的目标。

【问题讨论】:

    标签: html printing media mediawiki


    【解决方案1】:

    http://www.princexml.com/

    可能适合你。它将 xml 和 html 页面转换为 pdf 文档。

    【讨论】:

    • +1 太子真是太棒了,物超所值! xhtml 到 pdf 转换的质量和易用性令人惊叹!
    【解决方案2】:

    您可能听说过PediaPress,这家公司与维基媒体基金会达成了“维基打印”(即 PDF,还有 ODF)协议。 (见"Wikis Go Printable"。)他们的代码是为与MediaWiki一起工作而设计的,是open source

    但是!它甚至比那更好。看看这个bookmarklet。您可以使用它来创建任何可公开访问的 MediaWiki 页面的 PDF 或 ODF(也许它也需要启用 API……)。您可以将来自单个 MediaWiki 或多个 MediaWiki 的多个页面捆绑到单个文档中。在我的书中,这真是太棒了。 :)

    ETA:PediaPress 投入了大量工作来制作看起来真的好读的东西。它不仅相当于将 MediaWiki 的可打印版本转换为 PDF。

    【讨论】:

    • 谢谢——我没听说过它们,这真的很好。
    【解决方案3】:

    使用print CSS files 是重新格式化打印页面的一种非常巧妙的方法。

    很多人转而使用 PDF,因为它可以更强大、更简单。

    不过,对于大多数事情,我认为 CSS 标记更简单、更容易。

    查看 StackOverflow 中页面的源代码,您会看到对 media="print" (print.css) 的引用——一组仅在浏览器打印页面时应用的样式。

    <link href="/Content/print.css" rel="stylesheet" media="print" type="text/css" />
    

    您可以使用它们来隐藏导航栏、广告(或显示不同的广告)。做一些基本的分页等。

    如果您需要对边距等内容进行更多控制,则必须离开浏览器(PDF、Word、XPS 等)。

    【讨论】:

      【解决方案4】:

      我写了一个MediaWiki to LaTeX converter 来尝试维护源文本的文档结构。然后使用 pdflatex 对文档进行排版以生成非常高质量的分页文档。数学标记直接由 LaTeX 渲染,所以方程看起来很棒。 LaTeX 文档类/样式表可通过 wiki 中的专用命令进行配置,以直接控制页边距、页面布局、字体、额外包等。 这将属于您的第二类自定义脚本而不是通用框架。

      还有很多其他的,例如使用htmldocExtension:Pdf_Export。虽然它更通用,但它的分页工作非常糟糕,并创建了很多孤儿,没有进行最佳文本对齐,也没有索引、数字、自我引用等。此外,如果你使用 标记只包含低分辨率的 PNG 文件。

      princexml 专门用于 MediaWiki 并生成美观的文档,但在免费许可下不可用。由于是闭源产品,所以你控制输出的能力是有限的。

      【讨论】:

        【解决方案5】:

        一般来说,使用 CSS 打印样式 + 一些网页转 PDF 工具(headless ChromeElectronwkhtmltopdfPrince XML,或者如果您不需要,只需使用 Web 浏览器的打印到 PDF 功能使其自动化)。

        特别是对于 MediaWiki,ElectronPdfService extension 会为您执行此操作。 (此外,打印样式现在为 being rewritten;请过一两个月再回来查看以改进演示。)

        【讨论】:

          【解决方案6】:
          <style type="text/css">
              @media print {
                  /***css rules for print mode ***/
                  aside#sidebar, header[role="banner"], footer, #comments, #respond, #header-v1, .breadcrumbs, #footer-v1,.topbar-v1,.header-v1,.fcbtnremove {
                      display: none;
                  }
          
                  .container.content-xs {
                      width: 98%;
                      margin: 0px;
                      padding: 0px;
                  }
              }
          
              @media screen {
                  /***css rules for screen , it is sometiems opposite of print mode ***/
                  #header-v1, .breadcrumbs, #footer-v1,.topbar-v1,.header-v1 {
                      display: block;
                  }
              }
          
              table td , table th{text-align:center;vertical-align:middle}
          </style>
          

          【讨论】:

            【解决方案7】:

            mediawiki2latex 项目提供了一个解决方案。

            任何 MediaWiki 页面都可以转换为 PDF、Epub、Odt 或 LaTeX

            它可以在维基媒体基金会托管的服务器上在线使用:

            https://mediawiki2latex.wmflabs.org/

            还有一篇关于该项目的已发表文章

            http://www.tug.org/TUGboat/tb34-2/tb107huenniger.pdf

            源代码在 GPL 下可用。有一个很好的Debian包:

            sudo apt-get install mediawiki2latex
            mediawiki2latex -u https://en.wikipedia.org/wiki/Epimorphism -o output.pdf
            evince output.pdf
            

            【讨论】:

            • 问题的链接很好,但高质量的答案应该包含堆栈溢出中的答案,以防止链接的网站被删除或修改时知识消失或过时。跨度>
            猜你喜欢
            • 2010-10-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-08
            • 1970-01-01
            相关资源
            最近更新 更多