2011-09-13 5 views
10

나는 종이 커팅 명령을 프린터 (USB 포트가있는 Epson TM U220)로 보냄으로써 실제로 종이를 자르려고합니다. Epson 고급 프린터 드라이버를 설치 한 후 Generic/Text Only 드라이버와 Epson 프린터 포트로 프린터를 사용했습니다. 프린터 명령 코드는 (GS V m)입니다. 여기서 m = 0,1,48 또는 49는 장치 설명서에 나와 있습니다. 이 명령을 StringWriter가 프린터로 보내는 방법을 알고 싶습니다. Epson 드라이버를 사용하는 것보다 훨씬 빠르기 때문에 Generic/Text Only 프린터를 사용합니다.엡손 프린터로 페이지 잘라 내기 명령을 보내는 방법

저는 C# 윈도우에 익숙하지 않고 누구나 친절하게도이를 달성하기 위해 몇 줄의 코드를 제공 해주시기 바랍니다. 나는 며칠 동안 웹 서핑을 해왔지만 여전히 답을 찾지 못했습니다. 바이트로 프린터 명령을 보낼 필요가 있다고 생각하지만 어떻게 해야할지 모르겠다. (

+7

드라이버를 사용하지 마십시오. http://support.microsoft.com/kb/322091 –

답변

18

한스 매우 고맙습니다. 이제 Microsoft RawPrinterHelper 클래스를 사용하여 Paper cut 명령을 보낼 수 있습니다. . 육일 여기에 대한 해결책은 내가 무슨 짓을했는지 된 용지 절단, (어떤 드라이버를 설치하지 않고 뭔가를 인쇄하려면 정말 쉬운 방법) netcat로 인쇄하는 사람들을 위해

string GS = Convert.ToString((char)29); 
string ESC = Convert.ToString((char)27); 

string COMMAND = ""; 
COMMAND = ESC + "@"; 
COMMAND += GS + "V" + (char)1; 

PrintDialog pd = new PrintDialog(); 
pd.PrinterSettings = new PrinterSettings(); 
if (DialogResult.OK == pd.ShowDialog(this)) 
{ 
RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, COMMAND); 
} 
+0

특정 장소에서 내 페이지를 부분적으로 자르고 싶습니다 ... 가능합니까? Star Label Printer를 사용하고 있습니다. – highwingers

1

:.

echo -e "\[email protected]\x1DV1" | nc printer.ip 9100 

을 C# 버전과 같은 문자열이지만 16 진수로 매핑 됨 : \x1B = ESC\x1D = GS.

관련 문제