用于打印媒体的网页 - 解决方案?

时间:2009-01-15 15:39:12

标签: html printing media mediawiki

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

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

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

有关赞成或反对意见的任何解决方案,讨论或欢迎任何内容。

谢谢!

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

7 个答案:

答案 0 :(得分:4)

http://www.princexml.com/

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

答案 1 :(得分: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等)。

答案 2 :(得分:3)

您可能听说过PediaPress这家公司已经与维基媒体基金会签订了“维基打印”(即PDF,但也包括ODF)。 (请参阅"Wikis Go Printable"。)他们的代码旨在与MediaWiki一起使用,并且是open source

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

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

答案 3 :(得分:1)

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

还有许多其他内容,例如使用Extension:Pdf_Exporthtmldoc。虽然它更一般,它的分页工作非常糟糕,并且创造了大量的寡妇和孤儿,没有做出最佳的文本证明,也没有做索引,数字,自我引用等。另外,如果你使用&lt ;数学&GT; MediaWiki中的标记只包含低分辨率的PNG文件。

princexml专门用于MediaWiki并生成外观漂亮的文档,但在免费许可下无法使用。由于它是闭源产品,因此您控制输出的能力有限。

答案 4 :(得分:1)

一般情况下,使用CSS打印样式+一些网页到PDF工具(headless ChromeElectronwkhtmltopdfPrince XML,或仅使用您的网络浏览器&#39 ;如果您不需要自动化,则可以打印到PDF功能。)

专门针对MediaWiki,ElectronPdfService extension为您完成此操作。 (此外,打印样式现在为being rewritten;请在一两个月后再查看以改进演示。)

答案 5 :(得分: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>

答案 6 :(得分:0)

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

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

它可以在Wikimedia Foundation托管的服务器上在线使用:

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