2013-03-12 109 views
1

我開發了用於打印(C#MVC 4)的Web服務,該服務創建XPS文檔,然後通過各種打印機服務器(MS)將它們打印到各種打印隊列。對於Sharp打印隊列,這一切都可以正常工作,但打印到Lexmarks時所有字體數據都會丟失,儘管字體大小保持正確。在XPS查看器中查看時,XPS文檔全部正確顯示,並且通過查看器通過打印服務器打印出Lexmarks時正常工作。字體位於打印服務器上,Sharp隊列與Lexmarks位於相同的打印服務器上,字體均在XPS文檔中指定。更改Lexmark打印機設置,驅動程序等似乎沒有區別。XPS打印:在Lexmark打印機上丟失字體

在這裏唯一相關的問題(從一年前開始)說MS解決方案是由於字體轉換錯誤而在進行服務器端打印時關閉打印假脫機程序。

我知道這是一個非常模糊的問題,但如果任何人已經經歷了這種痛苦,並有任何提示如何解決這個問題,我會很感激。

+0

我一直在尋找一個解決方案這一段時間,它不只是利盟的驅動程序,我看到了與其他打印機相同的東西。它似乎與從Windows服務打印有關。它似乎在V4驅動程序(基於XPS)中得到了修復,所以我猜測MS不會對此做任何事情,只是等待打印機制造商將其驅動程序遷移到最新的規格。 – 2013-12-29 19:09:11

回答

1

好了,沒有太多去,但我懷疑三兩件事:

  1. XPS文檔你是生產引用的字體不嵌入他們在您的服務器上
  2. 利盟打印驅動程序XPS驅動
  3. 字體未安裝在打印機本身上。

假設我是對的,更改其中的任何三個事實應該糾正這種情況,但我做出#3沒有保證的。

發生這種情況的原因是直到XPS被光柵化時才使用字體 - 將其轉換爲原始圖像數據。我懷疑,在利盟案件中,這是發生在設備上,而在夏普案件中,它發生在打印服務器上。這得益於從XPS查看器打印XPS文檔正常工作的事實,因爲這會導致查看器正在運行的計算機上發生光柵化。

在打印服務器上使用非XPS驅動程序會導致性能下降。打印服務器將有效地將XPS轉換爲GDI,然後非XPS驅動程序將轉換爲另一個PDL,如PostScript或PCL。我懷疑夏普驅動程序就是這種情況,不過也可能是夏普驅動程序是在主機上執行光柵化的XPS驅動程序。

+0

感謝您的詳細回覆,指針和感覺。我今天正在調查這件事,把所有事情都分解成基本的東西,你的回答給了我指定的領域。 – user1999476 2013-03-13 06:05:30

+0

根據規範,XPS文檔必須包含所有引用的資源,包括字體,如果不是,那麼它不是有效的XPS文檔。 – 2013-12-29 19:06:08

1

行..經過大量測試後發現了以下內容(並可能對其他人有所幫助)。

回答上述問題.. 1)嵌入字體確認並使用MS官方測試XPS文件。這並沒有幫助。 2)使用的Lexmark驅動程序是winprint> RAW。改變這並沒有幫助。 2)字體安裝在打印機上

測試 1)新的打印服務器,直接打印到尖銳的打印機。問題出現在字體丟失。解決方法是將打印後臺處理程序設置更改爲僅在打印完所有文檔後纔打印。問題消失了,但我不想依賴配置需要專家設置的打印機的人員,所以我拒絕了這一點。這是客戶的網絡,我無法控制它。 2)打印到打印服務器上的現有Web服務(使用用戶模擬)到Sharp隊列以確認這仍然起作用。證實。

3)將打印服務器上的現有Web服務(使用用戶模擬)打印到Lexmark隊列中,但仍然失敗並且字體丟失。 4)從2個單獨的IIS盒打印到Lexmark隊列的打印服務器(使用域應用程序池標識帳戶),並且現在可以正常工作(在c#new printserver(\ printerservername)中),因爲Lexmarks正確打印。打印到Lexmark隊列的打印服務器上的現有Web服務(使用域應用程序池標識帳戶),但仍然失敗(在c#new localprintserver()中)。

6)打印到現有Web服務(使用打印服務器到利盟隊列域上的應用程序池標識帳戶),這仍然失敗(在C#中新的打印服務器(\ printerservername))

所有這一切的結果如果您在本地打印字體由於某些奇怪的原因而丟失,但是如果您遠程打印,字體將保留。所有服務器都具有相同的基本設置(沒有xps查看器等,域應用程序池帳戶是服務帳戶),我可以看到的唯一區別是新的本地打印服務器針對新的打印服務器(\ printservername)調用。使用web配置文件保存本地或遠程設置,將相同的代碼從機器移植到機器。所有機器都具有IIS 7.5 .net 4.5 MVC 4並位於可信區域中。

因此,我的解決方案將被拆分,非遠程打印將在遠程打印服務器服務的文檔生成器上執行,並且Sharp打印將在打印服務器上完成(這是Equitrac「follow me」打印所需的),因爲我不想使用Kerberos代表團。如前所述,這不是我的領域,我可以看到整個地方磨損停止打印明智的失敗spn或kerberos失敗。

無論如何,希望這可以幫助別人。