当打印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相关推荐

  1. 水晶报表自定义纸张大小打印 (转)

    水晶报表自定义纸张大小打印 (Crystal Report Print with custom paper size) 水晶报表查看器CrystalReportViewer自带打印功能,调用当前系统默 ...

  2. Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等

    这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机.自定义纸张大小.设置打印参数.以及显示打印对话框等. 导入jar文件 本文所使用的PDF类库是Spire.PDF ...

  3. 弄了一整天,终于把打印自定义纸张大小搞定了(上)--IT man

    Csdn-Blog <script language="javascript" src="http://www.023rcsc.com/count/count2.a ...

  4. access的papersize命令_[access报表]报表中使用自定义纸张,及设置自定义纸张大小

    时 间:2009-05-08 08:39:23 作 者:摘 要:报表中使用自定义纸张,及设置自定义纸张大小 正 文: 报表中使用自定义纸张,及设置自定义纸张大小 Private Type str_DE ...

  5. 【python-docx】插入节、自定义纸张大小、纸张方向、页边距、装订线、页眉页脚、首页相同和奇偶页不同

    1.插入节 Word可以把文档分成不同的部分方便管理,即不同的节,在python-docx把节用Section对象表示,Document对象有add_section()方法添加节,可以通过sectio ...

  6. 打印机服务器纸张属性不显示,为什么我的打印机能在打印机服务器属性里设置自定义纸张大小,却无法? 爱问知识人...

    问题原因及解决方法 1.在以往的Windows 98操作系统中,打印机属性里的"纸张大小"中有"自定义"一项.而Windows 2000和Windows XP中 ...

  7. 弄了一整天,终于把打印自定义纸张大小搞定了

    长江支流说的办法保留太多了,结果不行,很多类都是他在程序集里自定义的,源码又没公开 不过还是要感谢他的提示 今天和小陈搞了一天,他在国外的论坛上看到了一篇文章得到了启示,最后我们在凌晨3点终于把自定义 ...

  8. 打印系统开发(23)——c# PrintDocument 设置自定义纸张大小的示例

    .Net 提供的打印类PrintDocument 非常简洁易用,不过在实际应用开发中往往需要对纸张进行自定义,尤其是需要进行票据打印时.这个问题也困扰了我许久,经过查阅相关的资料和多次尝试,发现其实也 ...

  9. Java 打印功能带预览,自定义纸张大小

    效果图 package print; import java.awt.*; import java.awt.print.*; import javax.print.PrintService; impo ...

最新文章

  1. 组织软件测试中应当避免的几个常见现象
  2. SDG、SGD-M实现
  3. 【转贴】PLSQL不安装客户端连接远程oracle
  4. gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了
  5. 基于ASP的课外培训在线教育毕设免费下载
  6. CentOS搭建SVN记录
  7. java基础70 负责静态的网页制作语言XML(网页知识)
  8. python os.path.splitext()的用法_Python中的os.path路径模块中的操作方法总结
  9. Java 应用Nginx+ffmpeg实现海康视频web直播
  10. 电视机顶盒搜台原理和方法简析
  11. 一文教会你使用 Neo4j 快速构建明星关系图谱
  12. Java对文件/文件夹进行压缩或解压缩
  13. 安卓实战之登录界面设计
  14. 一个函数叫random.sample
  15. 重庆大学计算机学院毕业设计题目,图像处理毕业设计题目.docx
  16. HC05蓝牙模块配对步骤及AT模式设置方法(转载并进行部分修改)
  17. JDK8中String的intern()方法详细解读【内存图解+多种例子+1.1w字长文】
  18. C++的errorC2039
  19. 江西理工大学理学院计算机,2016年江西理工大学理学院计算机科学与技术(加试)之C程序设计复试笔试最后押题五套卷...
  20. 玩转华为ENSP模拟器系列 | 配置多段拼接场景下的伪线BFD示例

热门文章

  1. JavaScript <script>标签
  2. 认识小波——MATLAB中国的讲座(笔记)
  3. 多核编程指南(六)---进程间通信(三)
  4. Jmeter Netty TCP压测EOL设置
  5. destoon 实用手册1
  6. 在Coursera,随时都是学习的好时候
  7. 第九章 习惯六 统合综效——创造性合作的原则
  8. 2001-2009年日语能力考试(三级) 真题听力
  9. jQ实现鼠标移入移出事件
  10. 拆了小米的小台灯,手贱,多图