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();

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值