我在* nix-like系統(OS X 10.6.8,各種風格的Linux)上從Gearman PHP進程運行inkscape
,將SVG圖像轉換爲PNG或PDF格式。我用的是這樣的(添加這裏只是爲了清楚起見,換行符):在沒有X服務器的情況下運行inkscape
/full/path/to/inkscape -z \
--export-png=/path/to/output.png \
--export-width=100 --export-height=100 \
/path/to/input.svg
它的工作原理,但儘管-z標誌(「不使用X服務器」)我得到這個在我的控制檯輸出(OS X):
Setting Language: .UTF-8
(process:44699): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
Xlib: extension "RANDR" missing on display "/tmp/launch-WvcqRh/org.x:0".
這表明,我認爲Inkscape中加載多個庫比實際需要的,而且它可能會更快,如果它不試圖連接到X服務器。但是,除了使用-z/--without-gui
標誌之外,我不確定要嘗試什麼。在我的開發機器上的性能仍然是亞秒(至少對於簡單的SVG文件),但如果可以的話,我想清除它。即使最好的答案只是「抑制錯誤輸出」!
也許如果我關閉或重置一個bash DISPLAY env var?我對X完全不熟悉。
謝謝,我會給'DISPLAY'的事情一去,並會報告回來!如果這樣做不會產生結果,我會嘗試使用Xvfb,但是我會以低的VPS運行這個系統,所以我想盡量減少額外的軟件。 – halfer 2012-04-03 14:24:25
Btw;我已經嘗試過'svg2pdf',當然在我的Mac上,它似乎沒有做好渲染Inkscape SVG文檔的工作 - 來自單個家族的各種字體樣式都被渲染爲默認變體。 (也許我需要在這裏配置一些東西,但是'inkscape'只是讓它發揮作用)。 – halfer 2012-04-03 14:26:12
我已經嘗試過'DISPLAY =''inkscape --export-png = output.png input.svg'並且還有一個bash腳本,用'unset DISPLAY'和'inkscape'命令,既不抑制'Gtk-WARNING 」。像你一樣,我寧願期待那個工作 - b! – halfer 2012-04-06 17:19:37