【发布时间】:2015-08-26 11:05:00
【问题描述】:
【问题讨论】:
【问题讨论】:
您需要决定您的基本技术:Flash、Silverlight、Canvas、客户端 SVG、服务器端 SVG 或服务器端位图。还有一些商业解决方案适用于 Adobe InDesign 文档(可能还有许多其他专有格式),但我希望这些解决方案不会便宜。
Flash/Silverlight 需要插件,并且被一些人认为是一种垂死的技术——尽管我确信这是有争议的。 Canvas 是“非常 HTML5”,本质上是在客户端构建/渲染的位图,但如果您最终渲染为 PDF,它可能无法提供您需要的分辨率。同样的限制也会影响构建图像服务器端 - 您可能应该处理矢量元素和位图,而不是随时将所有内容渲染为像素。
这使得 SVG 在我的列表中,无论是在客户端(请参阅 RaphaelJS)还是在服务器(请参阅 Inkscape)。我目前正在做一些关于服务器端 SVG 渲染的工作,而且很有希望;尽管比客户端存在更多的可扩展性问题,但它不会受到浏览器兼容性问题或浏览器渲染限制的影响。
浏览器 SVG 渲染中的最大问题是流式段落文本和路径中/路径上的文本 - 我不确定这些在现代浏览器中的实现情况如何,或者它们之间有多少一致性。考虑到其中一些需要 SVG1.2,而浏览器(afaik)在多年后才刚刚适应 SVG1.1,情况尤其如此。但是,如果您只想制作标准的文本块、位图和矢量元素,那么基于浏览器的 SVG 应该适合您。
您给出的示例使用服务器端技术(SVG,或者可能是商业格式)并在客户端呈现为低分辨率 PNG。
在您的情况下,一旦您考虑了如何“进行编辑”,您就需要考虑如何渲染为 PDF,这将在服务器上完成。您可以使用 FPDF 之类的底层工具,使用 Jasper 之类的报告渲染器,或者使用 GhostScript、Inkscape、Scribus、ps2pdf、svg2pdf 等图形系统。
除此之外:我通常不会在没有明显的事先研究的情况下回答问题。但是,既然你已经表明你确实会这样做,我很乐意帮助你开始。
【讨论】: