2012-03-12 169 views
1

我正在使用.NET(VB)圖形以預定義的格式(如納稅表單)打印/預覽報告,這很適用。VB.NET PrintDialog打印到文件

我還希望能夠累積一個或多個不同的報告並將它們保存到文件中以便稍後轉換爲PDF或使用XPS打印驅動程序來打印它們。

當我檢查「打印到文件」框(對於常規激光打印機或XPS打印驅動程序),並單擊「打印」時,我沒有打開文件對話框,因爲本文建議我應該(http://www.functionx.com/vcnet/controls/print.htm) 。該操作似乎正常進行,但我不知道在哪裏可以找到該文件,如果實際上創建了該文件。

我錯過了什麼?任何人都可以提供一個積累圖形報告和打印或打印到文件的替代方法嗎?

TIA爲您的時間。

+0

爲什麼不直接使用PDF打印機?像[PDFCreator](http://sourceforge.net/projects/pdfcreator/)或[BullZip](http://www.bullzip.com/)? – Steve 2012-03-12 23:04:10

+0

我會考慮一個PDF打印機。他們可以輕鬆地安裝(以編程方式)在任何Windows平臺上?不幸的是,這兩個鏈接都相當可疑。 PDFCreator對於與Babylon Toolbar進行整合的評價很差,BullZip鏈接不可用。 – 2012-03-12 23:47:19

+0

對於PDFCreator我不能說。剛剛被拒絕,因爲它很沉重,因爲我今天非常滿意地使用BullZip。現在測試鏈接並運行良好。 '以編程方式安裝'?我認爲不,你應該在你的應用程序安裝過程中將他們的設置包含在你的內部,或指導你的客戶如何安裝。如果您在網上搜索'PDF Printer',您可以找到其他解決方案的鏈接。 – Steve 2012-03-12 23:50:52

回答

1

打印對話框實際上是否與PrintDocument實例關聯?這樣的代碼效果很好:

private void button1_Click(object sender, EventArgs e) { 
     printDocument1.PrinterSettings.PrintToFile = true; 
     printDocument1.PrinterSettings.PrintFileName = @"c:\temp\test.xps"; 
     printDocument1.Print(); 
    } 
+0

感謝漢斯。我得到一個拒絕訪問錯誤,但至少它似乎試圖寫入一個文件。你碰巧知道這個錯誤的解決辦法嗎? – 2012-03-13 00:54:30

+0

通過另一個文件名,我想。使用appdata路徑。 – 2012-03-13 01:00:16

+0

寫入文件並打開後,XPS Viewer報告無法打開此文檔。這是因爲它是使用Graphics對象編寫的嗎? – 2012-03-13 01:05:13

0

爲什麼不使用PDF打印機?在網絡上你會找到許多免費的解決方案。
我更喜歡的是BullZip,但還有其他選擇。如果您尋找這種解決方案,請注意死衚衕(例如廣告軟件工具欄或奇怪的許可條款)。
但是,這種情況具有一定的優勢,就像您可以將文件夾定義爲文檔庫一樣,並且每次打印時,PDF打印機都會記住要在哪裏創建PDF文檔。