首页 > 其他分享 >《打印机篇》通过Spire.PDF打印pdf

《打印机篇》通过Spire.PDF打印pdf

时间:2023-08-22 17:12:40浏览次数:45  
标签:doc PdfDocument 打印 Spire 文档 PDF pdf

pdf打印插件(未验证)

工具 Spire.PDF for .NET
原文链接:https://www.zhihu.com/tardis/bd/art/482045596
主要参考的是获取纸张的部分代码,即10、中的2、。

工具 Spire.PDF for .NET 获取方法

1、通过官网下载。
在程序中添加引用Spire.Pdf.dll,dll文件在安装路径下的bin文件夹中。
2、通过Nuget网站下载。

打印功能实现

1、使用默认打印机打印PDF

//创建PdfDocument类的对象,并加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//使用默认打印机打印文档所有页面
doc.Print();

2、使用虚拟打印机(Microsoft XPS Document Writer)打印PDF

//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//选择Microsoft XPS Document Writer打印机
doc.PrintSettings.PrinterName = "Microsoft XPS Document Writer";
//打印PDF文档到XPS格式
doc.PrintSettings.PrintToFile("PrintToXps.xps");
doc.Print();

3、指定打印机及PDF文档打印页码范围

//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//指定打印机
doc.PrintSettings.PrinterName = "HP LaserJet P1007";
//设置文档打印页码范围
doc.PrintSettings.SelectPageRange(1, 5);
//打印不连续的页面
//doc.PrintSettings.SelectSomePages(new int[] { 1, 3, 5, 7 });
//打印PDF文档
doc.Print();

4、静默打印PDF

//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//静默打印PDF文档
doc.PrintSettings.PrintController = new StandardPrintController();
doc.Print();

5、双面打印PDF

//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//判断打印机是否支持双面打印
if (doc.PrintSettings.CanDuplex)
{    
	//如果支持则设置双面打印模式,可选:Default/Simplex/Horizontal/Vertical
	doc.PrintSettings.Duplex = Duplex.Default;    
	//打印PDF文档    
	doc.Print();
}

6、黑白打印PDF

//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Test.pdf");
//黑白打印PDF文档
pdf.PrintSettings.Color = false;
pdf.Print();

7、打印PDF文档时选择不同的出纸盒

//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//设置纸盒
doc.PrintSettings.PaperSettings += delegate(object sender, PdfPaperSettingsEventArgs e)
{
	//设置页面1-50的纸张来源为纸盒1
	if (1 <= e.CurrentPaper && e.CurrentPaper <= 50)
	{
		e.CurrentPaperSource = e.PaperSources[0];
	}
	//设置余下页面的纸张来源为纸盒2
	else
	{
		e.CurrentPaperSource = e.PaperSources[1];
	}
};
//打印PDF文档
doc.Print();

8、将PDF文档打印多份

//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//设置打印份数为2份
doc.PrintSettings.Copies = 2;
//打印PDF文档
doc.Print();

9、打印PDF一页为多页,多页为一页

1、调用PdfPrintSettings类的SelectMultiPageLayout方法将一个PDF文档的多张页面打印到一张纸上。

//实例化一个PdfDocument对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.LoadFromFile("Input.pdf");
//将PDF文档的每两张页面打印到一张纸上(排版格式为1行,2列)
pdf.PrintSettings.SelectMultiPageLayout(1, 2);
pdf.Print()

2、PdfPrintSettings类的SelectSplitPageLayout方法支持将一个PDF文档的单张页面打印到多张纸上。该方法是根据A4纸的标准尺寸595pt*842pt对PDF页面进行拆分,超过该大小的页面,打印时其超过部分将会被打印到下一张纸。

//实例化一个PdfDocument对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.LoadFromFile("Input1.pdf");
//将PDF文档的单张页面根据标准页面大小进行拆分并打印
pdf.PrintSettings.SelectSplitPageLayout();
pdf.Print()

10、自定义纸张大小打印PDF

1、使用虚拟打印机自定义纸张大小打印:保持原来页面大小打印到PDF

//加载需要打印的PDF文档
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
doc.LoadFromFile(FileName);
//获取原文档第一页的纸张大小,这里的单位是Point
SizeF size = doc.Pages[0].Size;
//实例化PaperSize对象,设置其宽高
//需要特别注意的是这里涉及到单位的转换,PaperSize的宽高参数默认单位是百英寸 
PaperSize paper = new PaperSize("Custom", (int)size.Width/72*100, (int)size.Height/72*100);
paper.RawKind = (int)PaperKind.Custom;
//设置打印的纸张大小为原来文档的大小
doc.PrintSettings.PaperSize = paper;
//需要选择FitSize打印模式
doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true);
//打印
doc.Print();

2、使用真实打印机设置纸盒中的纸张大小打印:将原来A4的文档打印成A3的大小。

//加载需要打印的PDF文档
 Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
 doc.LoadFromFile(FileName);
 PaperSize p = null;
 //实例化一个PrintDocument对象来获取当前打印机的纸盒信息
 PrintDocument printDoc = new PrintDocument();
 //遍历打印机纸盒里面的纸张,找到需要的A3
foreach (PaperSize ps in printDoc.PrinterSettings.PaperSizes)
			{
				if (ps.PaperName.Equals("A3"))
				{
					p = ps;
					break;
				}
			}
 //设置打印的纸张大小为A3
 doc.PrintSettings.PaperSize = p;
 //打印
 doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true);
 doc.Print();

标签:doc,PdfDocument,打印,Spire,文档,PDF,pdf
From: https://www.cnblogs.com/fusio/p/17649042.html

相关文章

  • word转pdf,并加水印
    Word转PDF引入jar包<!--poi--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>${poi.version}</version></dependency......
  • 重磅文章:VictoriaMetrics存储引擎分析.pdf
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯万字长文,详细介绍VictoriaMetrics存储引擎的内部细节。首次公开。具体文章请见:https://github.com/ahfuzhang/victoria-metrics-1.72.0/blob/master/VictoriaMetric......
  • Python实现pdf转jpg
    自己电脑没找到软件用,想到python参考:https://zyicu.cn/?p=7656代码:(还可以调整分辨率)#-*-coding:utf-8-*-"""1、安装库pipinstallpymupdf2、直接运行"""importosimportfitzpdf_dir=[]defget_file():docunames=os.listdir()for......
  • 【专题】新能源为主体的新型电力系统的内涵与展望报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33446报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活......
  • 【专题】2021 年中国电力行业经济运行报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33446报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活......
  • 【专题】先立后破,迈向零碳电力-探索适合中国国情的新型电力系统实现报告PDF合集分享(附
    原文链接:https://tecdat.cn/?p=33446报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活......
  • 【专题】电力系统灵活性提升:技术路径、经济性与政策建议报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33446报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活......
  • 【专题】2022年中国电力行业分析报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33446报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活......
  • 【专题】2022年中国电力数字化产业研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33446报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活......
  • 【专题】双碳目标驱动的数字化新型电力系统报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33446报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活......