2016-01-13 160 views
0

目前我遇到這樣的問題,即從我們的c#內核進行打印時,使用其嵌入字體的矩陣打印機上的打印不起作用。打印機/水晶報告總是將字體更改爲某些窗口字體。由於這個事實,打印單頁非常慢。使用c#和水晶報告在矩陣打印機上打印

如果我直接用水晶報表設計器打印,一切工作都很好,並使用正確的字體。所以它工作,但不是從C#打印時。這意味着,驅動程序和打印機運行良好,並且水晶報告也可以將所有內容發送到打印機。就在我開始在.net應用程序中打印時,它不起作用。

在報告中設置了正確的打印機,並且我不覆蓋任何設置。我只是創建報告並打印它:

private ReportDocument reportDocument = new ReportDocument('C:\\Rpt\\Test.rpt'); 
// Passing parameter and every thing to the report 
// Than print it: 
reportDocument.PrintOptions.PrinterName = "Tally"; 
reportDocument.PrintToPrinter(1, false, 0, 0); 

水晶報告中的.net打印引擎/運行時是否有一些錯誤?我的設計師沒有使用.net爲此,所以其他組件將被使用,這是有效的。

EDIT

this article從樹液SNC,我發現:

FYI - CR設計器使用DEVMODE結構訪問打印機,.NET使用>在系統.NET框架equivolent .Drawing.Printing.PrinterSettings

也許這是問題?

編輯2

使用Crystal Reports RAS進行打印,可以解決這個問題。我會試一試,讓你知道。

謝謝大家!

回答

0

我不會說這是因爲運行時,而是因爲.NET接口調用Crystal Reports引擎的選項。通常情況下,您可以重新構建目標系統/打印機內置的字體。我不是Crystal Reports的專家,但是在PostScript和PDF中,您可以在文檔中嵌入必要的字體,也可以讓輸出設備使用自己的字體。 CR必須具有類似的選項,但在客戶端軟件中使用它時,必須明確地激活它。

+0

我無法嵌入這些字體,因爲它們不是TrueType字體。但是,謝謝:) – BendEg

+0

我不是指嵌入到PDF中的字體,而是打印機內置的字體。您基本上必須強制CR引用它發送到打印機的文檔中的打印機字體。 – Neppomuk

+0

我做過了,使用PrintToPrinter時似乎不起作用。使用RAS解決了這個問題 – BendEg

相關問題