Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将PDF自动打印到特定打印机和托盘_C#_Pdf_Printing - Fatal编程技术网

C# 将PDF自动打印到特定打印机和托盘

C# 将PDF自动打印到特定打印机和托盘,c#,pdf,printing,C#,Pdf,Printing,我有一个C#应用程序,当用户单击“打印”时,该应用程序使用ITextSharp在memorystream中创建一个PDF。我需要将此PDF自动打印到特定的打印机和托盘。 我已经搜索过了,但我能找到的只是使用javascript,但它不会打印到特定的托盘。 有人有这样做的例子吗? 谢谢。有一个叫做pdfprint的工具: 在这里,他们讨论了一些解决方案: 您可以使用此代码更改打印机托盘 string _paperSource = "TRAY 2"; // Printer Tray string

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

有一个叫做pdfprint的工具:

在这里,他们讨论了一些解决方案:


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

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 :)

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

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

所以我测试了很多第三方工具(试用版)和web中的最佳实践。 一般来说,所有这些工具都可以分为两类:a)直接将pdf文件发送到打印机(在UI中是无声的)或b)使用内置的pdf预览程序在UI中打开pdf文件,使用.Net PrintDocument

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


希望对您有所帮助。

pdfprint价格昂贵,我真的需要一个免费的解决方案。您可能很难找到免费的解决方案。您可以尝试一些免费的PDF库,拆分文件,然后使用普通的acrobate命令行工具将它们打印到不同的打印机。但首先你必须能够分割pdf文件。另一个商业解决方案是打印和共享。它可以在打印机之间进行路由,可以删除配置文件,可以打印到不同的纸盘并合并所有文件。为什么你对我的评价很低?我对此有一个问题。。在foreach语句中,我只有autoselect、auto和manual feed选项可用。有人能帮我吗?