- - PR -
printdocumentからimageを作る方法
«前のページへ
1|2|3|4
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-21 15:05
今日は、PreviewPrintControllerを継承したFile出力Controllerを作り
NSSPRNXAで操作後PrintDocument1のPrintControllerとして設定 これでいけませんか? Public Class Print2File : Inherits PreviewPrintController Private met As Metafile Private ofile As String = "" Sub New(ByVal file As String) ofile = file End Sub Public Overrides Sub OnEndPage(ByVal doc As PrintDocument, ByVal e As PrintPageEventArgs) MyBase.OnEndPage(doc, e) Dim pageinfos() As PreviewPageInfo = GetPreviewPageInfo() Dim pageinfo As PreviewPageInfo = pageinfos(pageinfos.Length - 1) Dim img As Image = pageinfo.Image met = CType(img, Metafile) Dim bm As Bitmap = New Bitmap(e.PageBounds.Width, e.PageBounds.Height) Dim g As Graphics = Graphics.FromImage(bm) g.Clear(Color.White) Dim cb As Graphics.EnumerateMetafileProc = New Graphics.EnumerateMetafileProc(AddressOf PlayRecord) g.EnumerateMetafile(met, New Point(0, 0), cb) bm.Save(ofile, System.Drawing.Imaging.ImageFormat.Jpeg) End Sub Protected Function PlayRecord(ByVal recordType As EmfPlusRecordType, ByVal flags As Integer, ByVal dataSize As Integer, ByVal data As IntPtr, ByVal callbackData As PlayRecordCallback) As Boolean Dim dataArray() As Byte = Nothing If Not data.Equals(IntPtr.Zero) Then ReDim dataArray(dataSize) Marshal.Copy(data, dataArray, 0, dataSize) End If met.PlayRecord(recordType, flags, dataSize, dataArray) Return True End Function End Class 印刷処理の最後に追加 Dim pc As PrintController = New Print2File(出力ファイル名(.jpg)) PrintDocument1.PrintController = New PrintControllerWithStatusDialog(pc, "Exporting") PrintDocument1.Print() | ||||
|
投稿日時: 2006-01-24 17:20
流行のタミフルを服用していました。
返信が遅くなってすみません。
試してみました。 バッチリ動いています。 でも知らない関数がちらほら・・・ もっと精進します。 書き込みしていただいた皆さん、ありがとうございました。 |
«前のページへ
1|2|3|4