本文为转载,原文:http://www.cnblogs.com/Yesi/p/5066835.html

DLL地址:https://freepdf.codeplex.com

下面是该解决方案的详细代码分步解析:

第一步:添加项目引用。

安装控件后,创建一个新的项目,找到控件的安装目录,在项目的“解决方案”窗口右击->添加引用,选择和项目.NET Framework版本对应的dll文件进行添加;

如下图:

第二步:使用命名空间。

在该方案中,我使用的命名空间如下:

1
2
3
using Spire.Pdf;
using System.Windows.Forms;
using System.Drawing.Printing;

第三步:创建一个新的PDF文档,并加载待打印的PDF文件。

1
2
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("sample.pdf");

如果需要使用默认打印机打印所有页面,请看第四步。如果需要使用其他打印机并设置打印页面范围,请看第五步。

第四步:使用默认打印机打印所有页面。

1
doc.PrintDocument.Print();

第五步:选择打印机和设置打印页面范围。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
PrintDialog dialogPrint = new PrintDialog();
dialogPrint.AllowPrintToFile = true;
dialogPrint.AllowSomePages = true;
dialogPrint.PrinterSettings.MinimumPage = 1;
dialogPrint.PrinterSettings.MaximumPage = doc.Pages.Count;
dialogPrint.PrinterSettings.FromPage = 1;
dialogPrint.PrinterSettings.ToPage = doc.Pages.Count;
 
if (dialogPrint.ShowDialog() == DialogResult.OK)
    {
        //设置打印的起始页码
        doc.PrintFromPage = dialogPrint.PrinterSettings.FromPage;
 
        //设置打印的终止页码
        doc.PrintToPage = dialogPrint.PrinterSettings.ToPage;
 
        //选择打印机
        doc.PrinterName = dialogPrint.PrinterSettings.PrinterName;
 
        PrintDocument printDoc = doc.PrintDocument;
        dialogPrint.Document = printDoc;
        printDoc.Print();
    }

运行项目,输出的效果图如下(打印机和打印页面范围可以自己选择):

全部代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using Spire.Pdf;
using System.Windows.Forms;
using System.Drawing.Printing;
 
namespace PrintPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("sample.pdf");
  
            //选择默认打印机打印所有页面
            //doc.PrintDocument.Print();
 
            //选择打印机并设置打印页面范围
            PrintDialog dialogPrint = new PrintDialog();
            dialogPrint.AllowPrintToFile = true;
            dialogPrint.AllowSomePages = true;
            dialogPrint.PrinterSettings.MinimumPage = 1;
            dialogPrint.PrinterSettings.MaximumPage = doc.Pages.Count;
            dialogPrint.PrinterSettings.FromPage = 1;
            dialogPrint.PrinterSettings.ToPage = doc.Pages.Count;
 
            if (dialogPrint.ShowDialog() == DialogResult.OK)
            {
                doc.PrintFromPage = dialogPrint.PrinterSettings.FromPage;
                doc.PrintToPage = dialogPrint.PrinterSettings.ToPage;
                doc.PrinterName = dialogPrint.PrinterSettings.PrinterName;
 
                PrintDocument printDoc = doc.PrintDocument;
                dialogPrint.Document = printDoc;
                printDoc.Print();
            }
        }
    }
}

最新文章

  1. JAVA关键字与保留字说明及使用
  2. Nginx上传文件失败
  3. IO基础
  4. redis学习(4)redis安装部署
  5. C#加密算法汇总
  6. *[topcoder]GooseTattarrattatDiv1
  7. jquery实现DIV层拖动
  8. 使用john破解ubuntu(linux)9.10密码
  9. redis 异常排查
  10. vs2010中socket链接错误LINK2019
  11. Mysql两种存储引擎的优缺点
  12. Invoke-ASCmd 部署SSAS database
  13. selenium各版本jar包下载地址
  14. A*搜索详解(1)——通往基地的最短路线
  15. 添加php的memcached扩展模块
  16. POJ3348 Cows 计算几何 凸包
  17. 【IIS错误 - HTTP 错误 500.19】HTTP 错误 500.19- Internal Server Error 错误解决方法(一)
  18. 【第九章】 springboot + mybatis + 多数据源 (AOP实现)
  19. GridView,datalist添加序号列
  20. Nginx源码分析--epoll模块

热门文章

  1. python数据结构与算法——哈希表
  2. DEDECMS 留言薄模块的使用方法
  3. ng-class的用法
  4. Json与javaBean之间的转换工具类
  5. python杂七杂八小问题
  6. hdu1260 dp
  7. Invert Binary Tree
  8. PHPExcel 导出时乱码
  9. unsigned char 类型
  10. jquery checkbox的相关操作——全选、反选、获得所有选中的checkbox