-2

我们正在寻找一种制作打印文档的好方法,如下所示,其中包含与其他页面共享的内容(下面的扫描文档是 102 页小册子中的一页)。例如,“期望的结果”部分在其他几个页面上被重述。当我们想要调整或添加它时,我们目前必须找到文本所在的所有位置,然后在其中复制/粘贴。我确信我不必向您解释为什么这是有问题的。

这些页面目前是在Adob​​e中制作的,我不太喜欢它,所以我很高兴地接到任务,将它们移植到避免手动复制粘贴的东西中。

这是 LaTeX 的工作吗?我只是涉足它,但如果你认为 LaTeX 是这项工作的正确工具,那么请指出我开始学习的正确方向。

总是有任何从数据库读取并输出 HTML 的 Web 语言(例如 PHP 和 MySQL;将我们的共享文本块存储在 MySQL 数据库中,或类似的东西),但过去我在尝试格式化事物时遇到了很多问题用于打印;有没有很好的指南来制作打印格式的 HTML 页面?我知道 CSS media="print" 属性,但这与我在这方面的知识范围有关。


样本打印页

4

7 回答 7

6

如果您考虑 T E X 领域的某些内容,我强烈建议您查看ConT E Xt,因为它不太针对科学论文,而更多地针对创建非常自由的布局。正如 dmckee 所说,您可以为此使用 LaTeX,如果您内部有人已经具备所需的专业知识,那就太好了。但如果不是,那么,关于 LaTeX 的书籍数量要多得多,但上次我看时,它们中的大多数并没有真正提出任何我愿意遵循的建议。(我可以做你在 LaTeX 或 ConTeXt 中展示的东西,虽然已经有一段时间了。)

于 2010-02-05T16:53:27.613 回答
1

用于 Python 的ReportLab非常好。

ReportLab 工具包是经过时间验证的、超强大的开源引擎,用于以编程方式创建 PDF 文档并构成 RML 的基础;它还包含一个用于创建与平台无关的矢量图形的库。这是一个用 Python 编写的快速、灵活、跨平台的解决方案。

示例输出在这里。

于 2010-02-05T16:13:47.213 回答
1

如果您要打印,则绝对应该在 html 上使用乳胶。html 听起来像是管理印刷材料的噩梦。

我在工作中面临同样的情况:我有大约 70 份文件,其中很多是重复材料。我选择在section级别拆分;也就是说,每个\section{}文档中的每个都是它自己的 .tex 文件。然后,我将使用输入命令从这些文件“构建”文档:

\input{documentname}(输入命令不带文件扩展名)

现在,当我需要更新一条信息时,我更新一个文件,然后重新编译所有受影响的文件。它对我来说效果很好。我遇到的唯一问题是定位哪些文档受到文件更改的影响,但这远不是在一堆不同文件之间复制/粘贴的问题。

我尽量让我的 tex 代码尽可能简单。如果出于某种原因我需要将内容发布到网络上,pandoc 通常会为我提供 97%(如果不是 100%)的方式,但我 95% 的内容仅用于打印。如果您需要使用多种发布媒体(即印刷、网络等),您可能会考虑使用元格式,例如 markdown、multimarkdown、重组文本或类似的东西。维基百科在这里对这些事情进行了总结:http ://en.wikipedia.org/wiki/Lightweight_markup_language 。我发现 Markdown 最容易使用,但它缺乏对表格等的支持,而且我发现重组后的文本具有最多的功能。

话虽如此,我很高兴使用latex + pandoc。乳胶的结果很漂亮。

于 2010-02-05T16:27:39.333 回答
1

LaTeX可以做类似的事情。这并不是说它一定是最简单的方法。

这是我会使用的,因为我已经使用了近二十年了。

如果您打算尝试 Latex,请注意\input\include,并准备花一些时间与CTAN一起寻找其他人已经解决了您的问题的地方。

于 2010-02-05T16:29:10.973 回答
0

iText是 Java 的 PDF 库,我认为是 C-sharp。尽管我自己没有在生产中使用它,但它的声誉很好。我已经用它模拟了一些演示并且非常高兴。

于 2010-02-05T16:14:55.927 回答
0

你需要重新表述你的问题。

阅读第一部分让我知道您的问题在于内容生成而不是消费。您是否尝试过使用模板(您的用例对我来说似乎是VDP案例)。

但是,最后,您谈到创建打印材料,输出的最佳选择是 PostScript 和/或如果可以的话 - PDF。CSSmedia=print再次与输出/消费端相关。

于 2010-02-05T16:15:13.557 回答
0

你可以做任何一种方式。过去,我在 HTML、LaTeX、Word 和 Excel 文档方面都取得了成功。

无论您选择哪种方式,您都需要创建一个模板,您可以填写该模板以适应演示文稿中的更改,而与内容无关。

Perl 的HTML::Template将有助于填补空白

下面有一个原始的 HTML 示例。要做到这一点,请阅读分页媒体

<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>

<link id="screen-reset" rel="stylesheet" type="text/css"
href="http://yui.yahooapis.com/3.0.0/build/cssreset/reset-min.css"
media="screen">

<link id="print-reset" rel="stylesheet" type="text/css"
href="http://yui.yahooapis.com/3.0.0/build/cssreset/reset-min.css"
media="print">

<style type="text/css" media="print,screen">
    html { width:8.5in; font-size:16px; font-family:Arial; }
    body { margin: 0 auto; }
    @page {margin:1in }
    .page { page-break-after:always}
    .title { background: #911; height:1in; }
    .title h1 { 
        color:#fff; 
        background:transparent;
        display:inline-block;
        font-size:1.75em;
        font-weight:bold;
        height:1in; 
        line-height:0.5in;
        position:relative;
        top:0.125in;
        left:0.125in;
        text-decoration:underline;
        text-transform:uppercase;
        vertical-align:middle;
        width:75%;
    }

    .title h2 { 
        background:#fff;
        border:solid 1px #000;
        color:#000;
        font-size:0.75em;
        height:0.75in; 
        position:relative; top:0.125; left:0.125in; display:inline-block;
        text-align:center;
        vertical-align:middle;
        width:1in; 
    }

    .category {
        background:#bbb;
        color:#fff;
        font-size:1.25em;
        font-weight:bold;
        height:0.5in;
        padding:1%;
        width:98%;
        text-transform:uppercase;
    }


</style>

</head>
<body>
<div class="page">
<div class="title">
<h1>Job Instruction Breakdown Sheet</h1>
<h2>Revision Code</h2>
</div>

<h2 class="category">
13 - Attic Critical Detail: Flue, Combustion Vents &amp; Chimneys
</h2>
</div>

<div class="page">
<div class="title">
<h1>Some other Sheet</h1>
<h2>Revision Code</h2>
</div>

<h2 class="category">
14 - Other Details
</h2>
</div>

</body>
</html>

使用浏览器的打印预览功能(您可能必须选择特定的浏览器来生成输出)并设置“打印背景图像和颜色”或您喜欢的浏览器中调用的任何选项。

于 2010-02-05T17:14:38.190 回答