【问题标题】:Printing A PDF Automatically to a specific printer and tray将 PDF 自动打印到特定的打印机和托盘
【发布时间】:2011-01-26 18:04:02
【问题描述】:

我有一个 C# 应用程序,当用户单击打印时,该应用程序使用 ITextSharp 在内存流中创建一个 PDF。我需要将此 PDF 自动打印到特定的打印机和托盘。 我已经搜索过这个,但我能找到的只是使用 javascript,但它不会打印到特定的托盘。 有没有人有这样做的例子? 谢谢。

【问题讨论】:

    标签: c# pdf printing


    【解决方案1】:

    您可以使用此代码更改打印机托盘。

    string _paperSource = "TRAY 2"; // Printer Tray
    string _paperName = "8x17"; // Printer paper name
    
    //Tested code comment. The commented code was the one I tested, but when 
    //I was writing the post I realized that could be done with less code.
    
    //PaperSize pSize = new PaperSize()  //Tested code :)
    //PaperSource pSource = new PaperSource(); //Tested code :)
    
    /// Find selected paperSource and paperName.
    foreach (PaperSource _pSource in printDoc.PrinterSettings.PaperSources)
    if (_pSource.SourceName.ToUpper() == _paperSource.ToUpper())
    {
    printDoc.DefaultPageSettings.PaperSource = _pSource;
    //pSource = _pSource; //Tested code :)
    break;
    }
    foreach (PaperSize _pSize in printDoc.PrinterSettings.PaperSizes)
    if (_pSize.PaperName.ToUpper() == _paperName.ToUpper())
    {
    printDoc.DefaultPageSettings.PaperSize = _pSize;
    //pSize = _pSize; //Tested code :)
    break;
    }
    
    //printDoc.DefaultPageSettings.PaperSize = pSize; //Tested code :)
    //printDoc.DefaultPageSettings.PaperSource = pSource;    //Tested code :)
    

    【讨论】:

    • 我对此有疑问。在 foreach 语句中,我只有自动选择、自动和手动馈送选项可用。谁能帮我解决这个问题?
    【解决方案2】:

    过去,我花了很多时间在网上搜索将 pdf 文件打印到特定打印机托盘的解决方案。

    我的要求是:从服务器目录中收集几个 pdf 文件,并将每个文件循环发送到不同的打印机托盘。

    所以我已经测试了很多 3rd 方工具(试验)和在 web.xml 中找到的最佳实践。 一般来说,所有这些工具都可以分为两类:a)以直接方式将 pdf 文件发送到打印机(在 UI 中静默)或 b)使用内置的 pdf 预览器在 UI 中打开 pdf 文件与 .Net-PrintDocument 一起使用。

    解决我的要求的唯一解决方案是来自veryPdf 的PDFPrint(缺点:它不是无价的,但我的公司买了它)。所有其他工具和解决方案都不可靠,这意味着:使用参数调用它们的打印例程,例如id = 258(定义托盘 2;从已安装的打印机获取)但在托盘 3 中打印 pdf 文件或在打印预览器 (UI) 中打开 pdf 时出现图像丢失或内容完全空白等情况。

    希望能有所帮助。

    【讨论】:

    • 你为什么要给我打分?
    【解决方案3】:

    【讨论】:

    • pdfprint 很贵,我真的需要一个免费的解决方案。
    • 您可能很难找到免费的解决方案。您可以尝试一些免费的 PDF 库并拆分文件,然后使用普通的 acrobate 命令行工具将它们打印到不同的打印机。但首先你必须能够拆分 pdf 文件。
    • 另一种商业解决方案称为 Print&Share。它可以在打印机之间路由,具有配置文件选择,可以打印到不同的纸盘并结合所有。
    猜你喜欢
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多