支持打印RasterImage.
公共类RasterImagePrinter
公共类RasterImagePrinter
公共ref类RasterImagePrinter
的RasterImagePrinter提供属性和方法,以使打印过程RasterImage更容易。
使用.NET框架进行打印涉及到向System.Drawing.Printing.PrintDocument.PrintPage事件。类的新实例RasterImagePrinter类,按需要设置其属性,然后调用打印方法将RasterImage要打印,打印的页码和System.Drawing.Printing.PrintPageEventArgs通过您的System.Drawing.Printing.PrintPageEventHandler.
注意:RasterViewerCenterMode类型在版本15中被重命名。使用RasterPaintAlignMode枚举。
使用Leadtools;
使用Leadtools.Controls;
使用Leadtools.Codecs;
//打印的图像
私人RasterImage myImage =零;
//当前打印的页码
私人intcurrentPrintPageNumber;
公共无效RasterImagePrinterExample ()
{
//检查这台机器上是否安装了打印机
如果(PrinterSettings。InstalledPrinters = =零|| printersettings . installedprinter . count < 1)
{
对话框。显示("这台机器上没有安装打印机");
返回;
}
//加载图像
使用(RasterCodecs codecs =新RasterCodecs ())
{
这.myImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,“Ocr1.tif”));
}
//创建打印文档对象
使用(PrintDocument文档=新PrintDocument ())
{
//设置文档页面
document.PrinterSettings.MinimumPage = 1;
document.PrinterSettings.MaximumPage =这.myImage.PageCount;
document. printersettings . fropage = 1;
document.PrinterSettings.ToPage =这.myImage.PageCount;
dialgresult result = dialgresult . ok;
//选择打印机
使用(PrintDialog printDlg =新PrintDialog ())
{
printDlg。文档=文档;
printDlg。AllowSomePages =真正的;
result = printDlg.ShowDialog();
}
//设置页面
如果(result == dialgresult . ok)
{
使用(PageSetupDialog pageSetupDlg =新PageSetupDialog ())
{
pageSetupDlg。文档=文档;
pageSetupDlg.ShowDialog ();
}
}
如果(result == dialgresult . ok)
{
//为开始/打印和结束打印事件添加处理程序
文档。BeginPrint + =新PrintEventHandler (document_BeginPrint);
文档。打印Page +=新PrintPageEventHandler (document_PrintPage);
文档。结束打印+=新PrintEventHandler (document_EndPrint);
//使用.NET打印预览对话框
使用(PrintPreviewDialog printPreviewDlg =新PrintPreviewDialog ())
{
printPreviewDlg。文档=文档;
printPreviewDlg。WindowState = FormWindowState.Maximized;
result = printpreviewdg . showdialog ();
}
}
}
//清理
这.myImage.Dispose ();
}
私人无效document_BeginPrint (对象发送者,PrintEventArgs e)
{
//重置当前页码
//由于我们正在使用打印预览对话框,这个事件将被调用两次(一次)
//生成打印预览和一次实际打印)。所以,我们必须后退一步
//到第一个打印页
PrintDocument文档=发送者作为PrintDocument;
这.currentPrintPageNumber = document. printersettings . fropage;
}
私人无效document_EndPrint (对象发送者,PrintEventArgs e)
{
//这里没什么可做的
}
私人无效document_PrintPage (对象发送者,PrintPageEventArgs
{
//获取打印文档对象
PrintDocument文档=发送者作为PrintDocument;
//创建一个新的LEADTOOLS图像打印机类
RasterImagePrinter打印机=新RasterImagePrinter ();
//设置文档对象,以便执行页面计算
打印机。打印文档=文档;
//我们想要将图像调整到最大打印区域
打印机。SizeMode = RasterPaintSizeMode.FitAlways;
打印机。HorizontalAlignMode = RasterPaintAlignMode.Center;
打印机。VerticalAlignMode = RasterPaintAlignMode.Center;
//传真图像的水平分辨率和垂直分辨率不同
打印机。UseDpi =真正的;
//打印整个图像
打印机。ImageRectangle = Rectangle.Empty;
//使用最大页面尺寸忽略页边距,这将相当于打印
//使用Windows照片库
打印机。PageRectangle = RectangleF.Empty;
打印机。UseMargins =假;
//打印当前页面
打印机。打印(这.myImage,这.currentPrintPageNumber e);
//进入下一页
这.currentPrintPageNumber + +;
//通知打印机我们是否有更多的页面要打印
如果(这.currentPrintPageNumber <= document.PrinterSettings.ToPage)
e.HasMorePages =真正的;
其他的
e.HasMorePages =假;
//从RasterImagePrinter解耦我们的PrintDocument
打印机。打印文档=零;
}
静态类LEAD_VARS
{
公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”;
}
进口Leadtools
进口Leadtools。控制
进口Leadtools。编解码器
进口Leadtools。画
“我们正在打印的图像
私人模板作为RasterImage =没有什么
当前正在打印的页码
私人currentPrintPageNumber作为整数
公共子RasterImagePrinterExample ()
检查这台机器上是否安装了打印机
如果PrinterSettings。InstalledPrinters是没有什么OrElsePrinterSettings.InstalledPrinters。数< 1然后
对话框。显示("这台机器上没有安装打印机")
返回
结束如果
载入图像
使用编解码器作为RasterCodecs =新RasterCodecs ()
我.myImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,“Ocr1.tif”))
结束使用
'创建打印文档对象
使用文档作为PrintDocument =新PrintDocument ()
’设置文档页面
document.PrinterSettings.MinimumPage = 1
document.PrinterSettings.MaximumPage =我.myImage.PageCount
document. printersettings . fropage = 1
document.PrinterSettings.ToPage =我.myImage.PageCount
昏暗的结果作为dialogue gresult = system . windows . forms . dialogue gresult . ok
选择打印机
使用printDlg作为PrintDialog =新PrintDialog ()
printDlg。文档=文档
printDlg。AllowSomePages =真正的
result = printDlg.ShowDialog()
结束使用
'设置页面
如果result = system . windows . forms . dialgresult . ok然后
使用pageSetupDlg作为PageSetupDialog =新PageSetupDialog ()
pageSetupDlg。文档=文档
pageSetupDlg.ShowDialog ()
结束使用
结束如果
如果result = system . windows . forms . dialgresult . ok然后
为开始/打印和结束打印事件添加处理程序
AddHandler文档。BeginPrint,AddressOfdocument_BeginPrint
AddHandler文档。打印Page,AddressOfdocument_PrintPage
AddHandler文档。EndPrint,AddressOfdocument_EndPrint
使用.NET打印预览对话框
使用printPreviewDlg作为PrintPreviewDialog =新PrintPreviewDialog ()
printPreviewDlg。文档=文档
printPreviewDlg。WindowState = FormWindowState。最大化
result = printPreviewDlg.ShowDialog()
结束使用
结束如果
结束使用
“打扫干净”
我.myImage.Dispose ()
结束子
私人子document_BeginPrint (按值传递发送方作为对象,按值传递e作为PrintEventArgs)
'重置当前页码
'由于我们正在使用打印预览对话框,这个事件将被调用两次(一次
'生成打印预览,一次用于实际打印)。所以,我们必须后退一步
到打印的第一页
昏暗的文档作为PrintDocument = TryCast(sender, PrintDocument)
我.currentPrintPageNumber = document. printersettings . fropage
结束子
私人子document_EndPrint (按值传递发送方作为对象,按值传递e作为PrintEventArgs)
“这儿没什么事可做
结束子
私人子document_PrintPage (按值传递发送方作为对象,按值传递e作为PrintPageEventArgs)
获取打印文档对象
昏暗的文档作为PrintDocument = TryCast(sender, PrintDocument)
创建一个新的LEADTOOLS图像打印机类
昏暗的打印机作为RasterImagePrinter =新RasterImagePrinter ()
’设置document对象,这样就可以执行页面计算
打印机。打印文档=文档
“我们想要将图像调整到最大打印区域
打印机。SizeMode = RasterPaintSizeMode。FitAlways
打印机。HorizontalAlignMode = RasterPaintAlignMode。中心
打印机。VerticalAlignMode = RasterPaintAlignMode。中心
考虑到FAX图像可能具有不同的水平和垂直分辨率
打印机。UseDpi =真正的
打印整个图像
打印机。ImageRectangle =矩形。空
'使用最大页面尺寸忽略页边距,这相当于打印
使用Windows照片库
打印机。PageRectangle = RectangleF。空
打印机。UseMargins =假
打印当前页面
打印机。打印(我.myImage,我.currentPrintPageNumber, e)
转到下一页
我.currentPrintPageNumber += 1
“通知打印机,我们是否还有更多的页面要打印
如果我.currentPrintPageNumber <= document.PrinterSettings.ToPage . txt然后
e.HasMorePages =真正的
其他的
e.HasMorePages =假
结束如果
'解耦我们的PrintDocument从RasterImagePrinter
打印机。打印文档=没有什么
结束子
公共NotInheritable类LEAD_VARS
公共常量ImagesDir作为字符串=“C: \ LEADTOOLS21 \ Resources \图片”
结束类
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。