Sur cette page

QPrinter Class

La classe QPrinter est un périphérique de peinture qui peint sur une imprimante. Plus d'informations...

En-tête : #include <QPrinter>
CMake : find_package(Qt6 REQUIRED COMPONENTS PrintSupport)
target_link_libraries(mytarget PRIVATE Qt6::PrintSupport)
qmake : QT += printsupport
Héritages : QPagedPaintDevice

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum ColorMode { Color, GrayScale }
enum DuplexMode { DuplexNone, DuplexAuto, DuplexLongSide, DuplexShortSide }
enum OutputFormat { NativeFormat, PdfFormat }
enum PageOrder { FirstPageFirst, LastPageFirst }
enum PaperSource { Auto, Cassette, Envelope, EnvelopeManual, FormSource, …, LastPaperSource }
enum PrintRange { AllPages, Selection, PageRange, CurrentPage }
enum PrinterMode { ScreenResolution, PrinterResolution, HighResolution }
enum PrinterState { Idle, Active, Aborted, Error }
enum Unit { Millimeter, Point, Inch, Pica, Didot, …, DevicePixel }

Fonctions publiques

QPrinter(QPrinter::PrinterMode mode = ScreenResolution)
QPrinter(const QPrinterInfo &printer, QPrinter::PrinterMode mode = ScreenResolution)
virtual ~QPrinter()
bool abort()
bool collateCopies() const
QPrinter::ColorMode colorMode() const
int copyCount() const
QString creator() const
QString docName() const
QPrinter::DuplexMode duplex() const
bool fontEmbeddingEnabled() const
int fromPage() const
bool fullPage() const
bool isValid() const
QString outputFileName() const
QPrinter::OutputFormat outputFormat() const
QPrinter::PageOrder pageOrder() const
QRectF pageRect(QPrinter::Unit unit) const
QRectF paperRect(QPrinter::Unit unit) const
QPrinter::PaperSource paperSource() const
QPagedPaintDevice::PdfVersion pdfVersion() const
QPrintEngine *printEngine() const
QString printProgram() const
QPrinter::PrintRange printRange() const
QString printerName() const
QString printerSelectionOption() const
QPrinter::PrinterState printerState() const
int resolution() const
void setCollateCopies(bool collate)
void setColorMode(QPrinter::ColorMode newColorMode)
void setCopyCount(int count)
void setCreator(const QString &creator)
void setDocName(const QString &name)
void setDuplex(QPrinter::DuplexMode duplex)
void setFontEmbeddingEnabled(bool enable)
void setFromTo(int from, int to)
void setFullPage(bool fp)
void setOutputFileName(const QString &fileName)
void setOutputFormat(QPrinter::OutputFormat format)
void setPageOrder(QPrinter::PageOrder pageOrder)
void setPaperSource(QPrinter::PaperSource source)
void setPdfVersion(QPagedPaintDevice::PdfVersion version)
void setPrintProgram(const QString &printProg)
void setPrintRange(QPrinter::PrintRange range)
void setPrinterName(const QString &name)
void setPrinterSelectionOption(const QString &option)
void setResolution(int dpi)
QList<QPrinter::PaperSource> supportedPaperSources() const
QList<int> supportedResolutions() const
bool supportsMultipleCopies() const
int toPage() const

Fonctions publiques réimplémentées

virtual bool newPage() override
virtual QPaintEngine *paintEngine() const override

Fonctions protégées

void setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine)

Description détaillée

Ce périphérique représente une série de pages imprimées et s'utilise presque exactement de la même manière que les autres périphériques de peinture tels que QWidget et QPixmap. Un ensemble de fonctions supplémentaires est fourni pour gérer les caractéristiques spécifiques au périphérique, telles que l'orientation et la résolution, et pour parcourir les pages d'un document au fur et à mesure qu'il est généré.

Lors de l'impression directe sur une imprimante sous Windows ou macOS, QPrinter utilise les pilotes d'imprimante intégrés. Sous X11, QPrinter utilise le système d'impression commun d'Unix (CUPS) pour envoyer la sortie PDF à l'imprimante. Comme alternative, la fonction printProgram() peut être utilisée pour spécifier la commande ou l'utilitaire à utiliser à la place de la valeur par défaut du système.

Notez que la définition de paramètres tels que la taille du papier et la résolution sur une imprimante non valide est indéfinie. Vous pouvez utiliser QPrinter::isValid() pour le vérifier avant de modifier les paramètres.

QPrinter prend en charge un certain nombre de paramètres, dont la plupart peuvent être modifiés par l'utilisateur final via print dialog. En général, QPrinter transmet ces fonctions à l'application sous-jacente QPrintEngine.

Les paramètres les plus importants sont les suivants :

  • setPageLayout() indique à QPrinter l'orientation de la page à utiliser et la taille à attendre de l'imprimante.
  • setResolution() indique à QPrinter la résolution que vous souhaitez que l'imprimante fournisse, en points par pouce (DPI).
  • setFullPage() indique à QPrinter si vous voulez traiter la page entière ou seulement la partie sur laquelle l'imprimante peut dessiner.
  • setCopyCount() indique à QPrinter le nombre de copies du document à imprimer.

La plupart de ces fonctions ne peuvent être appelées qu'avant le début de l'impression (c'est-à-dire avant que QPainter::begin() ne soit appelé). Cela se justifie généralement par le fait qu'il n'est pas possible, par exemple, de modifier le nombre de copies à mi-chemin de l'impression. Il existe également des paramètres que l'utilisateur définit (par le biais de la boîte de dialogue de l'imprimante) et que les applications sont censées respecter. Voir la documentation de QAbstractPrintDialog pour plus de détails.

Lorsque QPainter::begin() est appelé, l'imprimante QPrinter sur laquelle il fonctionne est préparée pour une nouvelle page, ce qui permet à QPainter d'être utilisé immédiatement pour peindre la première page d'un document. Une fois la première page peinte, newPage() peut être appelé pour demander une nouvelle page vierge sur laquelle peindre, ou QPainter::end() peut être appelé pour terminer l'impression. La deuxième page et toutes les pages suivantes sont préparées par un appel à newPage() avant d'être peintes.

La première page d'un document ne doit pas être précédée d'un appel à newPage(). Il suffit d'appeler newPage() après QPainter::begin() pour insérer une page blanche au début d'un document imprimé. De même, si vous appelez newPage() après que la dernière page d'un document a été peinte, une page blanche sera ajoutée à la fin du document imprimé.

Si vous souhaitez interrompre le travail d'impression, abort() fera de son mieux pour arrêter l'impression. Il peut annuler l'ensemble du travail ou seulement une partie.

Comme QPrinter peut imprimer sur n'importe quelle sous-classe de QPrintEngine, il est possible d'étendre la prise en charge de l'impression à de nouveaux types de sous-systèmes d'impression en sous-classant QPrintEngine et en réimplémentant son interface.

Voir aussi QPrintDialog et Qt Print Support.

Documentation sur les types de membres

enum QPrinter::ColorMode

Ce type d'énumération est utilisé pour indiquer si QPrinter doit être imprimé en couleur ou non.

ConstanteValeurDescription
QPrinter::Color1impression en couleur si disponible, sinon en niveaux de gris.
QPrinter::GrayScale0imprime en niveaux de gris, même sur les imprimantes couleur.

enum QPrinter::DuplexMode

Cette énumération est utilisée pour indiquer si l'impression se fera sur une ou deux faces de chaque feuille de papier (impression simplex ou duplex).

ConstanteValeurDescription
QPrinter::DuplexNone0Impression sur une seule face (simplex) uniquement.
QPrinter::DuplexAuto1Le paramètre par défaut de l'imprimante est utilisé pour déterminer si l'impression recto-verso est utilisée.
QPrinter::DuplexLongSide2Les deux faces de chaque feuille de papier sont utilisées pour l'impression. Le papier est retourné sur son bord le plus long avant que la deuxième face ne soit imprimée.
QPrinter::DuplexShortSide3Les deux côtés de chaque feuille de papier sont utilisés pour l'impression. Le papier est retourné sur son bord le plus court avant l'impression du second côté.

enum QPrinter::OutputFormat

L'énumération OutputFormat est utilisée pour décrire le format que QPrinter doit utiliser pour l'impression.

ConstanteValeurDescription
QPrinter::NativeFormat0QPrinter imprimera la sortie en utilisant une méthode définie par la plateforme sur laquelle il est exécuté. Ce mode est le mode par défaut lors de l'impression directe sur une imprimante.
QPrinter::PdfFormat1QPrinter génère sa sortie sous la forme d'un fichier PDF interrogeable. Ce mode est le mode par défaut lors de l'impression dans un fichier.

Voir également outputFormat(), setOutputFormat() et setOutputFileName().

enum QPrinter::PageOrder

Ce type d'énumération est utilisé par QPrinter pour indiquer au programme d'application comment imprimer.

ConstanteValeurDescription de la page
QPrinter::FirstPageFirst0la page la plus basse doit être imprimée en premier.
QPrinter::LastPageFirst1la page la plus haute doit être imprimée en premier.

enum QPrinter::PaperSource

Ce type d'énumération spécifie la source de papier que QPrinter doit utiliser. QPrinter ne vérifie pas que la source de papier est disponible ; il utilise simplement cette information pour essayer de définir la source de papier. La définition de la source de papier dépend de la disponibilité de cette source particulière dans l'imprimante.

Attention : Cette fonction n'est actuellement implémentée que pour Windows.

ConstanteValeurDescription
QPrinter::Auto6
QPrinter::Cassette11
QPrinter::Envelope4
QPrinter::EnvelopeManual5
QPrinter::FormSource12
QPrinter::LargeCapacity10
QPrinter::LargeFormat9
QPrinter::Lower1
QPrinter::MaxPageSource13Déclassé, utiliser LastPaperSource à la place
QPrinter::Middle2
QPrinter::Manual3
QPrinter::OnlyOne0
QPrinter::Tractor7
QPrinter::SmallFormat8
QPrinter::UpperOnlyOne
QPrinter::CustomSource14Une PaperSource définie par l'imprimante et inconnue de Qt.
QPrinter::LastPaperSourceCustomSourceLa plus haute valeur valide de PaperSource, actuellement CustomSource

enum QPrinter::PrintRange

Permet de spécifier l'option de sélection de la plage d'impression.

ConstanteValeurDescription de l'option
QPrinter::AllPages0Toutes les pages doivent être imprimées.
QPrinter::Selection1Seule la sélection doit être imprimée.
QPrinter::PageRange2La plage de pages spécifiée doit être imprimée.
QPrinter::CurrentPage3Seule la page en cours doit être imprimée.

Voir également setPrintRange(), printRange() et QAbstractPrintDialog::PrintRange.

enum QPrinter::PrinterMode

Cette énumération décrit le mode de fonctionnement de l'imprimante. Elle prédéfinit une certaine résolution et un certain mode de travail.

ConstanteValeurDescription
QPrinter::ScreenResolution0Règle la résolution du périphérique d'impression sur la résolution de l'écran. Cela présente le grand avantage que les résultats obtenus en peignant sur l'imprimante correspondront plus ou moins exactement à la sortie visible sur l'écran. C'est la solution la plus facile à utiliser, car les mesures des polices à l'écran et sur l'imprimante sont les mêmes. Il s'agit de la valeur par défaut. ScreenResolution produit une sortie de moins bonne qualité que HighResolution et ne doit être utilisé que pour les brouillons.
QPrinter::PrinterResolution1Cette valeur est obsolète. Pour les imprimantes, elle est équivalente à ScreenResolution sous Unix et à HighResolution sous Windows et macOS. Pour l'impression de PDF, elle n'est pas prise en charge et peut entraîner un comportement indéfini. L'utilisation de cette valeur peut conduire à un code d'imprimante non portable.
QPrinter::HighResolution2Sous Windows, définit la résolution de l'imprimante à celle définie pour l'imprimante utilisée. Pour l'impression de PDF, définit la résolution du pilote PDF à 1200 dpi.

Remarque : lors du rendu de texte sur un périphérique QPrinter, il est important de comprendre que la taille du texte, lorsqu'elle est spécifiée en points, est indépendante de la résolution spécifiée pour le périphérique lui-même. Par conséquent, il peut être utile de spécifier la taille de la police en pixels lorsque l'on combine du texte avec des graphiques, afin de s'assurer que leurs tailles relatives correspondent à ce que l'on attend.

enum QPrinter::PrinterState

ConstanteValeur
QPrinter::Idle0
QPrinter::Active1
QPrinter::Aborted2
QPrinter::Error3

enum QPrinter::Unit

Ce type d'énumération est utilisé pour spécifier l'unité de mesure des formats de page et de papier.

ConstanteValeur
QPrinter::Millimeter0
QPrinter::Point1
QPrinter::Inch2
QPrinter::Pica3
QPrinter::Didot4
QPrinter::Cicero5
QPrinter::DevicePixel6

Notez la différence entre Point et DevicePixel. L'unité Point est définie comme étant 1/72e de pouce, tandis que l'unité DevicePixel dépend de la résolution et est basée sur les pixels réels, ou points, de l'imprimante.

Documentation des fonctions membres

[explicit] QPrinter::QPrinter(QPrinter::PrinterMode mode = ScreenResolution)

Crée un nouvel objet imprimante avec l'adresse mode.

[explicit] QPrinter::QPrinter(const QPrinterInfo &printer, QPrinter::PrinterMode mode = ScreenResolution)

Crée un nouvel objet imprimante avec les données printer et mode.

[virtual noexcept] QPrinter::~QPrinter()

Détruit l'objet imprimante et libère les ressources allouées. Si l'imprimante est détruite alors qu'un travail d'impression est en cours, cela peut ou non affecter le travail d'impression.

bool QPrinter::abort()

Abandonne l'impression en cours. Renvoie true si l'impression a été interrompue avec succès et printerState() renvoie QPrinter::Aborted; sinon, false.

Il n'est pas toujours possible d'interrompre un travail d'impression. Par exemple, toutes les données ont été envoyées à l'imprimante, mais celle-ci ne peut pas ou ne veut pas annuler le travail lorsqu'on le lui demande.

bool QPrinter::collateCopies() const

Renvoie true si la collation est activée lorsque plusieurs copies sont sélectionnées. Renvoie false s'il est désactivé lorsque l'option "copies multiples" est sélectionnée. Lorsque l'assemblage est désactivé, l'impression de chaque page individuelle sera répétée de la quantité numCopies() avant que la page suivante ne soit lancée. Lorsque l'assemblage est activé, toutes les pages sont imprimées avant que la copie suivante de ces pages ne commence.

Voir également setCollateCopies().

QPrinter::ColorMode QPrinter::colorMode() const

Renvoie le mode de couleur actuel.

Voir aussi setColorMode().

int QPrinter::copyCount() const

Renvoie le nombre de copies qui seront imprimées. La valeur par défaut est 1.

Voir aussi setCopyCount() et supportsMultipleCopies().

QString QPrinter::creator() const

Renvoie le nom de l'application qui a créé le document.

Voir aussi setCreator().

QString QPrinter::docName() const

Renvoie le nom du document.

Voir aussi setDocName() et QPrintEngine::PrintEnginePropertyKey.

QPrinter::DuplexMode QPrinter::duplex() const

Renvoie le mode duplex actuel.

Voir aussi setDuplex().

bool QPrinter::fontEmbeddingEnabled() const

Renvoie true si l'intégration des polices est activée.

Voir aussi setFontEmbeddingEnabled().

int QPrinter::fromPage() const

Renvoie le numéro de la première page d'une série de pages à imprimer (paramètre "à partir de la page"). Les pages d'un document sont numérotées selon la convention suivante : la première page est la page 1.

Par défaut, cette fonction renvoie une valeur spéciale de 0, ce qui signifie que le paramètre "from page" n'est pas défini.

Remarque : si les fonctions fromPage() et toPage() renvoient toutes deux la valeur 0, cela signifie que tout le document sera imprimé.

Voir également setFromTo(), toPage() et pageRanges().

bool QPrinter::fullPage() const

Renvoie true si l'origine du système de coordonnées de l'imprimante se trouve au coin de la page et false si elle se trouve au bord de la zone imprimable.

Voir setFullPage() pour plus de détails et d'avertissements.

Voir aussi setFullPage() et QPagedPaintDevice::pageLayout().

bool QPrinter::isValid() const

Renvoie true si l'imprimante sélectionnée est une imprimante valide dans le système ou une imprimante purement PDF ; sinon, renvoie false.

Pour détecter d'autres échecs, vérifiez la sortie de QPainter::begin() ou QPrinter::newPage().

    QPrinter printer ; printer.setOutputFormat(QPrinter::PdfFormat) ; printer.setOutputFileName("/foobar/nonwritable.pdf") ; QPainter painter ; if (! painter.begin(&printer)) { // échec de l'ouverture du fichier        qWarning("failed to open file, is it writable?");
       return 1; } painter.drawText(10, 10, "Test") ; if (! printer.newPage()) {        qWarning("failed in flushing page to disk, disk full?");
       return 1; } painter.drawText(10, 10, "Test 2") ; painter.end() ;

Voir aussi setPrinterName().

[override virtual] bool QPrinter::newPage()

Réimplémente : QPagedPaintDevice::newPage().

Indique à l'imprimante d'éjecter la page en cours et de poursuivre l'impression sur une nouvelle page. Renvoie true si l'opération est réussie, sinon false.

L'appel à newPage() sur un objet QPrinter inactif échouera toujours.

QString QPrinter::outputFileName() const

Renvoie le nom du fichier de sortie. Par défaut, il s'agit d'une chaîne vide (indiquant que l'imprimante ne doit pas imprimer dans le fichier).

Voir aussi setOutputFileName() et QPrintEngine::PrintEnginePropertyKey.

QPrinter::OutputFormat QPrinter::outputFormat() const

Renvoie le format de sortie de cette imprimante.

Voir aussi setOutputFormat().

QPrinter::PageOrder QPrinter::pageOrder() const

Renvoie l'ordre actuel des pages.

L'ordre des pages par défaut est FirstPageFirst.

Voir aussi setPageOrder().

QRectF QPrinter::pageRect(QPrinter::Unit unit) const

Renvoie le rectangle de la page en unit; il est généralement plus petit que paperRect() car la page a normalement des marges entre ses bords et le papier.

Voir aussi QPagedPaintDevice::pageLayout().

[override virtual] QPaintEngine *QPrinter::paintEngine() const

Réimplémente : QPaintDevice::paintEngine() const.

Renvoie le moteur de peinture utilisé par l'imprimante.

QRectF QPrinter::paperRect(QPrinter::Unit unit) const

Renvoie le rectangle du papier en unit; il est généralement plus grand que pageRect().

Voir aussi pageRect().

QPrinter::PaperSource QPrinter::paperSource() const

Renvoie la source de papier de l'imprimante. Il s'agit de Manual ou d'un bac d'imprimante ou d'une cassette papier.

Voir également setPaperSource().

QPagedPaintDevice::PdfVersion QPrinter::pdfVersion() const

Renvoie la version PDF de cette imprimante. La valeur par défaut est PdfVersion_1_4.

Voir aussi setPdfVersion().

QPrintEngine *QPrinter::printEngine() const

Renvoie le moteur d'impression utilisé par l'imprimante.

QString QPrinter::printProgram() const

Renvoie le nom du programme qui envoie les données d'impression à l'imprimante.

La valeur par défaut est une chaîne vide, ce qui signifie que QPrinter essaiera d'être intelligent d'une manière qui dépend du système. Sur X11 uniquement, vous pouvez lui donner une valeur différente pour utiliser un programme d'impression spécifique. Sur les autres plates-formes, cette option renvoie une chaîne vide.

Voir aussi setPrintProgram() et setPrinterSelectionOption().

QPrinter::PrintRange QPrinter::printRange() const

Renvoie la plage de pages du site QPrinter. Après l'ouverture de la boîte de dialogue de configuration de l'impression, cette fonction renvoie la valeur sélectionnée par l'utilisateur.

Voir également setPrintRange().

QString QPrinter::printerName() const

Renvoie le nom de l'imprimante. Cette valeur est initialement définie sur le nom de l'imprimante par défaut.

Voir aussi setPrinterName().

QString QPrinter::printerSelectionOption() const

Renvoie la chaîne de sélection des options d'impression. Ceci n'est utile que si la commande d'impression a été explicitement définie.

La valeur par défaut (une chaîne vide) implique que l'imprimante doit être sélectionnée en fonction du système.

Toute autre valeur implique que la valeur donnée doit être utilisée.

Cette fonction renvoie toujours une chaîne vide sous Windows et Mac.

Voir aussi setPrinterSelectionOption() et setPrintProgram().

QPrinter::PrinterState QPrinter::printerState() const

Renvoie l'état actuel de l'imprimante. Cet état n'est pas toujours exact (par exemple, si l'imprimante n'est pas en mesure de communiquer son état au système d'exploitation).

int QPrinter::resolution() const

Renvoie la résolution supposée actuelle de l'imprimante, telle que définie par setResolution() ou par le pilote d'imprimante.

Voir aussi setResolution().

void QPrinter::setCollateCopies(bool collate)

Définit la valeur par défaut de la case à cocher Collation lors de l'affichage de la boîte de dialogue d'impression. Si collate est vrai, la fonction setCollateCopiesEnabled() sera activée. La valeur par défaut est false. Cette valeur sera modifiée par ce que l'utilisateur appuie dans la boîte de dialogue d'impression.

Voir également collateCopies().

void QPrinter::setColorMode(QPrinter::ColorMode newColorMode)

Définit le mode couleur de l'imprimante sur newColorMode, qui peut être Color ou GrayScale.

Voir également colorMode().

void QPrinter::setCopyCount(int count)

Définit le nombre de copies à imprimer sur count.

Le pilote d'imprimante lit ce paramètre et imprime le nombre de copies spécifié.

Voir également copyCount() et supportsMultipleCopies().

void QPrinter::setCreator(const QString &creator)

Définit le nom de l'application qui a créé le document à creator.

Cette fonction ne s'applique qu'à la version X11 de Qt. Si aucun nom de créateur n'est spécifié, le créateur sera "Qt" suivi d'un numéro de version.

Voir aussi creator().

void QPrinter::setDocName(const QString &name)

Définit le nom du document à name.

Sous X11, le nom du document est par exemple utilisé comme nom de fichier de sortie par défaut dans QPrintDialog. Notez que le nom du document n'affecte pas le nom du fichier si l'imprimante imprime vers un fichier. Pour cela, utilisez la fonction setOutputFile().

Voir également docName() et QPrintEngine::PrintEnginePropertyKey.

void QPrinter::setDuplex(QPrinter::DuplexMode duplex)

Active l'impression recto-verso en fonction du mode duplex.

Voir aussi duplex().

[protected] void QPrinter::setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine)

Cette fonction est utilisée par les sous-classes de QPrinter pour spécifier des moteurs d'impression et de peinture personnalisés (printEngine et paintEngine, respectivement).

QPrinter n'est pas propriétaire des moteurs, vous devez donc gérer ces instances de moteurs vous-même.

Notez que le changement de moteur réinitialise l'état de l'imprimante et toutes ses propriétés.

Voir également printEngine(), paintEngine() et setOutputFormat().

void QPrinter::setFontEmbeddingEnabled(bool enable)

Active ou désactive l'intégration des polices en fonction de enable.

Voir aussi fontEmbeddingEnabled().

void QPrinter::setFromTo(int from, int to)

Définit la plage de pages à imprimer pour couvrir les pages dont les numéros sont spécifiés par from et to, où from correspond à la première page de la plage et to à la dernière.

Remarque : les pages d'un document sont numérotées selon la convention qui veut que la première page soit la page 1. Toutefois, si from et to sont tous deux définis sur 0, le document entier sera imprimé.

Cette fonction est principalement utilisée pour définir une valeur par défaut que l'utilisateur peut remplacer dans la boîte de dialogue d'impression lorsque vous appelez setup().

Voir également fromPage(), toPage() et pageRanges().

void QPrinter::setFullPage(bool fp)

Si fp est vrai, cela permet de peindre sur toute la page ; sinon, cela limite la peinture à la zone imprimable indiquée par le périphérique.

Par défaut, l'impression sur toute la page est désactivée. Dans ce cas, l'origine du système de coordonnées de QPrinter coïncide avec le coin supérieur gauche de la zone imprimable.

Si l'impression pleine page est activée, l'origine du système de coordonnées de QPrinter coïncide avec le coin supérieur gauche du papier lui-même. Dans ce cas, le site device metrics indiquera exactement les mêmes dimensions que celles indiquées par {QPageSize}. Il se peut qu'il ne soit pas possible d'imprimer sur la totalité de la page physique en raison des marges de l'imprimante, de sorte que l'application doit tenir compte des marges elle-même.

Voir également fullPage(), QPagedPaintDevice::pageLayout() et QPagedPaintDevice::setPageSize().

void QPrinter::setOutputFileName(const QString &fileName)

Définit le nom du fichier de sortie à fileName.

La définition d'un nom nul ou vide (0 ou "") désactive l'impression vers un fichier. La définition d'un nom non vide permet d'imprimer dans un fichier.

Cela peut modifier la valeur de outputFormat(). Si le nom du fichier a le suffixe ".pdf", le PDF est généré. Si le nom du fichier a un suffixe autre que ".pdf", le format de sortie utilisé est celui défini avec setOutputFormat().

QPrinter utilise respectivement les moteurs d'impression PDF multiplateforme de Qt PDF. Si vous pouvez produire ce format nativement, par exemple macOS peut générer des PDF à partir de son moteur d'impression, redéfinissez le format de sortie à NativeFormat.

Voir également outputFileName() et setOutputFormat().

void QPrinter::setOutputFormat(QPrinter::OutputFormat format)

Définit le format de sortie de cette imprimante à format.

Si format est la même valeur que celle actuellement définie, aucune modification ne sera apportée.

Si format est NativeFormat, l'imprimante par défaut sera printerName. Si aucune imprimante valide n'est configurée, aucune modification ne sera apportée. Si vous souhaitez associer NativeFormat à une imprimante spécifique ( printerName ), utilisez setPrinterName().

Voir également outputFormat() et setPrinterName().

void QPrinter::setPageOrder(QPrinter::PageOrder pageOrder)

Définit l'ordre des pages à pageOrder.

L'ordre des pages peut être QPrinter::FirstPageFirst ou QPrinter::LastPageFirst. L'application est responsable de la lecture de l'ordre des pages et de l'impression en conséquence.

Cette fonction est surtout utile pour définir une valeur par défaut que l'utilisateur peut remplacer dans la boîte de dialogue d'impression.

Cette fonction n'est supportée que sous X11.

Voir également pageOrder().

void QPrinter::setPaperSource(QPrinter::PaperSource source)

Définit le paramètre de la source de papier sur source.

Windows uniquement : Cette option peut être modifiée pendant l'impression et prendra effet lors du prochain appel à newPage().

Voir également paperSource().

void QPrinter::setPdfVersion(QPagedPaintDevice::PdfVersion version)

Définit la version PDF pour cette imprimante à version.

Si version est la même valeur que celle actuellement définie, aucune modification ne sera apportée.

Voir également pdfVersion().

void QPrinter::setPrintProgram(const QString &printProg)

Définit le nom du programme qui doit effectuer le travail d'impression à printProg.

Sur X11, cette fonction définit le programme à appeler avec la sortie PDF. Sur les autres plateformes, elle n'a aucun effet.

Voir aussi printProgram().

void QPrinter::setPrintRange(QPrinter::PrintRange range)

Définit l'option d'intervalle d'impression in comme étant range.

Voir aussi printRange().

void QPrinter::setPrinterName(const QString &name)

Définit le nom de l'imprimante à name.

Si name est vide, le format de sortie sera défini sur PdfFormat.

Si name n'est pas une imprimante valide, aucun changement ne sera effectué.

Si name est une imprimante valide, le format de sortie sera défini sur NativeFormat.

Voir aussi printerName(), isValid() et setOutputFormat().

void QPrinter::setPrinterSelectionOption(const QString &option)

Configure l'imprimante pour qu'elle utilise option pour sélectionner l'imprimante. option est nul par défaut (ce qui implique que Qt devrait être assez intelligent pour deviner correctement), mais il peut être défini à d'autres valeurs pour utiliser une option de sélection d'imprimante spécifique.

Si l'option de sélection de l'imprimante est modifiée alors que l'imprimante est active, le travail d'impression en cours peut être affecté ou non.

Cette fonction n'a aucun effet sur Windows ou Mac.

Voir également printerSelectionOption() et setPrintProgram().

void QPrinter::setResolution(int dpi)

Demande que l'imprimante imprime à dpi ou le plus près possible de dpi.

Ce paramètre affecte le système de coordonnées renvoyé, par exemple, par QPainter::viewport().

Cette fonction doit être appelée avant QPainter::begin() pour avoir un effet sur toutes les plates-formes.

Voir aussi resolution() et QPagedPaintDevice::setPageSize().

QList<QPrinter::PaperSource> QPrinter::supportedPaperSources() const

Renvoie les formats de papier pris en charge par cette imprimante.

Les valeurs seront soit une valeur correspondant à une entrée de l'enum QPrinter::PaperSource, soit une valeur spécifique au pilote. Les valeurs spécifiques au pilote sont supérieures à la constante DMBIN_USER déclarée dans wingdi.h.

Attention : Cette fonction n'est disponible que sous Windows.

QList<int> QPrinter::supportedResolutions() const

Renvoie une liste des résolutions (une liste de nombres entiers de points par pouce) que l'imprimante dit prendre en charge.

Pour X11, où toutes les impressions se font directement au format PDF, cette fonction renvoie toujours une liste d'un seul élément contenant uniquement la résolution PDF, c'est-à-dire 72 (72 ppp - mais voir PrinterMode).

bool QPrinter::supportsMultipleCopies() const

Renvoie true si l'imprimante prend en charge l'impression de plusieurs copies du même document en un seul travail ; sinon, elle renvoie false.

Sur la plupart des systèmes, cette fonction renvoie true. Cependant, sur les systèmes X11 qui ne prennent pas en charge CUPS, cette fonction renvoie false. Cela signifie que l'application doit gérer le nombre de copies en imprimant le même document le nombre de fois requis.

Voir aussi setCopyCount() et copyCount().

int QPrinter::toPage() const

Renvoie le numéro de la dernière page d'une série de pages à imprimer (paramètre "à la page"). Les pages d'un document sont numérotées selon la convention suivante : la première page est la page 1.

Par défaut, cette fonction renvoie une valeur spéciale de 0, ce qui signifie que le paramètre "to page" n'est pas défini.

Remarque : si fromPage() et toPage() renvoient toutes deux la valeur 0, cela signifie que tout le document sera imprimé.

Le programmeur est responsable de la lecture de ce paramètre et de l'impression en conséquence.

Voir également setFromTo(), fromPage() et pageRanges().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.