你直接輸出一個pdf文件就可以了。只要客戶端安裝有這個軟件。其實,就是直接生成一個 下載的文件,然客戶下載,客戶一下載,就用pdf程序,打開了。
客户不要下载,他从页面列表中选择它需要的pdf文件后,点击打印按钮,然后就调用它客户端的打印机批量打印他选择的文件。
@鄂溪子: 就是 直接讓客戶打開pdf文件哦。然後自己選擇打印。
@無限遐想: 你程序是服務器端。服務器端能指定客戶端打印?
@無限遐想: 所以将文件在客户端用Adobe呈现,然后使用Adobe上的打印功能来实现打印。
@鄂溪子: 我說的 就是這樣實現哦。其實,就是一個pdf的報表哦。我們都實現過哦。
@無限遐想: 你们实现过? 那可不可以给我讲讲你们是怎么实现的呢?
@鄂溪子: 錯了。我們 也是 輸出一個pdf的報表,就像下載一樣,可以選擇打開 或則保存。
@無限遐想: string fileName = this.Title + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
//下載報表
Response.ClearHeaders();
Response.Clear();
Response.Expires = 0;
Response.Buffer = true;
Response.AddHeader("Accept-Language", currentCulture);
string tmp = "attachment;filename=" + System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(fileName));
Response.AddHeader("content-disposition", tmp);
Response.ContentType = "Application/pdf";
ms = (System.IO.MemoryStream)rptDoc.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
byte[] theData = ms.ToArray();
Response.BinaryWrite(theData);
ms.Close();
ms.Dispose();
Response.Flush();
Response.Close();
开进程调用
问题是,开进程调用,要打开的不是一个文件 ,而是一个文件流。
@鄂溪子: 保存临时文件也行啊
process进程直接打印,只要按了Adobe Reader,就会自动打开,我就是这么干的。