0

Neodynamic SDK を使用してドキュメントをクライアント側に出力しています。

印刷するドキュメントは 5 つです。1 つのドキュメントを印刷する方法またはすべてのドキュメントを印刷する方法はわかりますが、ボタンごとに 1 つのドキュメントを印刷する方法はありますか。つまり、button1 は doc1 を印刷し、button2 は doc2 を印刷します。

ここに私がこれまでに持っているものがあります

  <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>

filetwo() 変数を clientprintjob cpj2 に変更することを考えました...

4

1 に答える 1

0

必要なのは、印刷するファイルのパスをパラメーターとして受け取る PrintDoc() という関数を作成することです。署名は次のようになります。

Private Sub PrintDoc(path as String)

End Sub

この関数は一度だけ必要で、サブ fileone() とサブ filetwo() ... 最大 filefive() は必要ありません。PrintDoc(path as String) と呼ばれるこの 1 つのサブが必要です。

次に、それぞれ独自の _Click() イベントを持つ 5 つのボタンが必要です。そのイベント ハンドラーで、毎回異なるパラメーターを渡して PrintDoc プロシージャーを呼び出します。

お役に立てれば。

幸運を!

于 2016-04-22T17:40:48.753 に答える