2016-04-22 11 views
0

Ich verwende das Neodynamic SDK, um Dokumente auf der Client-Seite zu drucken.Drucken eines anderen Dokuments mit verschiedenen Schaltflächen

Wir werden 5 Dokumente zum Drucken haben. Ich sehe, wie man entweder 1 Dokument druckt oder alle Dokumente druckt, aber gibt es eine Möglichkeit, 1 Dokument pro Knopf zu drucken. I.e. button1 doc1 ausdruckt, button2 druckt doc2 usw.

Hier ist, was ich habe bisher

<script runat="server"> 

     Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) 
      fileone() 
      filetwo() 

     End Sub 

     Public Sub fileone() 
      Dim fileToPrint As New PrintFile(Context.Server.MapPath("~/forms/xmlheader.txt"), "xmlheader.txt") 
      If (WebClientPrint.ProcessPrintJob(Request)) Then 

       'Create a ClientPrintJob 
       Dim cpj As New ClientPrintJob() 
       'set client printer, for multiple files use DefaultPrinter... 
       cpj.ClientPrinter = New DefaultPrinter() 
       'set files-printers group by using special formatting!!! 
       'Invoice.doc PRINT TO Printer1 
       cpj.PrintFile = fileToPrint 
       'send it... 
       cpj.SendToClient(Response) 
      End If 
     End Sub 
     Public Sub filetwo() 
      Dim fileToPrint As New PrintFile(Context.Server.MapPath("~/forms/ How To Recover Office Doc.pdf"), " How To Recover Office Doc.pdf") 
      If (WebClientPrint.ProcessPrintJob(Request)) Then 

       'Create a ClientPrintJob 
       Dim cpj As New ClientPrintJob() 
       'set client printer, for multiple files use DefaultPrinter... 
       cpj.ClientPrinter = New DefaultPrinter() 
       'set files-printers group by using special formatting!!! 
       'Invoice.doc PRINT TO Printer1 
       cpj.PrintFile = fileToPrint 
       'send it... 
       cpj.SendToClient(Response) 
      End If 
     End Sub 



     Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
      fileone() 
      ScriptManager.RegisterStartupScript(Me, Me.GetType(), "printForm1", "printForm1();", True) 
     End Sub 

     Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
      filetwo() 
      ScriptManager.RegisterStartupScript(Me, Me.GetType(), "printForm2", "printForm2();", True) 
     End Sub 
</script> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
<title>How to print multiple files to client printers from ASP.NET</title> 
<script type="text/javascript"> 
    function printForm1() { 
     jsWebClientPrint.print(fileone()); 
    } 
    function printForm2() { 
     jsWebClientPrint.print(filetwo()); 
    } 
</script> 
</head> 
<body> 
<%-- Store User's SessionId --%> 
<input type="hidden" id="sid" name="sid" value="<%=Session.SessionID%>" /> 

<form id="form1" runat="server"> 

<h1>How to print multiple files to client printers from ASP.NET</h1> 
Please change the source code to match your printer names and files to test it locally 
<br /><br /> 
&nbsp;<%-- Add Reference to jQuery at Google CDN --%><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script><%-- Register the WebClientPrint script code --%><%=Neodynamic.SDK.Web.WebClientPrint.CreateScript()%>&nbsp;&nbsp;&nbsp;&nbsp; 
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" 
    Height="156px" Width="156px" /> 
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" Height="156px" Width="156px"/> 
<asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text="Button" 
    Height="156px" Width="156px"/> 
<asp:Button ID="Button4" runat="server" onclick="Button4_Click" Text="Button" 
    Height="156px" Width="156px"/> 
<asp:Button ID="Button5" runat="server" onclick="Button5_Click" Text="Button" 
    Height="156px" Width="156px"/> 
    </form> 

</body> 
</html> 

Ich dachte an wechselnden filetwo() Variable cpj2 clientprintjob ...

+0

Was ist passiert, als Sie daran gedacht haben, die Variable filetwo() in clientprintjob cpj2 zu ändern? – Mogsdad

+0

Zwei der gleichen Datei druckt –

Antwort

0

Was Sie müssen eine Funktion namens PrintDoc() erstellen, die den Pfad der zu druckenden Datei als Parameter erhält. Die Signatur sollte wie folgt aussehen:

Private Sub PrintDoc(path as String) 

End Sub 

Sie müssen diese Funktion nur einmal und keine Notwendigkeit für Unter fileone() und Unter filetwo() ... wieder (auf filefive). Sie brauchen nur dieses eine Sub namens PrintDoc (Pfad als String)

Dann brauchen Sie 5 Buttons, jedes mit seinem eigenen Ereignis _Click() und in diesem Event-Handler rufen Sie die PrintDoc-Prozedur auf, indem Sie jedes Mal einen anderen Parameter übergeben.

Hoffe, das hilft.

Viel Glück!

+0

scheint nur während page_init() zu drucken, wenn ich das Sub erstellen, wird es nie ausgelöst webclientprint.processprintjob (Anfrage) –

+0

Ich erhalte Fehler Der PrintJob Inhalt ist nicht gültig. Der Druckauftragsprozess wurde abgebrochen –

Verwandte Themen