2016-07-19 11 views
1
Private Sub document_PrintPage(ByVal sender As Object, _ 
    ByVal e As System.Drawing.Printing.PrintPageEventArgs) _ 
     Handles docToPrint.PrintPage 

    ' Insert code to render the page here. 
    ' This code will be called when the control is drawn. 

    ' The following code will render a simple 
    ' message on the printed document. 
    'Dim text As String = "In document_PrintPage method." 
    'Dim printFont As New System.Drawing.Font _ 
    ' ("Arial", 35, System.Drawing.FontStyle.Regular) 

    '' Draw the content. 
    'e.Graphics.DrawString(text, printFont, _ 
    ' System.Drawing.Brushes.Black, 10, 10) 
End Sub 

この手順を呼び出して印刷用のドキュメントをレンダリングするプリンタダイアログボックスを表示するコードがあります。印刷したいドキュメントは、URLからHTMLウェブページとしてアクセスでき、ウェブページは印刷可能であると理解されています。上記のサンプルコードは、文字列をレンダリングするだけで、私が必要とすることはしません。私はsystem.drawing.graphics.drawimageを使用することを考えていましたが、これを動作させることができます。何か案は?私は、HTMLページを画像データ型に変換するプロセスを完全に描写するのに問題があります。それが必要でないならば、すべてが良い。printdocumentクラスのイメージを持つhtmlドキュメントをどのようにレンダリングして印刷できますか?

答えて

0

System.Windows.Forms.WebBrowserを使用できない理由はありますか?

これは、あなたの仕事をより簡単にするように思われるPrint()メソッドを持っています。 。 。 8-)

印刷用のHTMLを画像にレンダリングするのは簡単な作業ではありません。どちらか一方の方法で、それを行う方法を知っている図書館を活用する必要があります。

+0

あなたの答えをお寄せいただきありがとうございます。上記のコードは私の実際のニーズには役に立たなかったでしょうが、vb.netのIDEデバッガでコードを実行したことが原因であることは明らかでした。これは、リモートで起動されたWebページから呼び出せるものである必要があります。上記のコードはサーバー側でのみ実行されます。私は、リモートで表示されたプリンタダイアログのjavascriptプリントボックスに切り替えました。私はこれの私の現在の状態を私の回答として掲示しました。 –

0

まず、JavaScriptの関数を使用してクライアント側を実行するようにプリンタのダイアログ呼び出しを変更しました。それは簡単だった。次に、ソースとしてロードされた衛星地図を囲む矩形に印刷する領域をiframeに分離することでした。私の理解としては、javascriptのプリンタダイアログは、ページ全体をプリンタにダンプするので、私はいくつかのことを試み、最終的にプリンタダイアログとiframeを呼び出すhtmlボタンタグを持つaspパネルのdivセクションにiframeを囲みました。これは地図を印刷するだけで十分でした。これを可能にするために必要なことの1つは、サブドメインを使用してブラウザを欺いて、iframeホストとドキュメントホストが同じドメインにあると考えるようにすることです。私はすでにマッピング会社とローカルホスティング会社と協力していました。その部分を完成させてください。残りの唯一のことは、クリックしてプリンタダイアログを開くときに、マップの選択されたズームステータスを保持するiframeを取得することです。私は、アスペクトパネルのビューをフリーズさせる方法や、それを可能にする可能性のあるその他のトリックを得る方法に関する意見について別の質問を掲示します。

+0

私は今夜私たちのマッピングiframeの自宅でのJavaScriptの印刷をテストすることができました。印刷のためにhtmlボタンをクリックしたときのiframeのリフレッシュズームに関する私の懸念は、明らかに何の理由もありませんでした。ズームアウトが発生する前にイメージがプリンタに送信されました。ズームの任意のレベルでマップのスナップショットを取得できます。これは私が必要としていたものです。これは現状のまま行われているか、マッピング・ツールバーを使わずにマップを表示できるようになるとすぐに実現すると思います。現時点では、ツールバーをマウスクリックで引っ込めることができます。 –

関連する問題