1

プログラムでPDFドキュメントを印刷するにはどうすればよいですか?

次のコードを使用してPDFファイルを印刷していますが、印刷アイコンを直接クリックすると印刷が開始されますが、必要ありません。

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

私のCsコードは

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

    }      

ユーザーが印刷アイコンをクリックしたときに印刷ダイアログボックスを開きたい.ユーザーが印刷ダイアログボックスの印刷ボタンをクリックすると、ドキュメントの印刷を開始したい. 私のPDFファイルはサーバー上のフォルダーにあります。asp.netでプログラムによって印刷したいのです。

4

2 に答える 2

2

このコードは、クライアントではなくサーバーで実行されます。サーバーとクライアントを開発している間、同じマシン、ローカルワークステーションです。展開されると、これはユーザーのローカル ワーク ステーションではなく、サーバー上で実行されます。

JavaScriptを使用して印刷ダイアログボックスを開くことができます

window.print();

ただし、ドキュメントではなく、Web ページ全体が印刷されます。

PDF のみを印刷する場合は、ファイルをブラウザーにストリーミングする必要があります (Web フォーム全体ではありません)。その後、ユーザーは Adob​​e Reader 内のネイティブの印刷オプションを利用できます。ドキュメントをクライアントのブラウザにストリーミングする方法については、オンラインで多くの例があります。

于 2013-04-15T13:19:58.627 に答える
0

この投稿を見てください

このコードは、pdfを印刷するためのjavascript行を追加します

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
于 2014-02-06T09:17:56.583 に答える