我在写一个新的WPF应用程序,它创建一些可视元素,然后尝试在Poloroid打印机上打印它们。我成功地打印使用WPF的System.Printing类如下:WPF使用Magstrip编码打印到打印机
Dim Pd As PrintDialog = New PrintDialog()
Dim Ps = New LocalPrintServer()
Dim PrintQueue = New PrintQueue(Ps, "Poloroid Printer")
Pd.PrintQueue = PrintQueue
Pd.PrintVisual(Me.Grid1, "Print Job 1") 'this prints out perfectly
的问题是,poloroid打印机,您可以使用写入Magstrip在卡背面的SDK。我有一个使用System.Drawing.Printing中的PrintPageEventArgs的工作示例,但是我找不到WPF世界的任何近似匹配。下面是该代码:
Private Sub PrintPage(ByVal sender as Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
'...
' Obtain the device context for this printer
deviceContext = e.Graphics.GetHdc().ToInt32()
'... device context is used in SDK to write to magstrip
e.Graphics.ReleaseHdc(New IntPtr(deviceContext))
End Sub
所以,我的问题是:
如何打印使用System.Drawing.Printing
OR
我现有的标记(XAML)是否有在System.Printing
事件与SDK交谈并获取Int32
deviceContext?
,我试图RenderTargetBitmap
类呈现视觉WPF中位图和转换位图System.Drawing.Bitmap
RenderTargetBitmap bitmapSource;
...
bitmapSource.Render(visual);
...
using(MemoryStream outStream = new MemoryStream())
{
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(bitmapSource));
enc.Save(outStream);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(outStream);
...
}
但印刷不清晰,完美。
相关:http:// stackoverflow。COM /问题/ 4544035/ID卡,磁条编码 – naveen 2011-01-12 12:29:58