Click here to Skip to main content
14,488,104 members
Rate this:
Please Sign up or sign in to vote.
See more:
Hi All,

I have written a code to print the PDF document Directly. During this ADOBE is opening. Can any one tell me how to print the PDF without opening adobe.I found some articles but not worked for me...Here is my code

private void SendToDirectPrint(string filename)
        {
            ProcessStartInfo info = new ProcessStartInfo();
            info.Verb = "print";
            info.FileName = filename;
            info.CreateNoWindow = true;

            info.WindowStyle = ProcessWindowStyle.Hidden;

            Process p = new Process();
            p.StartInfo = info;
            p.Start();

            if (p.HasExited == false)
            {
                p.WaitForExit(10000);
            }

            p.WaitForInputIdle();
            if (false == p.CloseMainWindow())
                p.Kill();
        }
Posted
Rate this:
Please Sign up or sign in to vote.

Solution 1

   
Rate this:
Please Sign up or sign in to vote.

Solution 3

You can use this code for aspx
----------------------------------------------------------------------------------

 <script type="text/javascript" language="javascript">

        function fnPrint() {
            var a = window.open('', '', 'left =' + screen.width - 100 + ',top=' + screen.height - 10 + ',width=0,height=0,toolbar=0,scrollbars=0,status=0');
            a.document.write(document.getElementById('receipt').innerHTML);
            a.document.close();
            a.focus();
            //call print
            a.print();
            a.close();

        }
      
    </script>
   
v2
Rate this:
Please Sign up or sign in to vote.

Solution 4

For Extjs :

-----------------------------------------------------------------------------------
   text: '' + printReceipt_lbl + '',
                 handler: function () {
                     var txthidenAmountToPay = Ext.getCmp('txtAmountToPay').getValue();
                     var Credit = Ext.getCmp('txtCredit').getValue();
                     var OsAmount = Ext.getCmp('txtOsAmount').getValue();
                     var RecNo = TrimString(Ext.getCmp('txtRecNo').getValue());
                     window.open('../Certificates/BillReceipt.aspx?BillNo=' + RecNo + '&AmountToPay=' + txthidenAmountToPay +
                 '&Credit=' + Credit + '&OsAmount=' + OsAmount, 'name', 'height=800,width=700,scrollbars=1');

                 }
   
v3
Rate this:
Please Sign up or sign in to vote.

Solution 5

function fnPrint(Quotation_project) {
            // window.print();
            var txtOrg_id = Ext.getCmp('txtOrg_id').getValue();
      var txtQuotation_no = Ext.getCmp('txtQuotation_no').getValue();
      var DtDate = (Ext.Date.format(Ext.getCmp('dtDate').getValue(), 'd/m/Y'));
      var txtAddress = Ext.getCmp('txtAddress').getValue();
      var cmbHeadInvoice=Ext.getCmp('cmbHeadInvoice').getValue();
      var txtFinancial_year = Ext.getCmp('txtFinancial_year').getValue();
      var txtInvoice_number = Ext.getCmp('txtInvoice_number').getValue();
      var txtQuotation_amount = Ext.getCmp('txtQuotation_amount').getValue();
     
      var txtInvoice_amount= Ext.getCmp('txtInvoice_amount').getValue();
      var txtStatus= Ext.getCmp('txtStatus').getValue();
      var txtPending_amount= Ext.getCmp('txtPending_amount').getValue();
      var txtCustomer_name= Ext.getCmp('txtCustomer_name').getValue();
      var txtContact_person= Ext.getCmp('txtContact_person').getValue();
     
      var txtEmail= Ext.getCmp('txtEmail').getValue();
    
    //  alert(Tproduct);
          var htmlMarkup=[
''+
'<html xmlns="http://www.w3.org/1999/xhtml">'+
'<head>'+
''+
'body {'+
'	font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;'+
'	margin: 0;'+
'	padding: 0;'+	
'}'+
'h1, h2, h3, h4, h5, h6, p {'+
'	margin-top: 0;	'+
'	padding-right: 15px;'+
'	padding-left: 15px;'+ 
'}'+
'.container {'+
'	width: 80%;'+
'	max-width: 1260px;'+
'	min-width: 780px;'+
'	background: #FFF;'+
'	margin: 0 auto;'+
'}'+
'</head>'+
'<body>'+
''+
 ' '+
  '   '+
   '  INVOICE      '+
    ' Solutions Private Limited.                                                   Date : '+DtDate+' '+
    '  #21,  1st Floor, Rajashree Mansion                                                      Invoice No:'+txtInvoice_number+''+
     ' ABC  Nagar'+
      ' Main Road'+
      ' 7th Phase,'+
      'Bangalore  512121'+
      ' Ph:  +91 80 1124554'+
'Delivery  Address:'+
''+txtCustomer_name+''+
''+txtAddress+' '+
''+
'Comments or special  instructions:'+
''+
  ''+
   ''+
    ''+
    ''+
   
    ''+
  ''+
  ''+
    ''+
    ''+
    ''+
    ''+
  ''+
'Quotation NumberProduct NmeQuotation AmountInvoice Amount'+txtQuotation_no+''+Quotation_project+''+txtQuotation_amount+''+txtInvoice_amount+'    '+
   '      '+
    'Make all cheques payable to  Solutions Private Limited.'+
    'If you have any questions  concerning this invoice, contact ['+txtContact_person+' '+txtEmail+']'+
    ' '+
    ' THANK YOU FOR YOUR BUSINESS!'+
    ''+
     ' '+
    ''+
    'For  Solutions Pvt Ltd'+
    'Pad'+
    'Managing Director'+
  ''+
'</body>'+
'</html>'
  ];
            var a = window.open('', '', 'left =' + screen.width + ',top=' + screen.height + ',width=0,height=0,toolbar=0,scrollbars=1,status=0');
  a.document.write(htmlMarkup);
            a.document.close();
            a.focus();
            //call print
            a.print();
}
   
Rate this:
Please Sign up or sign in to vote.

Solution 6

Your code will print the pdf to a printer attached to the SERVER where your ASP.NET website is hosted. Is that what you want? I mean, or do you want to print to the client printer?
If printing to the server printer then install FoxIt Reader instead of using Adobe Reader. FoxIt will not open when printing from command line.
   
Comments
Pambala 3-Dec-14 0:52am
   
Thank you.yeah i tested on FoxIt Reader its works on it.but they didn't like to go FoxIt Reader that the problem. thank you again your answer.
Rate this:
Please Sign up or sign in to vote.

Solution 2

register to http://pdfcrowd.com/
protected void img_Click(object sender, ImageClickEventArgs e)
    {
System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
     try
       {
        var Date = Request.QueryString["Date"].ToString();
        var Org_name = Request.QueryString["Org_name"].ToString();
        var Org_Address = Request.QueryString["Org_Address"].ToString();
        ------------ 
        ------------


// create an API client instance
            pdfcrowd.Client client = new pdfcrowd.Client("username", "password");
//username & password should be given when registration and there are only 150 //converstion is free

            // convert a web page and write the generated PDF to a memory stream
            MemoryStream Stream = new MemoryStream();

            // string sunil = Request.QueryString["test1"].ToString();
            //  string html = "<head></head><body>My HTML Layout" + Request.QueryString["Date"] + "</body>";
            string html = @"

<head>
----------------
---------------

</head>

</body>
</html>


";
client.convertHtml(html, Stream);



            // set HTTP response headers
            Response.Clear();
            Response.AddHeader("Content-Type", "application/pdf");
            Response.AddHeader("Cache-Control", "max-age=0");
            Response.AddHeader("Accept-Ranges", "none");
            Response.AddHeader("Content-Disposition", "attachment; filename=Sample_Letter.pdf");

            // send the generated PDF
            Stream.WriteTo(Response.OutputStream);
            Stream.Close();
            Response.Flush();
            Response.End();
 }
        catch (pdfcrowd.Error why)
        {
            Response.Write(why.ToString());
        }
    }
   
v5
Rate this:
Please Sign up or sign in to vote.

Solution 7

For VB .Net I found this:

Private Sub PrintTestPages()
        Dim oProcess As New System.Diagnostics.Process
        With oProcess.StartInfo
            .CreateNoWindow = True
            .WindowStyle = ProcessWindowStyle.Hidden
            .Verb = "print"
            .Arguments = "Actual Size"
            .UseShellExecute = True
            .FileName = "c:\mydocumentfolder\test.pdf"
        End With
        oProcess.Start()
    End Sub


Originally from: [FAQ's: OD] How do I print a document without opening it?-VBForums[^]
   
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100