2013-04-15 231 views
1

如何以編程方式打印PDF文檔?以編程方式打印PDF文檔

我使用follwing代碼來打印PDF文件。但是當我直接點擊打印圖標開始打印。但我不希望它。

<asp:ImageButton ID="PrintButton" runat="server" ImageUrl="~/images/print-icon.png" 
        OnClick="PrintButton_Click" ToolTip="Print Document" /> 

我銫代碼爲

protected void PrintButton_Click(object sender, EventArgs e) 
    { 
     ProcessStartInfo infoPrint = new ProcessStartInfo(); 
     infoPrint.FileName = Session["filename"].ToString(); 
     infoPrint.Verb = "PrintTo"; 
     infoPrint.CreateNoWindow = true; 
     infoPrint.WindowStyle = ProcessWindowStyle.Normal; 
     infoPrint.UseShellExecute = true; 
     Process printProcess = new Process(); 
     printProcess = Process.Start(infoPrint);    

    }  

我想開一個打印對話框,當用戶點擊打印icon.if在打印對話框上的打印按鈕,用戶點擊的話,我想開始打印文檔。我的PDF文件位於服務器上的文件夾中,我希望它可以通過編程方式在asp.net中打印。

+0

我假設你想被連接到服務器的打印機上打印的文檔,對不對? – yms

+0

我希望它被打印在客戶端machine.means與打印機連接到客戶端的系統。@ yms – Gajawada

+0

您可能會覺得這篇文章很有用:[生成PDF,自動打印](http://stackoverflow.com/問題/ 6167995 /生成-A-PDF-是 - 自動 - 打印) – yms

回答

2

此代碼將在服務器上運行,而不是在客戶端上運行。同時開發服務器和客戶端是同一臺機器,即本地工作站。一旦部署完成,這將在服務器上執行,而不是在用戶的本地工作站上執行。

您可以使用JavaScript

window.print(); 

但是要打印的整個webapge,而不是文檔專門開闢一個打印對話框。

如果您只想打印PDF,則需要將文件傳輸到瀏覽器(而不是整個網絡表單)。然後用戶可以利用adobe reader中的原生打印選項。網上有很多關於如何將文檔傳輸到客戶端瀏覽器的示例。

0

看一看This posst

該代碼添加JavaScript行打印PDF

Public Shared Function PrintJStoPDF(thePDF As Byte(), direct As Boolean) As Byte() 


    Dim BB As Byte() = Nothing 

    Using ms As New MemoryStream 
     Using reader As New PdfReader(thePDF) 
      Dim stamper = New PdfStamper(reader, ms) 

      Dim jsText As String = "var res = app.setTimeOut('this.print({bUI: true, bSilent: " & direct.ToString.ToLower & ", bShrinkToFit: false});', 200);" 

      stamper.JavaScript = jsText 

      stamper.FormFlattening = True 
      stamper.Writer.CloseStream = False 
      stamper.Close() 


      ms.Position = 0 

      BB = ms.ToArray 
     End Using 
    End Using 

    Return BB 

End Function