2011-03-18 80 views
1

我有一個C#.NET Winform應用程序,使用它可以打印賬單等。在Winform應用程序中打印

但是打印將由使用DMP打印機的用戶完成。

所以有可能將打印發送到winform應用程序中的DMP打印機。如果是,那麼如何?

此外,我有一個窗體中的DataGridView。現在我想打印顯示在gridview中的表格。我該怎麼做呢?我必須使用Crystal Reports還是其他?

+1

關於通常從.NET/C#打印:當我們開始我們的第一個大型winforms-CRUD-app時,我還擔心打印。因爲我真的不喜歡水晶報告,所以我們購買了第三方報告套件(在我們的例子中是DevExpress XtraReports,但也有其他的)。我第一次不願意花這筆錢,但今天我很開心,我這樣做了。 – 2011-03-18 07:40:46

回答

2

那麼不知道這個答案,你很好,但我會用PDF夏普或Migra文檔從您的數據genereate的PDF文件,並從那裏打印,這樣我就不會做打印機DMP設置(我猜)

最簡單和最快捷的解決方案是使用Visual Basic PowerPack的PrintForm控件(也可以在C#項目中使用它)。

http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx

只需拖動控制上窗體,然後從代碼調用

printForm1.Print(); 

這將打印無論是形式,所以只設計一個表格報表然後調用代碼,你完成了。 看看Print the form (Visual C#)你也可以使用VB電源包

+0

但在Visual Studio中提供的水晶報表和簡單報表怎麼樣?我可以使用它們嗎? – sqlchild 2011-03-18 07:23:52

+0

@Afnan:先生,根據我的說法,當我們打印winforms時,圖像被髮送到打印機,對不對?如果是的話,那麼當我使用DMP打印機,然後打印一個記錄表,這將需要幾個小時,因爲DMP是爲RAW打印而不是圖像 – sqlchild 2011-03-18 07:48:30

+0

@Afnan:同樣,如果我使用PDF Sharp或Migra文檔,那麼打印將作爲圖像或原始數據發送到DMP打印機? – sqlchild 2011-03-18 07:49:38

1

你只能做類似於C#的代碼來打印任何文檔或頁面。

PrintDialog類P1 =新PrintDialog類()

p1.ShowDialog();

+0

也,它會工作的DMP打印機。它不應該將它作爲圖像發送到打印機,而是作爲原始數據發送,否則DMP打印機將花費數小時來打印數據 – sqlchild 2011-03-18 07:47:11

1

我會使用visual studio的emmbeded控件calles「ReportViewer」控件。 您可以在工具箱的「報告」部分找到它。 請注意,你需要有一個應用程序,目標的框架3和以上,讓你看到這個控制。 在此控件中,您可以打印到選定的打印機,導出爲pdf,word和excel。

檢查出來。

0

我知道這裏已經有了一個可以接受的答案,但是我希望爲最近發現的YouTube教程添加一個新鏈接。 Print receipt

乾杯。