머리말
최근에 프린터는 프로젝트에 사용되었습니다. 처음에는 이해하지 못했지만 지금은 해냈으므로 요약했습니다. 이 기사에는 배경 통화 인쇄 (두 가지 방법)와 프론트 엔드 JS 인쇄가 포함되어 있지만 IE 만 이제 인쇄를 지원합니다. 또한 프린터를 원격으로 연결하려면 QR 코드 생성 및 프린터 명령에서 직접 작동하는 경우 브라우저의 보안 구성을 수정해야합니다. 다음은 자세한 소개입니다.
배경 인쇄의 첫 번째 유형 :
Javax의 Printservicelookup 클래스를 사용하여 인쇄하십시오. 기본 프린터를 직접 호출하거나 다음 방법을 사용하여 필터링하고 인쇄 할 수 있습니다.
printservicelookup.lookupmultidocprintservices (풍미, 속성);
실행 가능한 코드는 다음과 같습니다.
public static void main (String [] args) {fileInputStream textStream = null; try {textStream = new FileInputStream ( "주소"); } catch (filenotfoundException e) {e.printstacktrace (); } if (TextStream! = null) // 인쇄 내용이 비어 있지 않은 경우 {// 인쇄 형식을 지정하여 DocFlaver flavor = docflavor.input_stream.pdf; // service_formatted.printable // 기본 인쇄 서비스 printservice printservice = printservicelookup.lookupdefaultervice (); // 인쇄 작업 생성 DocPrintJob job = printservice.createPrintJob (); // 인쇄 속성 설정 PrintRequestattributeset pras = new Hashprintrequestattributeset (); // 용지 크기를 설정하면 크기 pras.add (mediaSizename.iso_a4)를 사용자 정의하기 위해 새 미디어 크기 클래스를 만들 수도 있습니다. docattributeset das = new hashdocattributeset (); // 인쇄 내용을 지정하여 DOC = New SimpleDoc (TextStream, Flavor, DAS); // 인쇄 대화 상자를 표시하지 않고 인쇄 작업 직접 작업 {job.print (doc, pras); // 각 페이지에서 특정 인쇄 작업을 수행합니다} catch (printexception pe) {pe.printstacktrace (); }} else {// 인쇄 콘텐츠가 비어 있으면 사용자가 Joptionpane.showConfirmDialog를 취소합니다 ( "죄송합니다, 프린터 작업이 비어 있습니다!", "빈", joptionpane.default_option, joptionpane.warning_message); }} 배경 인쇄의 두 번째 유형 :
참고 : 두 번째 및 세 번째 유형의 인쇄는 프린터 명령을 사용합니다. 여기에는 JNA JAR 패키지가 필요하며 JDK에는 32 비트가 필요하며 해당 DLL을 등록해야합니다. 다른 시스템의 경우 DLL은 다른 Windows에 등록되어야합니다. 성공적인 등록 후 Win+R이 필요하며 regsvr32.exe tscactivex.dll 명령이 호출되고 실행됩니다.
실행 가능한 코드는 다음과 같습니다.
공개 클래스 javademo {public interface tsclibdll은 라이브러리 {tsclibdll instance = (tsclibdll) aviR.LoadLibrary ( "tsclib", tsclibdll.class); int asity (); int Openport (String Pianoname); int closePort (); int sendcommand (String PrinterCommand); int 설정 (문자열 너비, 문자열 높이, 문자열 속도, 문자열 밀도, 문자열 센서, 문자열 수직, 문자열 오프셋); int downloadpcx (String filename, String image_name); int barcode (문자열 x, 문자열 y, 문자열 유형, 문자열 높이, 문자열 읽기 가능, 문자열 회전, 문자열 좁은, 문자열 너비, 문자열 코드); int printerfont (문자열 x, 문자열 y, 문자열 fonttype, 문자열 회전, 문자열 xmul, 문자열 ymul, 문자열 텍스트); int clearbuffer (); int printlabel (문자열 세트, 문자열 사본); int formfeed (); int nobackfeed (); int windowsfont (int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, string szfaceName, 문자열 컨텐츠); } public static void main (string [] args) {System.setProperty ( "jna.encoding", "gbk"); // 중국어 simpledateformat df = new simpledateformat ( "yyyy-mm-dd hh : mm : ss"); 문자열 시간 = df.format (새 날짜 ()); 문자열 qrcode = "pd102011"; tsclibdll.instance.openport ( "tsc ttp-244 pro"); // 모델 tsclibdll.instance.setup ( "70", "40", "5", "8", "0", "2", "0"); tsclibdll.instance.clearBuffer (); String Command = "QRCode 120,90, Q, 8, A, 0, M1, S7,/" " + QRCode +"/""; // QR 코드의 매개 변수와 내용을 인쇄 tsclibdll.instance.sendcommand (명령); // 전송 명령 tsclibdll.instance.sendCommand ( "Text 300 70 36 0 0 0 Arial"+ "Office Supplies-Label Paper"); //tsclibdll.instance.windowsfont(300, 70, 36, 0, 0, 0, "Arial", "Office Supplies-Label Paper"); tsclibdll.instance.printlabel ( "1", "1"); tsclibdll.instance.closeport (); }} 참고 : 이 인쇄 방법에는 USB 연결 (TTP-244 Pro)이 필요합니다. 온라인으로 생성하고 원격으로 연결하려면 세 번째 방법을 사용해야합니다.
JS 인쇄의 세 번째 유형
JS를 사용하여 인쇄 할 때 브라우저는 주로 제한됩니다. 현재 IE 브라우저 만 지원합니다. 인쇄 할 때 자동화 서버는 콘솔에서 객체를 생성 할 수 없습니다. 브라우저 보안의 사용자 정의 레벨에서 ActiveX의 관련 설정을 활성화하려면 관련 설정을 조정하십시오. 코드는 다음과 같습니다.
<script type = "text/javaScript"> function printQrcode () {var tscobj = new ActiveXobject ( "tscactivex.tsclib"); // dll printer //tscobj.activexabout (); // 프린터 정보 tscobj.activexopenport ( "tsc ttp-244 pro"); // 프린터 이름, //tscobj.activexdownloadpcx //tscobj.activexdownloadpcx/filesmanager/trunk/doc/02-reference/03-Qr Code Printer/01-Development/PHP 콜 예/tscactivex.dll-php-example/","123.pcx "); tscobj.activexsetup ( "70", "40", "4", "15", "0", "2.5", "0"); // 인쇄 설정 // tscobj.activexsetup ( "레이블 width", "레이블 높이", "인쇄 속도", "인쇄 감각 (0-15)", "검은 색 범주 유형, 1 수단 사용 senso) ","갭/블랙 마크 수직 간격 (mm) ","갭/블랙 마크 오프셋 거리 (mm) "); //tscobj.activexformfeed (); //tscobj.activexnobackfeed (); tscobj.activexsendcommand ( "Direction 1"); // 태그 방향, 방향 1 상단 왼쪽 모서리 (x, y) = {0,0}; 방향 0 하단 오른쪽 코너 (x, y) = {0,0}; tscobj.activexsendcommand ( "눈물 설정"); tscobj.activexclearbuffer (); //tscobj.activexsendcommand ( "putpcx 0,0,/"123.pcx/""); /* 1. ActiveXprInterFont는 일반적으로 영어로 입력하는 데 사용되는 기계 용 인코딩을 사용합니다. 2. ActiveXwindowsFont는 한자를 출력 할 수 있지만 시스템에 존재하는 글꼴이어야합니다. tscobj.activexprinterfont ( "a", "b", "c", "d", "e", "f", "g"); A : 문자열, X 방향의 시작점은 점으로 표시됩니다. B : 문자열, 텍스트 y 방향의 시작점은 점으로 표시됩니다. C : 총 12 개의 유형 (1 : 8*12 점 2 : 12*20 점 3 : 16*24 점 4 : 24*32 Dots 5 : 32*48 Dots TST24.BF2 : 전통적인 중국어 24*24 TST16.BF2 : 전통적인 중국어 16*16 TTT24.BF2 : 전통적인 중국어 24*24 24 (문자) TSS24.BF2 : 중국어 24*24 TS SS1. 중국어 16*16 K : 텍스트 24*24 L : 텍스트 16*16) D : 문자열, 회전 각도 E : 문자열, X 방향 배율 1-8 F : 문자열, y 방향 배율 1-8g : 인쇄 콘텐츠 ActiveXWindowsFont (A, B, C, D, E, F, G, H) 설명 : Windows TTF Font를 사용한 텍스트 인쇄. 매개 변수 : A : 정수 유형, 텍스트의 X 방향의 시작점은 점으로 표시됩니다. B : 텍스트 y 방향의 시작점 인 정수 유형은 점으로 표시됩니다. C : 정수 유형, 글꼴 높이, 도트로 표시됩니다. D : 정수 유형, 회전 각도, 시계 반대 방향 회전. 0 ° °, 90- 로테이트 90 °, 180 otate 180 °, 270- 로테이트 270 °. E : 정수 유형, 글꼴 모양. 0 : 레이블; 1 : 이탤릭체; 2 : 대담한; 3 : 대담한 이탤릭체. F : 정수 유형, 밑줄, 0 : 밑줄 없음; 1 : 밑줄. G : 문자열 유형, 글꼴 이름. 예 : Arial, Times New Roman. H : 문자열 유형, 인쇄 텍스트 콘텐츠. */// tscobj.activexwindowsfont (500, 200, 48, 90, 0, "arial", "/u7f16/u7801"); tscobj.activexwindowsfont (260, 60, 60, 0, 0, 2, 0, "arial", "xx-specific"); // var cmd = 'QRCode 바코드 시작점 X 방향, y 방향, 오류 수정 레벨, QR 코드 높이, A (A 및 M), 회전 각도, M2 (유형 1 및 유형 2로 분류), S1 (기본 S7),/"1231 hello 242134132544353/"'; var cmd = 'Qrcode 80,80, H, 7, A, 0, M2, S1,/"'+"123456789 "+'/"'; tscobj.activexsendcommand (CMD); tscobj.activexwindowsfont (280, 150, 40, 0, 0, "Arial", "123456789"); tscobj.activexwindowsfont (180, 260, 30, 0, 0, 0, "arial", "xxxxxxxxx"); tscobj.activexprintlabel ( "1", "1"); // (페이지 당 인쇄본 수, 페이지 당 인쇄물 수) tscobj.activexclearbuffer (); // clear tscobj.activexcloseport (); // 인쇄 포트} </script>요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.