Предисловие
Недавно принтер использовался в проекте. Сначала я не понял этого, но теперь я сделал это, поэтому я суммировал это. Эта статья включает в себя предварительную печать вызовов (два способа) и печать JS Front-End, но только IE теперь поддерживает печать. Более того, если вы хотите удаленно подключить принтер, генерация QR -кодов и непосредственно работать по командам принтера, вам необходимо изменить конфигурацию безопасности браузера. Вот подробное введение.
Первый тип фоновой печати:
Используйте класс PrintserviceLookup в Javax для печати. Вы можете напрямую вызвать принтер по умолчанию, или вы можете использовать следующие методы для фильтрации и печати:
Printservicelookup.lookupmultidocprintservices (ароматы, атрибуты);
Исполняемый код выглядит следующим образом:
public static void main (string [] args) {fileInputStream TextStream = null; try {textstream = new FileInputStream ("Address"); } catch (filenotFoundException e) {e.printstackTrace (); } if (textstream! = null) // Когда контент печати не пуст {// указать формат распечатки docflavor flavor = docflavor.input_stream.pdf; // service_formatted.printable // позиционировать службу печати по умолчанию printservice printservice = printserviceLookup.lookupdefultfultPrintService (); // Создать печатную работу docprintjob job = printservice.createprintjob (); // Установить атрибут печати PrintRequeStattributeSet Pras = new HashprintrequestattributeSet (); // Установить размер бумаги, вы также можете создать новый класс MediaSize, чтобы настроить размер 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 (null, «Извините, задание принтера пуста, печатная отмененная!», «Пусто», Joptionpane.default_option, joptionpane.warning_message); }} Второй тип фоновой печати:
ПРИМЕЧАНИЕ. Второй и третий типы печати используют команды принтера для работы. Здесь вам нужен пакет JNA JAR, а JDK требует 32-битного, и соответствующий DLL необходимо зарегистрировать. Для различных систем DLL должен быть зарегистрирован в разных окнах. После успешной регистрации требуется Win+R, и REGSVR32.exe tscactivex.dll вызывается и запускается.
Исполняемый код выглядит следующим образом:
открытый класс javademo {public interface tsclibdll Extends Library {tsclibdll ancess = (tsclibdll) native.loadlibrary ("tsclib", tsclibdll.class); int about (); int openport (String Pianoname); int closePort (); int sendCommand (String PrinterCommand); int setup (ширина строки, высота строки, скорость строки, плотность строки, строковый датчик, строка вертикальная, строка смещения); int downloadpcx (String fileName, String Image_Name); int sarcode (String x, String y, Type String, высота строки, обработанная строка, вращение строки, строка узкая, string Wide, String Code); int printerfont (String x, String y, String fonttype, string rowation, String xmul, String ymul, String Text); int clearbuffer (); int printlabel (string set, string copy); int formfeed (); int nobackfeed (); int windowsfont (int x, int y, int fontheight, int rowation, int fontstyle, int fontunderline, string szfacename, строковое содержание); } public static void main (string [] args) {System.SetProperty ("jna.Encoding", "gbk"); // Поддержка китайского промедимента DF = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); String time = df.format (new date ()); String qrCode = "pd102011"; Tsclibdll.instance.openport ("tsc ttp-244 pro"); // print model 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 (command); // Команда передачи tsclibdll.instance.sendcommand («Текст 300 70 36 0 0 0 Arial»+ "Офисная бумага-поставки" бумага "); //Tsclibdll.instance.windowsfont(300, 70, 36, 0, 0, 0, "Arial", "Офисная бумага-лабель-бумага"); Tsclibdll.instance.printlabel ("1", "1"); Tsclibdll.instance.closeport (); }} Примечание. Этот метод печати требует USB-соединения (TTP-244 Pro). Если вы хотите генерировать онлайн и подключиться удаленно, вам нужно использовать третий метод.
Третий тип печати JS
При печати с помощью JS браузер в основном ограничен. В настоящее время только IE Browser поддерживает его. При печати сервер автоматизации не может создавать объекты на консоли. Пожалуйста, настройте соответствующие настройки в ActiveX на пользовательском уровне в безопасности браузера, чтобы включить. Код заключается в следующем:
<script type = "text/javascript"> function printQrcode () {var tscobj = new ActiveXObject ("tscActiveX.tsclib"); // dll, используемый принтером //tscobj.activexabout (); // Информация о принтере tscobj.activexopenport ("tsc ttp-244 pro"); // имя принтера, нельзя записать неправильно //tscobj.activexdownloadpcx ("d:/myeclipseproject/filesmanager/trunk/doc/02-reference/03- QR Cocdater/01-Development/Dock/02-Referen Пример/tscActivex.dll-php-example/"," 123.pcx "); Tscobj.activexsetup («70», «40», «4», «15», «0», «2,5», «0»); // Настройки печати // tscobj.activexsetup («ширина ширины метки», «Высота метки», «Скорость печати», «Плотно-плотность (0-15)», «Sensor Sensor Sensor», «Sensor», «Sensor», «SENSOR», 1 MAGING SENSOR, 1 MADER SENSOR, 1 FAMER, 1 FAMEORY SENSOR, 1 FAMEORER SENSOR, 1 FAMEOR SENSOR 1 FAMEOR. Senso) "," Gap/Black Mark Verticical Iccession (MM) "," Расстояние смещения GAP/Black Marck (мм) "); //Tscobj.activexformfeed (); //Tscobj.activexnobackfeed (); Tscobj.activexsendCommand («Направление 1»); // Установить направление тега, направление 1 Верхний левый угол (x, y) = {0,0}; Направление 0 нижний правый угол (x, y) = {0,0}; Tscobj.activexsendcommand ("set tear on"); 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 Точки 5: 32*48 Dots TST24.bf2: Традиционный китайский 24*24 TST16.BF2: Традиционный китайский 16*16 TTT24.BF2: Традиционный китайский Китайский 16*16 K: Текст 24*24 L: Текст 16*16) D: строка, угол поворота e: строка, x-направление увеличение 1-8 F: строка, увеличение y-направления 1-8 г: строка, печать содержимого ActiveXwindowsfont (A, B, C, D, E, F, G, H) Описание: печатайте текст с использованием Windows ttf font. Параметры: A: Целое число типов, отправная точка в направлении X текста, представленная точкой. B: Целое число типов, отправная точка направления текста Y, представленная точкой. C: Целый тип, высота шрифта, представленная точками. D: Целый тип, угол вращения, вращение против часовой стрелки. 0-rotate 0 °, 90-rotate 90 °, 180-rotate 180 °, 270 rotate 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, 2, 0, «Arial», «XX-специфический»); // var cmd = 'QrCode штрих-кода в направлении в направлении x, начальная точка штрих-кода в направлении Y, уровень коррекции ошибок, высота QR-кода, A (A и M), угол вращения, M2 (классифицирован на тип 1 и тип 2), S1 (S1-S8, по умолчанию S7),/"1231 Hello 24213413255435353/"'; 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 (); // Очистить tscobj.activexcloseport (); // Закройте порт печати} </script>Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.