① .net打印pdf文件
方法一(web):window.print()
print()方法是浏览器打印功能的一种程序调用。print方法用于打印当前窗口的内容。
打印当前页:
function printPage(){
window.print();
}
打印局部页面:
前端页面:<iframe style="width:100%;height:100%;" id="fileId" src="文件路径">
</iframe>
<input type="button" name="print" id="print" value="打印" />
js:$("#print").click(function () {
var iframe = document.getElementById("fileId");
iframe.contentWindow.print();
});
方法二:调用系统API(得保证本地装有相关的软件)
PrintDocument pd = new PrintDocument();
pd.PrinterSettings.PrinterName = "Microsoft Print to PDF";
Process p = new Process
{
StartInfo = new ProcessStartInfo
{
CreateNoWindow = false,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = true,
FileName = filePath,//文件路径
Verb = "print",
Arguments = @"/p /h \" + filePath + "\"\"" + pd.PrinterSettings.PrinterName + "\""
}
};
p.Start();
p.WaitForExit();
方法三:spire打印方式(收费)下面是简单的使用例子
var pdf = new PdfDocument(filePath);
//设置打印机
pdf.PrintSettings.PrinterName = "Microsoft Print to PDF";
pdf.print();
方法四:安装RawPrint
var printer = new Printer();
var file = File.Open(filePath, FileMode.Open);
byte[] array = new byte[file.Length];
file.Read(array, 0, array.Length);
printer.PrintRawStream(printerName, file, "打印机上显示的任务名");
file.Close();
printer.PrintRawFile(printerName, fileFullPath, "打印机上显示的任务名");
这个测试时虚拟打印机上正常,使用公司打印机时出现乱码问题以及打印任务不停的问题