首页 > 编程语言 >C#高清打印关键代码

C#高清打印关键代码

时间:2023-04-04 22:45:16浏览次数:36  
标签:img C# 打印 System 高清 Width destSize Drawing2D Drawing

打印过程中,获取可见的实际宽度作为打印,就没有收缩的了,图片收缩放大是模糊的原因之一,所以所见所得就是最好的方法

 1         private void printDocNew_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
 2         {
 3             Graphics g = e.Graphics;
 4 
 5             g.Clear(Color.White);
 6 
 7             g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
 8             g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
 9             g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
10             // 指定高质量的双三次插值法。执行预筛选以确保高质量的收缩。此模式可产生质量最高的转换图像。  
11             g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
12             // 指定高质量、低速度呈现。  
13             g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
14             g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
15 
16             int sz = (int)g.VisibleClipBounds.Width;//关键代码,获取可见的实际宽度
17             Bitmap img = Zxing_QRCode(txtQrContent.Text.Trim(), sz, sz);
18 
19             Bitmap imgP = GetImagePure(img);
20            
21             int destSize = (int)(g.VisibleClipBounds.Width * 0.8);
22 
23             Rectangle rectDest = new Rectangle(img.Width / 2 - destSize / 2, img.Height / 2 - destSize / 2, destSize, destSize);
24 
25             e.Graphics.DrawImage(imgP, rectDest);
26 
27             imgP.Dispose();
28             img.Dispose();
29 
30             string txt = txtBottomText.Text.Trim();
31             if (txt != "")
32             {
33                 SizeF sf = g.MeasureString(txt, FontText);
34                 g.DrawString(txt, FontText, Brushes.Black, g.VisibleClipBounds.Width / 2 - sf.Width / 2, rectDest.Bottom);//2 *
35             }
36         }

 

标签:img,C#,打印,System,高清,Width,destSize,Drawing2D,Drawing
From: https://www.cnblogs.com/kingkie/p/17288150.html

相关文章

  • ioc入门案例
          1、pom.xml引入spring<dependencies><!--引入spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>&l......
  • Python ORM Pony 常用表连接聚合操作(sum()、count()、min()、max()、avg()等)
    Pony是一个高级的对象关系映射器ORM框架。Pony它能够使用Python生成器表达式和lambdas向数据库编写查询。Pony分析表达式的抽象语法树,并将其转换为SQL查询。支持SQLite,MySQL,PostgreSQL和Oracle等数据库,本文主要介绍PythonORMPony中常用聚合操作(sum()、count()、min()、max(......
  • Error resolving template [date], template might not exist or might not be access
    这种情况要不就是你想加载页面@RequestMapping("/welcome1.html")publicStringwelcome1(){return"/welcome1";}但写错了改正:@RequestMapping("/welcome1.html")publicStringwelcome1(){return"welcome1";}或者你想return一个值加入注解@R......
  • JsonCpp JSON格式处理库的介绍和使用(面向业务编程-文件格式处理)
    JsonCppJSON格式处理库的介绍和使用(面向业务编程-文件格式处理)介绍JSON是一种轻量级的数据交换格式,它是一种键值对的集合。它的值可以是数字、字符串、布尔值、序列。想知道更多有关JSON格式的介绍,可以到JSON的官网json.org学习JsonCpp是一个c++库,允许对JSON值进行操作,包括......
  • apache-DBUtils 工具类
    用于查询多行多列的数据packagecom.jdbc.DBUtils;importcom.JDBC_Utils.JDBCUtilsByDruid;importcom.JDBC_Utils.News;importorg.apache.commons.dbutils.QueryRunner;importorg.apache.commons.dbutils.handlers.BeanHandler;importorg.apache.commons.dbutils.hand......
  • Ardalis.Specification 规范模式
    概述规范模式将查询逻辑封装在它自己的类中,这有助于类遵循单一职责原则(SRP)并促进常见查询的重用。规范可以独立进行单元测试。当与Repository模式结合使用时,它还可以帮助防止它随着太多额外的自定义查询方法而增长。规范通常用于利用领域驱动设计的项目。好处一般来说,规范模......
  • C/C++编译过程
    1.预处理 将.c中的头文件、宏展开生成的文件是.i文件gcc-Ehello.c-ohello.i2.编译将预处理后的.i文件生成.s汇编文件gcc-Shello.i-ohello.s3.汇编将.s文件生成.o目标文件gcc-chello.s-ohello.o4.链接将.o文件链接成可执行文件gcc-chello.o-ohello......
  • Your local changes to the following files would be overwritten by merge问题的解
    问题描述在终端页面输入gitpull,会出现这样一个报错:Yourlocalchangestothefollowingfileswouldbeoverwrittenbymerge;然后一开始没有注意到这个错误跟之前的错误不太一样,就还是按照之前的套路来的,没有解决问题解决发现这样就可以解决啦:gitstashgitpull这样就......
  • /scan
         /scan是ROS中一个标准的激光雷达数据的消息话题/scan话题通常由机器人上的激光雷达驱动程序发布,将激光雷达扫描数据发布到该话题上。其他节点可以订阅该话题以接收激光雷达扫描数据,并执行各种感知和控制任务,如建图、路径规划、避障等......
  • flask:cbv源码分析、模板语法、请求与响应、session及源码分析、闪现(flash)、请求扩展
    目录一、cbv源码分析1.1基于类的视图写法1.2源码分析1.3分析源码,查找不传别名的时候为什么函数名会变成别名1.4flask的路由注册使用装饰器,如果写了一个登录认证装饰器,那么应该放在路由装饰器上还是下?1.5dispatch_request讲解1.6知识点总结二、模板语法2.1py2.2html三、请......