GraphViz:如何获取 UTF-8 和外部 PostScript 程序?

GraphViz:如何获取 UTF-8 和外部 PostScript 程序?

目标:画一个包含非Latin1符号的流程图。

问题:GraphViz 不提供绘制流程图所需的所有节点形状(例如“文档”、“预定义流程”等)。幸运的是,一个名叫 Jason Brazile 的人创造了一个不错的图书馆缺失的形状。但是,它仅在使用 PostScript 驱动程序 ( dot -Tps) 时有效。

GraphViz 中有两个基本的 PostScript 驱动程序:不支持 Unicode 的内置驱动程序,以及支持 Unicode 的 Cairo,但显然不支持外部 PostScript 程序(结果布局中不存在用户定义的 PS 形状)。

问题: 如何使用UTF-8标签同时绘制流程图形状?

答案1

我向 GraphViz 开发人员询问了这个问题,看起来答案是没有办法做到这一点:

我们几年前就研究过这个问题。本机 graphviz -Tps Postscript 驱动程序没有任何自定义字体加载功能。正如这里提到的: http://tldp.org/HOWTO/Unicode-HOWTO-5.html
在 Postscript 中渲染 utf-8 字体是一项自己动手的工作。这可能需要数周或数月的工作,但如果您想尝试对 graphviz 进行此修改,则可以从该网站提到的其他工具之一中获取合适的代码。 (确保它是非GPL代码,否则无法分发!)

另一种选择是修改 cairopango 驱动程序,以便在加载用户形状后在其顶部呈现文本。 (我们还没有支持这一点吗?这似乎很明显。)然后要么找到一种方法来渲染外部 graphviz PS 形状,然后将渲染的图像复制到 cairopango 画布中(嘿,我们已经将 Ghostscript 导入到 graphviz 中),或者转换自定义PS 从外部塑造成可由 cairopango 驱动程序加载的图像。这可能不需要那么多时间。

无论哪种方式,都需要专业的 C 程序员。

可能我们都没有太多时间来做这件事(我们的时间最好用来尝试以更一般的方式获得资金来支持该项目,但我们现在都有其他工作),但你可以在 bountysource 上提供赏金,看看会发生什么....

相关内容