我一直是MediaWiki和类似基于wiki的文本编辑的忠实粉丝。我喜欢快速添加文本,协作和分享的能力。但是,仍然需要格式良好的打印输出。像页眉和页脚(这就是我想要他们说的),分页符,页边距等等。
我见过的大多数解决方案都涉及到某种中间打印媒体格式的转换(可能是MediaWiki到Microsoft Word,也可能是某些自定义脚本,它会从网页内容生成PDF(有很多难度)编码参考)。
这个问题是否存在更通用的解决方案?是否有任何框架试图将HTML和Web内容合并为一种打印媒体输出格式?
有关赞成或反对意见的任何解决方案,讨论或欢迎任何内容。
谢谢!
更新:我认为CSS只会让我到目前为止...我已经使用CSS进行类似输出(默认情况下MediaWiki有一种打印格式隐藏了大部分导航栏的东西)。想想一下MediaWiki的文章 - 想象一下我能够在内容中调整一个标签或类似的东西,现在我的边距是1英寸而不是0.5英寸。这更符合我的目标。
答案 0 :(得分:4)
可能适合你。它将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_Export的htmldoc。虽然它更一般,它的分页工作非常糟糕,并且创造了大量的寡妇和孤儿,没有做出最佳的文本证明,也没有做索引,数字,自我引用等。另外,如果你使用&lt ;数学&GT; MediaWiki中的标记只包含低分辨率的PNG文件。
princexml专门用于MediaWiki并生成外观漂亮的文档,但在免费许可下无法使用。由于它是闭源产品,因此您控制输出的能力有限。
答案 4 :(得分:1)
一般情况下,使用CSS打印样式+一些网页到PDF工具(headless Chrome,Electron,wkhtmltopdf,Prince 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