
打印系统开发
打印系统开发过程中遇到的知识点积累
陆老师Peter
高校计算机专业教师、项目经理、软件研发负责人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
打印系统开发(67)——C# 打印PDF文档的开发笔记(Free Spire.PDF for .NET)
/// <summary> /// 打印方法(spire.pdf)只有10页 /// </summary> /// <param name="filePath"></param> private void pdfPrint(string[] filePath) ...原创 2020-01-04 21:58:48 · 1413 阅读 · 0 评论 -
打印系统开发(66)——监控打印机的打印队列
问:如何监控打印机的打印队列,可以获得正在打印文档的文档名,状态,所有者,页数,大小等。答:1、C++代码一、API介绍:API是ApplicationProgrammingInterface的缩写,也就是应用程序调用系统功能的接口。WindowsAPI主要包括系统定义的函数、消息及与之相关的数据类型。我们使用各种开发工具归根结底都是和API打交道。二、与打印状态相关...原创 2019-12-28 18:05:30 · 4220 阅读 · 0 评论 -
打印系统开发(65)——打印队列(打印监控台)开发笔记
一、右键1、删除指定行[D]2、打开[O]3、打开路径[P]4、暂停打印[S]5、清空已完成[C]6、取消所有文档[A]原创 2019-12-27 23:07:21 · 517 阅读 · 0 评论 -
3d打印机
3D打印机(3D Printers)简称(3DP)是一位名为恩里科·迪尼(Enrico Dini)的发明家设计的一种神奇的打印机,不仅可以"打印"一幢完整的建筑,甚至可以在航天飞船中给宇航员打印任何所需的物品的形状。但是3D打印出来的是物体的模型,不能打印出物体的功能。技术原理3D打印机又称三维打印机(3DP),是一种累积制造技术,即快速成形技术的一种机器,它是一种数字模型文件为基础,运用...转载 2019-12-27 19:59:15 · 1622 阅读 · 0 评论 -
打印系统开发(63)——C# 实现虚拟打印机 HP Color LaserJet 4500 (2) True Type Font字体显示
本来打算酸所有的PCL HPGL/2的都贴出来.后来发现这里重要的字体显示 TTF的数据显示就2000多行 10来个类了.所以把这个独立出来.另外我增加了一些字符对应和轮廓显示的方法.有兴趣的朋友可以单独去使用.效果图使用代码 private Zgke.MyImage.ImageFile.ImageTTF m_TTF = new ImageTTF(@"C:/Windows/...转载 2019-12-24 16:55:49 · 1514 阅读 · 1 评论 -
打印系统开发(62)——C# 实现虚拟打印机 HP Color LaserJet 4500 (1)
C# 实现虚拟打印机 HP Color LaserJet 45001无聊了研究了下PCL和HPGL两种语言。如果要实现虚拟打印机只使用.NET来做,驱动是最大的问题。其实我们可以使用已经写好的打印机驱动来实现。只是让驱动最终生成的打印语言输出到我们想要的位置。并且我们对打印语言进行模拟显示就可以。经过几天的研究发现HP Color LaserJet 4500 打印出的图形为PCL和H...转载 2019-12-24 16:49:45 · 4601 阅读 · 0 评论 -
打印系统开发(61)——A4纸尺寸
A4纸尺寸A4纸是ISO 216(纸张国际化标准尺寸),是世别界上大多数国家所使用的A4纸尺寸。目前中国采用的是ISO 216标准,以规范纸大小,与国际通用。A4纸尺寸A4纸尺寸:210×297;A3纸尺寸:297×420;A2纸尺寸:420×594;A1纸尺寸:594×841;A0纸尺寸:841×1189;备注:长(mm)×宽(mm) 单位:毫米(mm)...转载 2019-12-11 10:37:43 · 1200 阅读 · 0 评论 -
打印系统开发(60)——XPS格式文件
工作中跟客户沟通时,对方发来了一个xps文件,经咨询得知:选用虚拟打印机xps打印出来的效果,就是xps文件。以下内容摘自百科:https://baike.so.com/doc/5509346-5745092.htmlXPS 是XML Paper Specification(XML文件规格书)的简称,是一种电子文件格式,它是微软公司开发的一种文档保存与查看的规范。以前的开发代号为"Metr...原创 2019-12-05 14:53:59 · 695 阅读 · 0 评论 -
打印系统开发(59)——printDocument控件打印开发笔记
1、Graphics 类https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.graphics?redirectedfrom=MSDN&view=netframework-4.82、printDocument控件printDocument 控件的 PrintPage 事件只处理当前打印页的操作。所以循环不应该在Pr...原创 2019-12-03 15:51:04 · 523 阅读 · 0 评论 -
打印系统开发(58)——打印系统开发笔记
一、打印控件: PrintDocument:要打印的对象。 PageSetupDialog:打印设置对话框。 PrintPreviewControl:打印预览控件。 PrintPreviewDialog:打印预览对话框。 PrintDialog:打印对话框。二、相关软件我们的产品是基于Adobe来开发的,我们首先得知道这个功能具体是如何实现的,才好调查用我们的产...原创 2019-11-29 18:00:26 · 1001 阅读 · 0 评论 -
命名规范(2)——打印系统开发(57)——打印控件简写规范
WinForm Control 命名规范(打印部分)数据类型 数据类型简写 标准命名举例 PrintDialog pdlg pdlgPrint printPreviewDialog ppdlg ppdlgYsy pageSetupDia...原创 2019-11-28 18:18:56 · 160 阅读 · 0 评论 -
打印系统开发(56)——打印机驱动程序设计指南
一、打印机驱动程序设计指南(微软)https://docs.microsoft.com/zh-cn/windows-hardware/drivers/print/1、GPD 文件简介https://docs.microsoft.com/zh-cn/windows-hardware/drivers/print/introduction-to-gpd-files2、PPD 文件ht...原创 2019-11-28 15:32:17 · 5372 阅读 · 1 评论 -
打印系统开发(55)——打印机监视器是什么,为什么安装不上?
你指的是Print Spooler服务经常无故被停止吧?Print Spooler服务总是自动关闭尝试访问 Windows 2000 打印服务器上的打印机时,Print Spooler 服务可能会频繁停止,并且可能收到 Dr. Watson 错误信息方法 1:在注册表编辑器中删除 Xerox 语言监视器的注册表项方法 2:禁用打印机的 Printer.inf 文件中的语言监视器条目原因如...转载 2019-11-28 15:30:47 · 2168 阅读 · 0 评论 -
API(17)——打印系统开发(54)——关于打印机的api
问:我编的软件中想实现不用打印对话框就修改打印设置,试过很多办法如用DocumentProperties的DM_UPDATE,但未遂,帮帮我!1、用win32api直接控制。2、看看下面这段程序:CPrintSettings m_prn_setting1;if( !m_prn_setting1.ValidDevMode()) {ShowMessage("Printer1 not...转载 2019-11-28 15:19:50 · 2310 阅读 · 0 评论 -
API(16)——打印系统开发(53)——C# 打印 api 操作属性设置,DocumentProperties
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Ru...转载 2019-11-28 15:06:16 · 684 阅读 · 0 评论 -
API(15)——打印系统开发(52)——WinForm开发(62)——C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
其他网站下载来的类,可以用于Winform、Asp.Net,用于服务器端PDF或其他文件打印。直接上代码:using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;using System.IO;namespace CyServer....转载 2019-11-28 14:54:59 · 1345 阅读 · 1 评论 -
API(12)——打印系统开发(51)——C#:调用API函数,弹出对话框更改打印机默认设置
虽然说.NET为我们提供了很多打印设置的功能,比如PrintDialog。可是有的功能是没有实现的,比如PrintDialog的窗体中,按下“打印机”后,弹出来的打印机设置窗口。会发现,这个打印机设置会根据不同的打印机而不同。而它更改的,是打印机的默认设置。怎么实现这个功能呢?这个难题让我在网上寻觅了一个星期。也没有找到实现这个功能的代码。要么就是只能弹出这个对话...转载 2019-11-27 21:42:13 · 992 阅读 · 0 评论 -
打印系统开发(50)——C# 获取和取消本地打印队列
Dictionary<string, int> GetAllPrinterQueues(){ RaiseLog("Getting print queue counts"); Dictionary<string, int> TempDict =new Dictionary<string, int>(); PrintServer myP...原创 2019-11-20 17:21:50 · 3052 阅读 · 0 评论 -
打印系统开发(49)——WinForm开发(56)——winform 按顺序连续打印多个PDF文件
关于PDF打印的问题,前面有篇文章(Winform 打印PDF顺序混乱,获取打印队列)也叙述过,今天来谈谈另外一种方法。其实方法很简单,因为需要把多个PDF文档按顺序连续打印,为此我们把要打印的pdf文档按顺序合并成一个PDF打印,如此就简单多了。这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方便以后查找。开始正文1、为了方便,打印方法就不另...转载 2019-11-20 11:45:05 · 851 阅读 · 0 评论 -
打印系统开发(48)——WinForm开发(55)——Winform 打印PDF顺序混乱,获取打印队列
工作中PDF打印顺序混乱着实让我疼痛了好久,其实解决方法非常简单,但没有想到这个点子的时候确实让我走了很多弯路。这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方便以后查找。开始正文既然要解决打印顺序混乱,那么必须先要实现打印PDF功能,实现PDF打印的方法很多,网上随便一搜就可以找到,这里我贴上自己的打印方法,其实也是网上找到的,稍稍做了修改。...转载 2019-11-20 11:34:23 · 694 阅读 · 0 评论 -
打印系统开发(47)——C# 打印PDF文档的开发笔记(Spire.PDF)
一、获取PDF的宽和高 PdfDocument doc = new PdfDocument(); //Load an existing pdf from disk doc.LoadFromFile(@"..\..\..\..\..\..\Data\Sample.pdf"); //Get the ...原创 2019-11-19 17:08:38 · 3364 阅读 · 0 评论 -
打印系统开发(46)——API(4)——打开打印机属性窗口
public partial class Form1 : Form { private PrintDocument printDocument = null; private PrinterSettings printSettings = null; public Form1() { Initial...转载 2019-11-17 11:41:20 · 648 阅读 · 0 评论 -
打印系统开发(45)——C#添加本地打印机
class Program { static void Main(string[] args) { const string printerName = "Print to file"; const string portName = "FILE:"; const string dri...转载 2019-11-17 11:39:17 · 1174 阅读 · 0 评论 -
打印系统开发(44)——.Net中获取打印机的相关信息
目录1、PrinterCommunicate用于连接打印机并发送指令:2、WindowsPrintQueue用于获取打印机的型号,以及得到打印机的WindowsPrintQueue:3、PrinterPropertyManager用于管理打印机的状态以及查询修改打印机属性:4、获取已安装的打印机驱动:新项目中牵涉到对打印机的一些操作,最重要的莫过于获取打印机的状态,IP等信息,...转载 2019-11-17 11:23:15 · 1664 阅读 · 0 评论 -
打印系统开发(43)——并口打印机
并口打印机并口打印机是采用并行接口主要作为打印机端口的打印机的一种。中文名并口打印机外文名LPT基本说明目前,并行接口主要作为打印机端口,采用的是25 针D 形接头。所谓“并行”,是指8 位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。目前计算机基本上都配有并口。并行接口的种...转载 2019-11-16 19:42:21 · 1038 阅读 · 0 评论 -
打印系统开发(42)——静默打印
1.问题描述希望每次打印时,都是用固定的打印机打印并且不希望弹出对话框进行设置,此时便可以设置静默打印。1.1什么是静默打印静默打印即点击打印时不弹出选项窗口和打印机设置窗口直接进行打印。1.2支持静默打印的打印方式零客户端打印、本地打印、服务器端打印支持静默打印。2.静默打印设置方法2.1 零客户端打印设置方法注:只支持 IE点击模板-打印...转载 2019-11-15 18:19:51 · 5228 阅读 · 1 评论 -
打印系统开发(41)——C# 打印PDF文档的10种方法
目录使用工具:Spire.PDF for .NET获取方法:C# 示例代码【示例1】使用默认打印机打印PDF【示例2】使用虚拟打印机(Microsoft XPS Document Writer)打印PDF【示例3】指定打印机及PDF文档打印页码范围【示例4】静默打印PDF【示例5】双面打印PDF【示例6】黑白打印PDF【示例7】打印PDF文档时选择不同的出...转载 2019-11-14 11:01:16 · 1136 阅读 · 0 评论 -
打印系统开发(40)——C#合并文件夹图片列表,自定义排版顺序
本次程序编写主要为了将pdf、word等文档转换为图片后设置不同的打印排版。前提:目标文件夹中的图片高宽都是一致的。/// <summary>/// 合并图片/// </summary>/// <param name="savedictory">文件保存目录</param>/// <param name="singlePage...转载 2019-11-13 21:49:02 · 395 阅读 · 0 评论 -
打印系统开发(39)——检查打印机状态
public class Printer{ /// <summary> /// 构造函数 /// </summary> /// <param name="name">打印机名称</param> public Printer(string name) { this.printe...转载 2019-11-13 21:25:49 · 1355 阅读 · 0 评论 -
打印系统开发(38)——API(3)——windows设置默认打印机
实现这个功能需要使用windows api[DllImport("winspool.drv")]public static extern bool SetDefaultPrinter(String Name);//调用win api将指定名称的打印机设置为默认打印机private static PrintDocument PrintDocument = new PrintDocumen...转载 2019-11-13 21:23:12 · 627 阅读 · 0 评论 -
API(2)——打印系统开发(37)——C#调用windows api 实现打印机控制(状态获取、打印、自定义纸张)
using System;using System.Text;using System.Runtime.InteropServices;using System.Security;using System.ComponentModel; namespace SoftPOS{ public class PrinterHelper { private P...转载 2019-11-13 21:13:07 · 2022 阅读 · 1 评论 -
打印系统开发(36)——打印方面"套打"是什么意思,如何实现"套打"?
1、套打,就是套用一定格式去打印,一般情况下,是指已经有了纸质的模板,然后在指定的位置上打印数据图案等等.比如说已经有了一张纸,上面已经印刷了表格,需要把数据套打在上面的某些单元格里。2、套打,主要是定位了,主要是用画图来实现。3、只好反复测试,对位子。4、不同的打印机,估计很难正位。5、在已印有表格、文字的纸张上,在预留的空白位置打印文字、数字等内容,就是“套打”。要实现套...原创 2019-11-13 16:59:30 · 22982 阅读 · 0 评论 -
打印系统开发(35)——WebPrinter帮助文档
https://www.webprinter.cn/doc/faq原创 2019-11-13 15:36:35 · 346 阅读 · 0 评论 -
打印系统开发(34)——StratoIO WebPrinter打印控件是否支持双面打印?StratoIO WebPrinter 常见的问题
WebPrinter常见问题1.该打印控件是否支持双面打印?我们的控件是支持双面打印的,由于打印机有双面打印机和非双面打印机之分,我们的控件会检测到你的打印机是否支持双面打印来呈现你最后实现的打印方式。如果是双面的打印机就可以在如下图中勾选双面打印。反之则不能勾选。2.是否可以直接打印PDF格式的文件?PDF打印功能已经集成到1.2之后的版本,但目前还属于测试阶段,频繁大量的打印可...转载 2019-11-13 15:35:31 · 326 阅读 · 0 评论 -
打印系统开发(33)——打印机的使用(理光Ricoh Pro 907EX PCL 6)
打印机的使用(理光Ricoh Pro 907EX PCL 6)当发生断电时,打印机的端口有可能会改变,这时在电脑上就会显示“脱机”状态,没法使用打印机。处理方法步骤如下:1.这里以理光打印机(Ricoh Pro 907EX PCL 6)为例。2.打印机一般都有这三个键,一般按中间那个键。3.在屏幕弹出的页面中选择“打印机特性”。4.在屏幕弹出的页面...原创 2019-11-13 15:01:22 · 2587 阅读 · 0 评论 -
API(1)——打印系统开发(32)——Windows API函数大全(精心总结)
目录1. API之网络函数2. API之消息函数3. API之文件处理函数4. API之打印函数5. API之文本和字体函数6. API之菜单函数7. API之位图、图标和光栅运算函数8. API之绘图函数9. API之设备场景函数10. API之硬件与系统函数11. API之进程和线程函数12. API之控件与消息函数1. API之...转载 2019-11-13 12:41:56 · 982 阅读 · 0 评论 -
打印系统开发(31)——C#控制本地打印机和打印份数
目录方法一:方法二:方法三:C#控制打印次数方法一:int num=int.parse(textBox1.Text)Document1.PrinterSettings.Copies = num;Document1.Print();方法二:查看windownsapi方法三:让Document1.print();多运行几遍就行了,用循环。for(...原创 2019-11-13 10:58:04 · 1946 阅读 · 0 评论 -
打印系统开发(30)——调用API弹出打印机属性对话框
调用api弹出打印机属性对话框一、printerProperties二、documentProperties三、openPrinter四、closePrinter五、samplecodes:(例子代码:)1.声明API函数2.调用DocumentProperties3.调用PrinterProperties调用api弹出打印机属性对话框Author:vito...转载 2019-11-13 09:50:38 · 1075 阅读 · 0 评论 -
打印系统开发(29)——在C#中设置打印机纸张大小,如此简单
PrintDocument pd = new PrintDocument();PaperSize p=null;foreach(PaperSize ps in pd.PrinterSettings.PaperSizes){ if(ps.PaperName.Equals("A3"))p = ps;}pd.DefaultPageSettings.PaperSize = p;p...转载 2019-11-13 09:30:31 · 2465 阅读 · 0 评论 -
打印系统开发(28)——c#实现打印功能,可以设置纸张大小,字体和颜色等
/// <summary> /// 打印的按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnPr...转载 2019-11-11 18:12:34 · 822 阅读 · 0 评论