Um verschiedene Labellängen unter Linux zu nutzen, müssen diese ert einmal festgelegt werden. Ich benutze eine Etikettenrolle mit einer Breite von 62 mm.
Hiermit wird eine Labelgöße von 62x40 mm festgelegt:
sudo brpapertoollpr_ql570 -P QL-570 -n nfixlabel_40 -w 62 -h 40
Da das Drucken von PDF-Dateien nicht immer korrekt funktioniert, wird die PDF-Datei noch in eine Postscript-Datei umgewandelt.
pdftops /tmp/adresse.pdf /tmp/adresse.ps
Die Postscript-Datei kann jetzt an den Drucker geschickt werden:
lp -d QL-570 -o media=nfixlabel_40 /tmp/adresse.ps
Tags: Etikettendrucker Brother QL-570
Literatur:
So funktioniert es: handleQL570
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.setWindowTitle(self.tr('Document Printer'))
self.editor = QtGui.QTextEdit(self)
self.editor.textChanged.connect(self.handleTextChanged)
self.buttonQL570 = QtGui.QPushButton('QL-570', self)
self.buttonQL570.clicked.connect(self.handleQL570)
self.buttonPrint = QtGui.QPushButton('Print', self)
self.buttonPrint.clicked.connect(self.handlePrint)
self.buttonPreview = QtGui.QPushButton('Preview', self)
self.buttonPreview.clicked.connect(self.handlePreview)
layout = QtGui.QGridLayout(self)
layout.addWidget(self.editor, 0, 0, 1, 3)
layout.addWidget(self.buttonQL570, 1, 0)
layout.addWidget(self.buttonPrint, 1, 1)
layout.addWidget(self.buttonPreview, 1, 2)
self.beispielText()
self.handleTextChanged()
def beispielText(self):
self.editor.clear()
self.editor.setHtml(u'Vorname Name<br>Straße<br><strong>PLZ Ort</strong>')
def handlePrint(self):
dialog = QtGui.QPrintDialog()
if dialog.exec_() == QtGui.QDialog.Accepted:
self.editor.document().print_(dialog.printer())
def handlePreview(self):
dialog = QtGui.QPrintPreviewDialog()
dialog.paintRequested.connect(self.editor.print_)
dialog.exec_()
def handleQL570(self):
tp = QtGui.QPrinter()
# Es muss natürlich einen eingerichteten Drucker mit dem Namen geben
tp.setPrinterName('QL-570')
# Das Setzen der Papiergröße funktioniert nicht,
# es wir die im Druckertreiber eingestellte Papiergröße verwendet
# Ohne Wirkung: tp.setPaperSize( QtCore.QSizeF( 29, 62 ), QtGui.QPrinter.Millimeter )
tp.setOrientation( QtGui.QPrinter.Landscape)
tp.setPageMargins(2,2,2,2, QtGui.QPrinter.Millimeter)
self.editor.document().print_(tp)
def handleTextChanged(self):
enable = not self.editor.document().isEmpty()
self.buttonPrint.setEnabled(enable)
self.buttonPreview.setEnabled(enable)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.resize(640, 480)
window.show()
sys.exit(app.exec_())
Tags: Python pyqt Etikettendrucker Brother QL-570
Literatur
Nachtrag
Drucker einrichten