zoukankan      html  css  js  c++  java
  • .NET 操作PDF文档以及PDF文件打印摸索总结

    关于生成 PDF 的操作,相信大家的在实际的工作过程中难免会碰到。以前我们通过生成 word 文档来进行文件的打印,但是由于太过依赖 office 软件,因此尝试能不能使用 PDF 进行文件打印。

    在整理资料过程中碰到了最麻烦的问题不是文档生成,而是PDF文件的打印问题。

    关于 PDF 的组件网上有很多:

    1、Spire.Pdf 功能强大的PDF生成组件,同时又收费版本。

    2、PDFsharp

      1.可以使用任何.NET编程语言动态创建PDF文档
      2.很容易使用对象模型来构建文档
      3.全部用C#重写设计和编写代码
      4.可以生成PDF文件和显示在窗体或者打印,都使用同一源文件
      5.可以修改、合并或者分割PDF文件
      6.可以控制图片的透明度,嵌入了字体

    3、iTextSharp 比较常用的

      相当于 Java 版的 iText,缺点是没办法打印。

    重点说一下对于 PDF 的打印。

    在 stackoverflow 上搜索:c# print pdf

    http://stackoverflow.com/questions/5566186/print-pdf-in-c-sharp

    方法一:

    Process p = new Process( );
    p.StartInfo = new ProcessStartInfo( )
    {
        CreateNoWindow = true,
        Verb = "print",
        FileName = path //put the correct path here
    };
    p.Start( );

    问题:需要设置默认的PDF阅读软件才可以。

    方法二:

    有一个 LPR 的组件,需要在控制面板添加应用程序,太麻烦,不推荐使用。

    Process.Start("LPR -S printerdnsalias -P raw C:filesfile.pdf");

    方法三:

    一些第三方组件(都是收费的)

    VintaSoftImaging.NET SDK

    Total PDF Printer X

    RawFilePrinter

    福昕软件

    最后有一招管用(Spire.PDF):

    有对应的免费版,可以使用。

    https://www.nuget.org/packages/Spire.PDF/

    PdfDocument pdfdocument = new PdfDocument();
    pdfdocument.LoadFromFile(pdfPathAndFileName);
    pdfdocument.PrinterName = "My Printer";
    pdfdocument.PrintDocument.PrinterSettings.Copies = 2;
    pdfdocument.PrintDocument.Print();
    pdfdocument.Dispose();
     
  • 相关阅读:
    Vue单向数据流
    npm常用命令
    vue自定义指令
    slot的用法(Vue插槽)
    js闭包
    canvas 给画的多边形着色
    canvas画线
    canvas初体验
    canvas
    json
  • 原文地址:https://www.cnblogs.com/easeyeah/p/print-pdf-in-c-sharp.html
Copyright © 2011-2022 走看看