解决方案 »

  1.   

    你不如代码直接控制打印机打印,还生成PDF干嘛
      

  2.   


    WinForm下好办多了,Aspnet下只能借助Activex 了要不然没法子
      

  3.   

    因为表格还没出来的。不是只扫出那个条码,是要打印一个面单,所以把拼好的表格放到pdf文件去而已
      

  4.   


    是指<input onclick="document.all.WebBrowser.ExecWB(6,6)" type="button" value="直接打印">  这个方法吗
      

  5.   


    是指<input onclick="document.all.WebBrowser.ExecWB(6,6)" type="button" value="直接打印">  这个方法吗当然不是,浏览器上没有能直接打印PDF的功能,你要借第三方的组件,所以才说用ActiveX加载第三方组件,然后直接调用打印方法
      

  6.   

    直接生成网页,然后使用javascript的window.print,弹出打印框,让用户点一下。否则你是没权限控制对方的打印机的,除非ActiveX。
      

  7.   

    用水晶报表 的  activex 模式看看吧
      

  8.   

    我把我的解决办法也贴出来吧,
    1,把生成PDF文档到MemoryStream.
    MemoryStream pdfdata = new MemoryStream();
    PdfWriter writer = PdfWriter.GetInstance(document, pdfdata);
    2,在PdfWriter中加javescript.StringBuilder script = new StringBuilder();
                    script.Append("this.print({bUI: true,bSilent: true,bShrinkToFit: false});");                writer.ViewerPreferences = PdfWriter.HideMenubar | PdfWriter.HideToolbar | PdfWriter.HideWindowUI;
                    writer.AddJavaScript(script.ToString());
    3,输出到客户端缓存.        protected void submit_Click(object sender, EventArgs e)
            {
                MemoryStream PDFData =1中的返回值;
                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.ContentType = "application/pdf";
                Response.Charset = string.Empty;
                Response.Cache.SetCacheability(System.Web.HttpCacheability.Public);
                Response.AddHeader("Content-Disposition",
                "inline; filename=" + Title.Replace(" ", "").Replace(":", "-") + ".pdf");            Response.OutputStream.Write(PDFData.GetBuffer(), 0, PDFData.GetBuffer().Length);
                Response.OutputStream.Flush();
                Response.OutputStream.Close();
            }
    4,我在页面上放一个iframe(width=0,height=0),就是让他不可见,让pdf文档在他下面打开,就会执行打印动作.
     <form id="form1" runat="server" target="iframe1">
            <div><center>        
            <br />
            <asp:Button ID="submit" runat="server" OnClick="submit_Click" Text="Print PO" />
             </center></div>
        </form>
        <iframe name="iframe1" width="0" height="0">      
        </iframe>
    希望对想和我实现一样功能的朋友有些参考价值.走到writer.AddJavaScript(script.ToString());报对象为空