2
我試圖在由exe程序(phantomjs)生成的PDF中打印中文字符。但是這些字符最終爲「?」。該進程是在C#中的一個工作者角色中創建的。不使用字體的過程
當在同一個虛擬機的cmd窗口中手動創建相同的進程時,一切正常。
但是,中文語言包已安裝,但可以使用可以手動成功創建PDF的相同管理員帳戶。
爲了確保所有用戶都看到語言包中相同的字體,我將設置添加到機器上的所有系統用戶as described here。
的理線從C#開始這樣
Process.Start(new ProcessStartInfo
{
UseShellExecute = true,
FileName = "phantomjs.exe",
Arguments = "pdf.js"
});
那麼怎麼會這樣,我的手動CMD窗口過程使用中國的字體正確,但不是由C#啓動的進程?
很難說不知道'phantomjs'在做什麼。但是一般來說,不能設計成在非交互式環境下運行的程序是不能這樣做的。如果將其配置爲以真實用戶帳戶運行,特別是至少交互式登錄一次的用戶帳戶,可能需要檢查它是否可行。 –
@HarryJohnston Phantomjs是一款無頭瀏覽器。我使用它的方式是呈現靜態html頁面,在javascript中添加內容,然後打印到pdf或甚至PNG截圖。與使用常規瀏覽器相同,但不是交互式。不尋常的是,字體在服務器端而不是客戶端使用。 –
讓我改述一下:難以說沒有看到失敗的'phantomjs'內的特定代碼。 –