Unicode

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

  • July 7, 2016

目標:繪製一個包含非拉丁語符號的流程圖。

問題:GraphViz 不提供繪製流程圖所需的所有節點形狀(例如“文件”、“預定義流程”等)。幸運的是,一個名叫 Jason Brazile 的人創建了一個很好的缺失形狀庫。但是,它僅在使用 PostScript 驅動程序 ( dot -Tps) 時有效。

GraphViz 中有兩個基本的 PostScript 驅動程序:不支持 Unicode 的內置驅動程序,以及支持但顯然不支持外部 PostScript 程序的 Cairo(使用者定義的 PS 形狀在結果佈局中不存在)。

問題:如何同時使用 UTF-8 標籤流程圖形狀?

我向 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 上提供賞金並查看發生什麼了….

引用自:https://unix.stackexchange.com/questions/269659