Для моих целей - простейшая распечатка данных для бланка из одного листа - подошла вот такая конструкция.
Создаём сперва объект QtGui.QPicture. В него рисуем всё что нам надо, а вот потом уж его подсовываем принтеру. И всё печатается чудненько, без лохматых шрифтов.
# моноширинный шрифт. Чтобы в клеточки на бланке буковки попадали
myFont = QtGui.QFont()
myFont.setFamily("Courier New")
myFont.setLetterSpacing(QtGui.QFont.AbsoluteSpacing, 8) # межбуквенное расстояние = 8
myFont.setPointSize(18)
# картинка для рисования
pic = QtGui.QPicture() # объект-картинка
picPainter = QtGui.QPainter() # объект для рисования
picPainter.begin(pic) # начинаем рисовать на картинке
picPainter.setFont(myFont) # устанавливаем шрифт
picPainter.drawText(0, 0, "Текст для распечатывания на принтере") # координаты и выводимый текст на картинке
picPainter.end() # закончили рисовать. Имеем картинку pic с нужным нам текстом.
# теперь картинку отправляем на принтер
printer = QtGui.QPrinter() # объект-принтер
printPainter = QtGui.QPainter() # снова объект для рисования
printPainter.begin(printer) # но "рисуем" теперь не по картинке, а, так сказать, по объекту-принтеру
printPainter.setWindow(0, 0, 1000, 1000) # размер объекта для рисования. Чем больше указать значения, тем мельче на бумаге получатся распечатываемые данные (эдакое масштабирование страницы)
printPainter.drawPicture(0, 0, pic) # выводим нашу картинку на принтер
printPainter.end()
Может, кому сгодится сия информация.