C# 自定义纸张大小打印 PDF
当打印PDF文档的时候,默认情况下纸张大小是A4。但是有些情况下原文档不是A4大小,我们需要保持原来的页面大小怎么办呢?这个时候就需要自定义纸张大小来实现这个功能。本文将介绍如何使用.NET PDF组件Spire.PDF在C#应用程序中自定义纸张大小打印PDF。
在使用以下代码前,需要下载Spire.PDF安装,并从安装路径下引用Spire.Pdf.dll到工程中(或可从NuGet搜索Spire.PDF并安装)。
使用虚拟打印机自定义纸张大小打印,比如保持原来页面大小打印到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();
使用真实打印机设置纸盒中的纸张大小打印,比如原来A4的文档打印成A3的大小
//加载需要打印的PDF文档
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
doc.LoadFromFile(FileName);PaperSize p = null;
//实例化一个PrintDialog对象来获取当前打印机的纸盒信息
PrintDialog dialogPrint = new PrintDialog();//遍历打印机纸盒里面的纸张,找到需要的A3
foreach (PaperSize ps in dialogPrint.PrinterSettings.PaperSizes)
{if (ps.PaperName.Equals("A3"))p = ps;
}//设置打印的纸张大小为A3
doc.PrintSettings.PaperSize = p;//打印
doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true);
doc.Print();
C# 自定义纸张大小打印 PDF相关推荐
- 水晶报表自定义纸张大小打印 (转)
水晶报表自定义纸张大小打印 (Crystal Report Print with custom paper size) 水晶报表查看器CrystalReportViewer自带打印功能,调用当前系统默 ...
- Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等
这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机.自定义纸张大小.设置打印参数.以及显示打印对话框等. 导入jar文件 本文所使用的PDF类库是Spire.PDF ...
- 弄了一整天,终于把打印自定义纸张大小搞定了(上)--IT man
Csdn-Blog <script language="javascript" src="http://www.023rcsc.com/count/count2.a ...
- access的papersize命令_[access报表]报表中使用自定义纸张,及设置自定义纸张大小
时 间:2009-05-08 08:39:23 作 者:摘 要:报表中使用自定义纸张,及设置自定义纸张大小 正 文: 报表中使用自定义纸张,及设置自定义纸张大小 Private Type str_DE ...
- 【python-docx】插入节、自定义纸张大小、纸张方向、页边距、装订线、页眉页脚、首页相同和奇偶页不同
1.插入节 Word可以把文档分成不同的部分方便管理,即不同的节,在python-docx把节用Section对象表示,Document对象有add_section()方法添加节,可以通过sectio ...
- 打印机服务器纸张属性不显示,为什么我的打印机能在打印机服务器属性里设置自定义纸张大小,却无法? 爱问知识人...
问题原因及解决方法 1.在以往的Windows 98操作系统中,打印机属性里的"纸张大小"中有"自定义"一项.而Windows 2000和Windows XP中 ...
- 弄了一整天,终于把打印自定义纸张大小搞定了
长江支流说的办法保留太多了,结果不行,很多类都是他在程序集里自定义的,源码又没公开 不过还是要感谢他的提示 今天和小陈搞了一天,他在国外的论坛上看到了一篇文章得到了启示,最后我们在凌晨3点终于把自定义 ...
- 打印系统开发(23)——c# PrintDocument 设置自定义纸张大小的示例
.Net 提供的打印类PrintDocument 非常简洁易用,不过在实际应用开发中往往需要对纸张进行自定义,尤其是需要进行票据打印时.这个问题也困扰了我许久,经过查阅相关的资料和多次尝试,发现其实也 ...
- Java 打印功能带预览,自定义纸张大小
效果图 package print; import java.awt.*; import java.awt.print.*; import javax.print.PrintService; impo ...
最新文章
- 组织软件测试中应当避免的几个常见现象
- SDG、SGD-M实现
- 【转贴】PLSQL不安装客户端连接远程oracle
- gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了
- 基于ASP的课外培训在线教育毕设免费下载
- CentOS搭建SVN记录
- java基础70 负责静态的网页制作语言XML(网页知识)
- python os.path.splitext()的用法_Python中的os.path路径模块中的操作方法总结
- Java 应用Nginx+ffmpeg实现海康视频web直播
- 电视机顶盒搜台原理和方法简析
- 一文教会你使用 Neo4j 快速构建明星关系图谱
- Java对文件/文件夹进行压缩或解压缩
- 安卓实战之登录界面设计
- 一个函数叫random.sample
- 重庆大学计算机学院毕业设计题目,图像处理毕业设计题目.docx
- HC05蓝牙模块配对步骤及AT模式设置方法(转载并进行部分修改)
- JDK8中String的intern()方法详细解读【内存图解+多种例子+1.1w字长文】
- C++的errorC2039
- 江西理工大学理学院计算机,2016年江西理工大学理学院计算机科学与技术(加试)之C程序设计复试笔试最后押题五套卷...
- 玩转华为ENSP模拟器系列 | 配置多段拼接场景下的伪线BFD示例