2017-05-18 101 views
2

你好我試圖從我的網站打印收據/票證,但我沒有一個普通的打印機,我有一個Epson TM-T88V收據打印機,所以我不能使用正常或作爲正常文檔打印,如何使用本打印機進行打印?我試着用這段代碼,但似乎只適用於Windows窗體應用程序不與Web窗體可能問題是,我試圖使用ajax調用在WebMethod中執行我的代碼。從網站打印票

的WebMethod和打印代碼

[WebMethod] 
public string print() 
{ 
    try 
    { 
     pd.PrintPage += new PrintPageEventHandler(Imprimir); 
     return "Printing..."; 
    } 
    catch (Exception ex) 
    { 
     return "Error: " + ex.Message; 
    } 
} 

public void Imprimir(object sender, PrintPageEventArgs e) 
{ 
    string titulo = "MyCompany"; 
    string direccion = "Address"; 
    string datos = "number    RFC: "; 
    string datos2 = "description    17/05/2017 3:55 p.m."; 
    PrintDocument ticket = new PrintDocument(); 

    Graphics g = e.Graphics; 
    g.DrawRectangle(Pens.Black, 5, 5, 410, 530); 

    Font fBody = new Font("Lucida Console", 15, FontStyle.Bold); 
    Font fBody1 = new Font("Lucida Console", 15, FontStyle.Regular); 
    Font fBody2 = new Font("Lucida Console", 9, FontStyle.Regular); 
    Font rs = new Font("Stencil", 25, FontStyle.Bold); 
    Font fTType = new Font("", 150, FontStyle.Bold); 
    SolidBrush sb = new SolidBrush(Color.Black); 

    g.DrawString(titulo, fBody, sb, 10, 120); 
    g.DrawString(direccion, fBody1, sb, 10, 120); 
    g.DrawString(datos, fBody1, sb, 10, 120); 
    g.DrawString(datos2, fBody1, sb, 10, 120); 

    g.DrawString("------------------------------", fBody1, sb, 10, 120); 

    g.Dispose(); 

    pd.PrintController = new StandardPrintController(); 
    pd.DefaultPageSettings.Margins.Left = 0; 
    pd.DefaultPageSettings.Margins.Right = 0; 
    pd.DefaultPageSettings.Margins.Top = 0; 
    pd.DefaultPageSettings.Margins.Bottom = 0; 

    pd.Print(); 
} 

AJAX調用

function Imprimir() { 
     CallWM('../../ws_webservice.asmx/print', 
     { }, 
     function (r_json) { 
       bootbox.alert(r_json); 
      }); 
} 

我得到的Printing...消息,但打印什麼,這是我的問題嗎?另外我想知道是否可以調用Imprimir方法但發送參數,我該怎麼做?

PD。我使用C#,ASP.NET,html頁面和ajax。

+0

可能的工作,但你需要注意的是,文件會從服務器發送到打印機。必須從服務器(例如,LAN上的共享打印機)可以訪問打印機。 – dlatikay

+0

@dlatikay我在想這個!如果我有不同的電腦運行我的網站(他們將有相同的打印機型號)? –

回答

2

就拿這部分代碼從Imprimirprint()

pd.PrintController = new StandardPrintController(); 
    pd.DefaultPageSettings.Margins.Left = 0; 
    pd.DefaultPageSettings.Margins.Right = 0; 
    pd.DefaultPageSettings.Margins.Top = 0; 
    pd.DefaultPageSettings.Margins.Bottom = 0; 

    pd.Print(); 

更多有關PrintDocument看​​3210

+0

現在我收到了這條消息:「沒有安裝打印機」,但打印機已正確安裝,我發送了一個測試頁,一切正常,可能是上面提到的問題「文檔將從服務器發送到打印機」。我將打印機連接到不在服務器中的計算機,可以使用此代碼在計算機中打印,或者我需要其他東西? –

+0

@FranciscoFernandez WebMethod在服務器端工作,它只是遠程調用可訪問 –

+0

該死!那麼......謝謝,我會接受你的答案,因爲你用我現在的代碼來幫助我,現在我要爲這個問題找到一個解決方案(使用沒有連接到我的服務器的打印機)。 –