C#打印功能

C# 文档打印详解与示例 PrintDocument:用于设置打印文档的基本属性,如页边距、打印份数等。PrintDialog:提供一个对话框,让用户选择打印机、设置打印选项等。PageSetupDialog:提供一个对话框,让用户设置页面布局,如纸张大小、方向等。PrintPreviewDialog:提供一个预览窗口,让用户查看打印效果。下面我们将分别介绍这些类的使用方法。本文介绍了 C# 中的文档打印功能,包括如何创建打印文档、处理打印预览、以及如何处理多个页面的打印。 阅读详情

1.创建cshtml 文件
2.在类中写业务逻辑
上代码!!!!!
图1: 业务逻辑
图2:页面逻辑

 public class OrderPrintModel : PageModel
    {
        public void OnGet(string shoppingOrderIDs)
        {
            Task<AuthenticateResult> task = base.HttpContext.AuthenticateAsync("Base");
            if (task.Result.Succeeded)
            {
                IShoppingOrderDao m_ShoppingOrderDao = new ShoppingOrderDao();

                IJoiningStoreDao m_JoiningStoreDao = new JoiningStoreDao();

                IShoppingOrderDetailDao m_ShoppingOrderDetailDao = new ShoppingOrderDetailDao();

                IGoodDao m_GoodDao = new GoodDao();

                string sss = shoppingOrderIDs;

                string[] arrOrderNo = sss.Split(',');

               var shoppingOrderList = m_ShoppingOrderDao.GetListAll(i => arrOrderNo.Contains(Convert.ToString(i.ShoppingOrderID)), false);

                var valueDao = new CloudHill.NetCore.Sys.Dao.ValueListDao();

                IList<PrintModel> list = new List<PrintModel>();

                foreach (var i in shoppingOrderList)
                {
                    //地址信息
                    var addressInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<AddressEntity>(Convert.ToString(i.AddressInfo));

                    var p = valueDao.GetCacheItem(Convert.ToString(addressInfo.ProvinceID), "0-PCD");
                    var c = valueDao.GetCacheItem(Convert.ToString(addressInfo.CityID), "0-PCD-" + addressInfo.ProvinceID);
                    var d = valueDao.GetCacheItem(Convert.ToString(addressInfo.DistinctID), "0-PCD-" + addressInfo.ProvinceID + "-" + addressInfo.CityID);

                    var Province = p == null ? string.Empty : p.ValueListItemCN;
                    var City = c == null ? string.Empty : c.ValueListItemCN;
                    var Distinct = d == null ? string.Empty : d.ValueListItemCN;

                    //获取店铺信息
                    var storeEntity = m_JoiningStoreDao.GetSingle(j => j.JoiningStoreID == i.ShopID && j.Enable==1);

                    //获取订单下边商品信息
                    var shoppingDetailList = m_ShoppingOrderDetailDao.GetListAll(y => y.ShoppingOrderID == i.ShoppingOrderID, false);

                    var goodIDs = shoppingDetailList.Select(y => y.GoodID).ToList();

                    //获取商品信息取出实时的GoodCode
                    var goodDic = m_GoodDao.GetListAll(y => y.GoodID, y => goodIDs.Contains(y.GoodID), false).ToDictionary(y => y.GoodID, y => y);

                    var model = new PrintModel()
                    {
                        Address = Province + City + Distinct + addressInfo.Adddress,
                        PayTime = Convert.ToDateTime(i.PayTime),
                        Name = addressInfo.Name,
                        OrderNo = i.OrderNo,
                        ShopName = storeEntity != null ? storeEntity.StoreName : string.Empty,
                        Count = shoppingDetailList.Sum(y => y.Count),
                        GoodList = shoppingDetailList.Select(y => new PrintOrderGoodsModel()
                        {
                            GoodCode = goodDic.ContainsKey(y.GoodID) ? goodDic[y.GoodID].GoodCode : string.Empty,
                            GoodName = y.GoodName,
                            GoodPriceDetailName = y.GoodPriceDetailName,
                            Order = shoppingDetailList.IndexOf(y) + 1,
                            Count = y.Count
                        }).ToList()
                    };

                    list.Add(model);
                }

                ViewData["List"] = list;
            }
        }
   }
@page
@model Shop.Pages.OrderPrintModel
@using Shop.Pages.Model
@{
    Layout = null;
}

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="yes" name="apple-touch-fullscreen">
    <meta content="telephone=no" name="format-detection">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
    <script src="/Admin/Common/Page/js/jquery.min.js?v=2.1.4"></script>
    <title>面单打印</title>

</head>
<style>
	/*公用部分*/
	/*去掉select小三角*/
	select{appearance:none;-moz-appearance:none; /* Firefox */-webkit-appearance:none; /* Safari 和 Chrome */}
	/*点击,去掉蓝色*/
	*{-webkit-tap-highlight-color:rgba(0,0,0,0); }
	/*去掉input获取焦点变蓝*/
	input,textarea{outline:none;}
	/*去掉number属性的input右边上下箭头*/
	input::-webkit-outer-spin-button,
	input::-webkit-inner-spin-button{
	    -webkit-appearance: none !important;
	    margin: 0;
	}
	input::-webkit-input-placeholder{color:#c9caca;}/* 谷歌 */
	input:-moz-placeholder{color:#c9caca;}/* 火狐18- */
	input::-moz-placeholder{color:#c9caca;}/* 火狐19+ */
	input:-ms-input-placeholder{color:#c9caca;}/* IE */

	textarea::-webkit-input-placeholder{color:#c9caca;}/* 谷歌 */
	textarea:-moz-placeholder{color:#c9caca;}/* 火狐18- */
	textarea::-moz-placeholder{color:#c9caca;}/* 火狐19+ */
	textarea:-ms-input-placeholder{color:#c9caca;}/* IE */

	html{font-size: 10px}

	 @*@media screen and (min-width: 250px) and (max-width: 320px) {
	    html{font-size: 10px;}
	}
	 @media screen and (min-width: 321px) and (max-width: 380px) {
	    html{font-size: 12px;}
	}
	 @media only screen and (min-width: 380px) and (max-width: 450px){
	    html{font-size: 14px;}
	}*@

	html,body{}
	/*公用部分*/
	body,div,ul,li,ol{ margin: 0;  padding: 0;font-family:"微软雅黑";"宋体";}
	ul,ol,li{ list-style: none; margin: 0; padding: 0; }
	img{border:none;}
	a{text-decoration:none;}
	a:hover{text-decoration:none;}
	.clear{clear:both;}

	.body{
		width:400px;
		margin:0 auto;
		padding:20px 0;
	}
	.title{
		text-align: center;
		font-size: 18px;
	}
	.invoiceTit{
		margin-top:20px;
		text-align: center;
		font-size: 14px;
	}
	.invoice{
		margin:10px 0;
		margin-top:20px;
	}
	.invoice li{
		height:25px;
		line-height: 25px;
		overflow: hidden;
		text-overflow:ellipsis;
	}
	/*表格*/
	table.tableList{
		border:1px solid #eee;border-width: 0 0 1px 1px;
	}

	table.tableList tr td{
		padding:8px 5px;border:1px solid #eee;border-width:1px 1px 0 0;
		text-align: center;
	}
	table.tableList tr:last-child td{
		font-weight: bold;
		font-size: 14px;
	}
	.pic{
		margin-top:10px;
		border:1px solid #eee;
		width:98%;
		height:100px;
		padding:10px 1%;
	}
	.pic img{
		max-width: 100%;
	}
	.tips{
		margin-top:10px;
		text-align: center;
	}
</style>
<body>
    @{
        var list = ViewData["List"] as IList<PrintModel>;
    }

    <div class="body">
        <div class="title">孕芙美发货清单</div>

        @{
            foreach (var i in list)
            {
                <ul class="invoice">
                    <li>MP店铺:@i.ShopName</li>
                    <li>订单号:@i.OrderNo</li>
                    <li>下单日期:@i.PayTime</li>
                    <li>收件人:@i.Name</li>
                    <li>收件地址:@i.Address</li>
                </ul>

                <table class="tableList" cellPadding="0" cellSpacing="0" width="100%" border="0">
                    <tr>
                        <td width="40">序</td>
                        <td>产品编码</td>
                        <td>简称</td>
                        <td>规格</td>
                        <td>数量</td>
                    </tr>
                    @{foreach (var y in i.GoodList)
                        {
                <tr>
                      <td>@y.Order</td>
                      <td>@y.GoodCode</td>
                      <td>@y.GoodName</td>
                      <td>@y.GoodPriceDetailName</td>
                      <td>@y.Count</td>
                </tr>
                            }
                        }

                        <tr>
                            <td></td>
                            <td>合计</td>
                            <td></td>
                            <td></td>
                            <td>@i.Count</td>
                        </tr>
                    </table>
                <div class="pic">
					<img src="/api/qrcode/barCodeGenerate?code=@i.OrderNo">
                </div>
            }
        }


        <div class="tips">发货清单请仔细核对</div>
        <button onclick="dayin()" style="display:block; margin: 0 auto;">打 印</button>
    </div>
</body>
<script>
    function dayin() {
        $('.tips').hide();
        $('button').hide();
        window.print();
    }
</script>
</html>


C# 基础打印功能的实现 C# 实现基本打印功能 阅读详情

相关推荐

初探C#的打印功能

初探C#的打印功能 利用C#实现打印功能还是比较简单的,主要就是在画布上将需要打印的内容画出来,然后将画布打印出来 我们主要只需两个控件:printDialog和printDocument 首先就是绘制我们需要打印的内容,也就是指定printDocument的PrintPage这个根据需求有时候是比较麻烦的,下面我先给出一个简单的例子: private void printDocument1_

LiuXiaodong_hit的博客 634

提升你的C#技能:掌握PrintDocument实现打印操作的秘诀

用C#在开发应用的时候,经常需要打印操作,比如你需要打印某些记录,或者是某些图像都需要用到打印的操作,比如我需要打印报警记录,按照指定的格式打印出来,我需要PrintDocument类,将我需要的数据在PrintDocument上面规定好,再打印出来

qq_46104786的博客 5707

C#中打印功能的实现

C#打印程序实现完整文档打印功能,我们会介绍打印操作具体包括的四个功能,打印所涉及的类的属性及方法,以及最终实现的样例。最后我们会总结C#打印程序的全部过程。     打印操作通常包括以下四个功能     1 打印设置 设置打印机的一些参数比如更改打印机驱动程序等     2 页面设置 设置页面大小纸张类型等     3 打印预览 类似于word中的打印预览     4 打印 ...

IT汪的博客 546

C# 代码实现打印以及各种设置

内含绘图打印内容,二维码生成,条形码生成。个人记录,大家可参考。

Yxiaobing的博客 3354

C#实现打印功能(附完整源码)

C#实现打印功能(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 697

C# 打印与打印预览功能实现指南

在当今数字化时代,将信息和数据输出到纸张上的需求依然存在。C#作为.NET平台上的主要编程语言之一,提供了强大的打印功能,使得开发者能够轻松地在应用程序中实现打印功能。这一章节将为你提供一个简单的C#打印功能概览,帮助你理解如何在C#程序中添加打印功能,为后续深入探索打下基础。我们将从打印功能在实际应用中的必要性开始,逐步介绍C#中的打印框架。尽管.NET提供了许多类和命名空间来实现打印任务,但是我们会重点介绍System.Drawing.Printing命名空间,因为它是实现打印功能的核心。

weixin_35414484的博客 1527

全面解析C#实现打印功能

C#实现打印功能所牵扯上的具体的操作以及常用属性的介绍是什么呢?C#实现打印功能的实例实现又是什么样的呢?那么全面解析C#实现打印功能这篇文章就向你整体介绍具体内容。 <br /> <br />在Windows应用程序中C#实现打印功能对于文档编程是一项非常重要的功能,在以前是非常复杂的工作,Microsoft .net Framework的打印功能都以组件的方式提供,但是这几个组件的使用还是很复杂的,下面我们一一介绍:<br />C#实现打印功能操作通常包括以下四个功能。<br />1、打印设置 设

伤心太平洋 2610

实现C#中的PrintDocument多页打印功能

本文还有配套的精品资源,点击获取 简介:在C#中, PrintDocument 组件是实现打印功能的关键,包括创建自定义打印输出和多页打印。本项目通过重写 OnPrintPage 事件处理程序来绘制多页内容,并涉及打印设置、页面设置、打印预览等高级特性。开发者可以使用VS2005等IDE环境进行设计和测试,学习如何有效地使用 PrintD...

weixin_42462474的博客 2931

在C#中实现打印功能(C#中PrintDialog,PrintDocument的使用)

本文转载自:http://www.cnblogs.com/chris1943/archive/2008/03/04/1090719.html 作者:chris1943 转载请注明该声明。在C#中实现打印功能(C#中PrintDialog,PrintDocument的使用) 在C#中使用PrintDialog可以很方便的实现程序的打印功能。 其步骤如下: 创建一个PrintDi...

xfxf996的博客 3028

C#基础打印功能开发实战:从驱动到打印

在C#编程中,打印任务是一个常见的需求,它允许应用程序输出数据到物理打印机。无论是企业应用中的报表打印,还是个人软件中的文档输出,有效地管理打印任务对于提升用户体验至关重要。类封装了所有与打印机相关的信息,包括打印机名称、打印质量、页面方向以及纸张大小等。它提供的属性和方法是开发者在进行打印任务时进行详细打印机配置的核心。属性: 获取或设置打印机的名称。PaperSize: 获取或设置打印机使用的纸张大小。: 指示打印机是否为本地打印机。

weixin_35972981的博客 919

C#打印预览和打印功能的实现指南

在.NET框架中,System.Drawing.Printing命名空间是处理打印任务的核心组件。它提供了丰富的API,允许开发者在应用程序中实现复杂的打印逻辑。命名空间中的PrintDocument类是其中最重要的类之一,它代表了整个打印任务。PrintDocument类为打印过程提供了全面的支持,从打印预览到实际文档输出,都能通过这个类来完成。

weixin_32673065的博客 753

C#实现打印功能实例详解

C#实现打印功能是通过什么来实现的?C#实现打印功能的步骤是什么呢?那么本文就向你介绍这方面的内容。 <br /> <br />C#实现打印功能是通过使用PrintDialog控件来实现的。任何物有所值的应用程序都会拥有某种打印功能,不管是基本的打印功能还是更为复杂的打印功能,比如允许用户只打印所选的文本或某个范围内的页面。本节将探讨一下实现基本的C#打印功能,看看哪些类有助于打印文件中的文本。C#实现打印功能的过程是:在调用PrintDialog控件的ShowDialog方法之前,必须先设置Prin

伤心太平洋 3219

android技术--------如何解决弹出键盘只影响当前fragment输入的窗口

题目比较长,也可能有很多人不明所以这东西有啥可写的,简单来说就是实现近似于Android Pad 上QQHD聊天的界面效果,搞了很长的事件,今天终于搞定。 android3.0新加了组件Fragment称之为碎片,对这个一无所知的请自觉补习。今天的阐述将基于此组件。 fragment可以放入activity中,并随activity的生命周期变化而变化,但当相应键盘事件的时候,就比较让人挠头了,

3506

C#如何实现Windows自带打印功能

C#如何实现Windows自带打印功能 2017-10-29 12:52:34王啸tr1912阅读数 18822文章标签:windows打印更多 分类专栏:C#项目经验 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/tr1912/article/details/7...

cxu123321的博客 765

Stata森林图进阶:个性化定制与高级技巧

本文详细介绍了Stata森林图的进阶技巧,包括个性化定制与高级应用。通过meta分析工具如metan命令,用户可以优化字体、颜色、坐标轴等视觉元素,提升森林图的专业性和可读性。文章还提供了黑白印刷设置、高分辨率导出等实用技巧,帮助科研人员制作符合学术出版要求的森林图。

ios99的博客 254

高德地图JS API私有化部署实战:从数据爬取到内网集成

本文详细介绍了高德地图JS API私有化部署的完整流程,涵盖从地图瓦片数据爬取、JS API离线化改造到内网项目集成的实战步骤。重点解决了在封闭内网环境中实现地图功能的核心难题,并提供了Vue.js项目中的具体集成代码与调试技巧,帮助开发者在离线环境下构建稳定可靠的地图应用。

weixin_29062255的博客 318

在C#中实现打印功能

<br /> <br />在C#中实现打印功能<br />其步骤如下:创建一个PrintDialog的实例。如下:<br />System.Windows.Forms.PrintDialog PrintDialog1=new PrintDialog (); 创建一个PrintDocument的实例.如下:<br />System.Drawing.Printing.PrintDocument docToPrint = <br />new System.Drawing.Printing.PrintDocumen

自由人生 6854

MinIO vs 华为云OBS:成本、性能与兼容性深度对比(含实测数据)

本文深度对比了开源对象存储MinIO与华为云OBS在成本、性能、兼容性及运维方面的核心差异。通过实测数据与全生命周期成本分析,为技术决策者提供选型依据。文章指出,MinIO在长期成本控制、性能深度优化及S3 API兼容性方面优势显著,而华为云OBS则提供开箱即用的便利性。

kmeans3miner的博客 593

C# 实现打印功能

<br />在C#中实现打印功能(C#中PrintDialog,PrintDocument的使用)<br /> <br /> 在C#中使用PrintDialog可以很方便的实现程序的打印功能。<br />其步骤如下:创建一个PrintDialog的实例。如下:<br />System.Windows.Forms.PrintDialog PrintDialog1=new PrintDialog ();创建一个PrintDocument的实例.如下:<br />System.Drawing.Printing.P

Mirgroth 621

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6807

【大语言模型 14】Transformer权重初始化策略:从Xavier到GPT的参数初始化演进之路

权重初始化是深度学习训练成功的隐秘基石,特别是在Transformer这样的深层架构中,合适的初始化策略能够决定模型的训练稳定性和收敛速度。本文从经典的Xavier和He初始化出发,深入解析Transformer特有的初始化策略,通过数学推导、代码实现和实验分析,揭示不同初始化方法对大语言模型训练的深层影响。我们将探讨为什么GPT系列模型采用特定的初始化方案,以及如何针对不同层设计最优的初始化策略。

熵数实验室 1686

在C#中使用PrintDialog可以很方便的实现程序的打印功能。

在C#中使用PrintDialog可以很方便的实现程序的打印功能。 其步骤如下: 创建一个PrintDialog的实例。如下: System.Windows.Forms.PrintDialog PrintDialog1=new PrintDialog (); 创建一个PrintDocument的实例.如下: System.Drawing.Printing.PrintDocume

沙漠里的鱼 2368

Python经典编程习题100例:第32例:相反顺序输出列表

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 按相反的顺序输出列表的值。 解题思路: > 利用reverse函数逆序 代码: arr=['f','g','e','b'] print(arr) arr.reverse() print(arr) ...

优快云 精品推荐 1416
上一篇: C# 发送邮箱携带附件
下一篇: C# 上传接口返回错误: (413) Request Entity Too Large问题解决
Stupid_Insect
博客等级 码龄7年 5粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值