6

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

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

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

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

谢谢!

更新:我认为 CSS 只会让我到目前为止......我已经将 CSS 用于类似类型的输出(MediaWiki 默认情况下具有隐藏大部分导航栏内容的打印格式)。想想 MediaWiki 文章——想象一下我能够调整内容中的标签或类似的东西,现在我的边距是 1 英寸而不是 0.5 英寸。这更符合我的目标。

4

7 回答 7

4

http://www.princexml.com/

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

于 2009-01-15T15:43:34.360 回答
3

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

很多人回退到 PDF,因为它可以更强大、更容易。

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

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

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

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

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

于 2009-01-15T15:41:01.183 回答
3

您可能听说过PediaPress,这是一家与 Wikimedia Foundation 达成“wiki to print”(即 PDF,也包括 ODF)交易的公司。(请参阅“Wikis Go Printable”。)他们的代码旨在与 MediaWiki 一起使用并且是开源的。

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

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

于 2009-03-06T07:56:55.503 回答
1

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

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

Princexml专门用于 MediaWiki 并生成好看的文档,但在免费许可下不可用。由于它是闭源产品,因此您控制输出的能力有限。

于 2009-01-15T15:42:07.297 回答
1

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

专门针对 MediaWiki,ElectronPdfService 扩展为您执行此操作。(此外,打印样式现在正在改写;请在一两个月后回来查看以改进演示。)

于 2017-09-10T23:02:03.783 回答
0
<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>
于 2017-09-03T07:03:50.867 回答
0

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
于 2019-11-24T10:33:42.123 回答