1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #!/usr/bin/python
# -*- coding: utf-8 -*-
#Python 3.2
import sys, os
from PyQt4 import QtCore, QtGui
#############################################################################
app = QtGui.QApplication(sys.argv)
# créer le document
doc = QtGui.QTextDocument()
cursor = QtGui.QTextCursor(doc)
#----------------------------------------------------------------------------
# créer le format de la table
tableFormat = QtGui.QTextTableFormat()
tableFormat.setAlignment(QtCore.Qt.AlignCenter) # la table sera au milieu.
tableFormat.setBorder(2.0)
tableFormat.setCellPadding(2)
tableFormat.setCellSpacing(0)
# insérer la table 1x1 avec ce format
imax, jmax = 3, 4
table = cursor.insertTable(imax, jmax, tableFormat)
# écrire un texte dans chaque case
for i in range(0, imax):
for j in range(0, jmax):
cellCur = table.cellAt(i, j).firstCursorPosition()
cellCur.select(QtGui.QTextCursor.LineUnderCursor) # sélectionner la ligne
cellCur.removeSelectedText() # effacer le texte antérieur
cellCur.insertText(str(i*j))
# mettre les cases de titre de lignes en couleur (ici en jaune)
for i in range(0, imax):
formatCell = QtGui.QTextCharFormat()
brush = QtGui.QBrush(QtGui.QColor("yellow"))
formatCell.setBackground(brush)
case = table.cellAt(i, 0) # on va mettre la case 0,0 en jaune
case.setFormat(formatCell)
# mettre les cases de titre de colonnes en couleur (ici en jaune)
for j in range(0, jmax):
formatCell = QtGui.QTextCharFormat()
brush = QtGui.QBrush(QtGui.QColor("yellow"))
formatCell.setBackground(brush)
case = table.cellAt(0, j) # on va mettre la case 0,0 en jaune
case.setFormat(formatCell)
#----------------------------------------------------------------------------
# imprimer dans un pdf
fichierpdf = "sample.pdf"
printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution)
printer.setOutputFormat(QtGui.QPrinter.PdfFormat)
printer.setOutputFileName(fichierpdf)
doc.print_(printer)
#----------------------------------------------------------------------------
# afficher le fichier pdf à l'écran en utilisant le pdfreader par défaut
url = QtCore.QUrl.fromLocalFile(os.path.abspath(fichierpdf))
QtGui.QDesktopServices.openUrl(url) |
Partager