从XML生成高质量PDF的最佳方法是什么?

5
我正在考虑从XML来源创建高质量的PDF文件,作为在线相册创建工具的输出结果。实现此任务有几百种选项,从手动创建PDF文件(iText,PdfSharp等)到PrinceXML和xsl-fo工具。以下是我想要支持的一些功能:
强制支持: - 全页出血PDF文件 - 多格式页面构成 - 支持封面、书脊印刷、全包装图形+文本 - 非标准页面尺寸 - 重叠的图形元素 - 自定义字体 - 十字折页布局支持 - 双页展开 - 300-600dpi图像支持 - 真正的所见即所得/可靠、可预测的输出(即从源材料到PDF的像素完美转换) - 边距控制 - 嵌入色彩配置文件 - 支持Unicode - 绝对定位布局元素
可选支持: - 相对布局元素 - 图像(CMYK,RGB) - HTTP字体 - 连字支持 - 裁剪标记支持 - 脚注 - 特殊颜色填充 - 表格数据支持 - 排版支持(行距、字距等)
如果有人知道最佳实现方式,请告知,将不胜感激。同样,如果有人知道其他在线相册公司(例如Blurb或Shutterfly)用于将在线书籍转换为印刷就绪PDF文件的工具,我会非常感兴趣。

我本来想大喊“LaTeX!”直到看到所需的所见即所得编辑器要求。如果真有一个程序符合所有这些要求,我也想知道! - user684934
1
XML 是一种标记语言。PDF 是一种演示格式。除非您想在 PDF 中呈现原始的 XML 源代码,否则无法回答您的问题,因为不知道 XML 描述了什么。 - vocaro
@vocaro - 这个 XML 文件描述了一本相册,因此会有页面节点、富文本区域、图片等节点。 - Paul Suart
如果你在考虑XSL-FO,那么XEP可能是你最好的选择。不过我并不太理解所需的所见即所得(WYSIWYG)要求。 - biziclop
如果您的XSLT自动生成InDesign文档,并且您对其布局非常满意,那么我想您可以消除手动调整,并拥有大规模的自动化流程。但对我来说,这似乎是一个很大的“如果”。无论如何,我只是在批准:我自己没有尝试过这个。 - LarsH
显示剩余8条评论
2个回答

3
您应该看看PrinceXML(这是您在问题中列出的名称,但没有告诉我们您不喜欢它的原因),我几天前在这里提到过它-甚至附带了显示结果的截屏。 其他prince输出示例也可以查看。
然而,“真正的所见即所得”对我来说仍然很模糊。
因为您首先需要向我展示一个XML渲染器...一个能够在屏幕上像您期望PDF页面一样显示您的XML的渲染器。

更新:这里提供了由PrinceXML创建的PDF文件示例。您可以在Linux或Mac OS X上使用以下命令下载其中的14个文件:

for i in 9-02 9-01 8-12 8-11 8-10 8-09 8-08 8-07 8-06 8-05 8-04 8-03 8-02 8-01; do 
   wget \
     -r \
     -t 3 \
     -l 1 \
     -c \
     -O AdvancedAquarist-200${i}.pdf \
      http://www.advancedaquarist.com/pdf/AdvancedAquarist-200${i}.pdf/at_download/file
done

在Windows上:
for %i in (9-02 9-01 8-12 8-11 8-10 8-09 8-08 8-07 8-06 8-05 8-04 8-03 8-02 8-01) do ^ 
   wget.exe ^
     -r ^
     -t 3 ^
     -l 1 ^
     -c ^
     -O AdvancedAquarist-200%i.pdf ^
      http://www.advancedaquarist.com/pdf/AdvancedAquarist-200%i.pdf/at_download/file

在我看来,这里制作的布局相当复杂。

请注意,该杂志的旧问题,直到2008年5月,是使用iText 1.4.6创建的(根据其元数据)。

新问题,从2008年6月开始,大多数都是使用PrinceXML 6.0完成的(这是4年前发布的版本...)。

尽管如此,两个应用程序产生了非常相似的布局...


1
谢谢 - 我们肯定正在考虑使用PrinceXML,我只是不想过度影响任何答案。我仍然没有看到一个特别复杂的布局的Prince渲染PDF的例子。如果您知道任何(超过链接的样本页面),我将不胜感激。 - Paul Suart
请先向我展示你在XML中完成的“特别复杂的布局”。另外,我认为你欠我一个关于“真正的所见即所得(true WYSIWYG)”是什么意思的答案… - Kurt Pfeifle
@papitas。目前还没有任何布局存在。我们正在进行发现阶段的工作,以评估将书籍的XML表示转换为可打印PDF的最佳选项。所谓“WYSIWYG”,是指PDF需要非常精确地格式化。如果我将XML转换为XHTML文档,则PDF应该与源XHTML(在ACID3兼容浏览器中查看时)像素对像素完全相同,并使用@page规则应用分页等。 - Paul Suart
@Pual Saurt:当涉及将XHTML-> PDF转换器传递ACID测试时,PrinceXML是您可以获得的最好的东西。 (而Hakon Wium Lie,CSS之父之一,也是开发PrinceXML的公司的董事之一)。关于PrinceXML的限制,请参见:http://www.princexml.com/doc/7.0/css21/。肯定有一个原因,为什么Google决定支持PrinceXML从GoogleDocs生成他们的PDF输出... - Kurt Pfeifle
@papitas:我不知道Google在googledocs中使用PrinceXML。我想我们现在可以确定我们将使用PrinceXML,所以感谢您提供的额外信息。 - Paul Suart
@Pual Saurt:您可以通过将Google文档导出/下载为PDF文件,然后检查文件的元数据来自行验证。 - Kurt Pfeifle

-1

我并不期望有什么神奇的转换方式。我想请教一下,将XML转换为高质量的PDF的最佳方法是什么。谢谢你的建议,但这不是我要找的东西。 - Paul Suart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接