QPrinter Class
La classe QPrinter est un périphérique de dessin qui permet d'imprimer sur une imprimante. En savoir plus...
| En-tête : | #include <QPrinter> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS PrintSupport) target_link_libraries(mytarget PRIVATE Qt6::PrintSupport) |
| qmake : | QT += printsupport |
| Hérite de : | QPagedPaintDevice |
- Liste de tous les membres, y compris les membres hérités
- QPrinter fait partie des API d'impression et d'imprimantes.
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 d'autres périphériques de dessin 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 de sa génération.
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 Common Unix Printing System (CUPS) pour envoyer le fichier PDF vers l’imprimante. Il est également possible d’utiliser la fonction printProgram() pour spécifier la commande ou l’utilitaire à utiliser à la place de celui par défaut du système.
Notez que la définition de paramètres tels que le format de papier et la résolution sur une imprimante non prise en charge n’a pas de comportement défini. Vous pouvez utiliser QPrinter::isValid() pour vérifier cela avant de modifier tout paramètre.
QPrinter prend en charge un certain nombre de paramètres, dont la plupart peuvent être modifiés par l'utilisateur final via une fonction ` print dialog`. En général, QPrinter transmet ces fonctions à l'QPrintEngine sous-jacente.
Les paramètres les plus importants sont les suivants :
- setPageLayout() indique à QPrinter l’orientation de page à utiliser et le format attendu 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 souhaitez traiter la page entière ou uniquement la partie que l'imprimante peut imprimer.
- setCopyCount() indique à QPrinter le nombre d’exemplaires du document à imprimer.
La plupart de ces fonctions ne peuvent être appelées qu’avant le début de l’impression proprement dite (c’est-à-dire avant l’appel de ` QPainter::begin()`). Cela est généralement logique car, par exemple, il n’est pas possible de modifier le nombre de copies alors que l’impression est déjà en cours. Il existe également certains paramètres définis par l’utilisateur (via la boîte de dialogue de l’imprimante) et que les applications sont censées respecter. Consultez la documentation de QAbstractPrintDialog pour plus de détails.
Lorsque la fonction ` QPainter::begin()` est appelée, l’objet `QPrinter` sur lequel elle opère est préparé pour une nouvelle page, ce qui permet d’utiliser immédiatement la fonction ` QPainter ` pour tracer la première page d’un document. Une fois la première page tracée, la fonction ` newPage()` peut être appelée pour demander une nouvelle page vierge sur laquelle tracer, ou la fonction ` QPainter::end()` peut être appelée pour terminer l’impression. La deuxième page et toutes les pages suivantes sont préparées à l'aide d'un appel à newPage() avant d'être dessinées.
La première page d’un document n’a pas besoin d’être précédée d’un appel à newPage(). Vous ne devez appeler newPage() après QPainter::begin() que si vous souhaitez insérer une page vierge au début d’un document imprimé. De même, l’appel de newPage() après le traçage de la dernière page d’un document entraînera l’ajout d’une page vierge à la fin du document imprimé.
Si vous souhaitez interrompre le travail d’impression, la méthode ` abort()` fera tout son possible pour arrêter l’impression. Elle peut annuler l’intégralité du travail ou seulement une partie de celui-ci.
Comme QPrinter peut imprimer vers 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 créant une sous-classe de QPrintEngine et en réimplémentant son interface.
Voir également QPrintDialog et Qt Print Support.
Documentation sur les types de membres
enum QPrinter::ColorMode
Ce type d’énumération sert à indiquer si QPrinter doit s’afficher en couleur ou non.
| Constante | Valeur | Description |
|---|---|---|
QPrinter::Color | 1 | Imprimer en couleur si possible, sinon en niveaux de gris. |
QPrinter::GrayScale | 0 | Imprimer en niveaux de gris, même sur des imprimantes couleur. |
enum QPrinter::DuplexMode
Cette énumération sert à indiquer si l'impression se fera sur une seule face ou sur les deux faces de chaque feuille de papier (impression recto ou recto-verso).
| Constante | Valeur | Description |
|---|---|---|
QPrinter::DuplexNone | 0 | Impression recto (simplex) uniquement. |
QPrinter::DuplexAuto | 1 | Le paramètre par défaut de l'imprimante est utilisé pour déterminer si l'impression recto-verso est activée. |
QPrinter::DuplexLongSide | 2 | Les deux faces de chaque feuille de papier sont utilisées pour l'impression. Le papier est retourné sur son côté le plus long avant l'impression de la deuxième face. |
QPrinter::DuplexShortSide | 3 | Les deux faces de chaque feuille de papier sont utilisées pour l'impression. Le papier est retourné sur son bord le plus court avant l'impression de la deuxième face |
enum QPrinter::OutputFormat
L'énumération OutputFormat sert à définir le format que la fonction QPrinter doit utiliser pour l'impression.
| Constante | Valeur | Description |
|---|---|---|
QPrinter::NativeFormat | 0 | QPrinter imprimera le résultat en utilisant une méthode définie par la plateforme sur laquelle il s'exécute. Ce mode est le mode par défaut lors de l'impression directe sur une imprimante. |
QPrinter::PdfFormat | 1 | QPrinter générera sa sortie sous la forme d’un fichier PDF consultable. Ce mode est celui par défaut lors de l’impression vers 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 effectuer l'impression.
| Constante | Valeur | Description |
|---|---|---|
QPrinter::FirstPageFirst | 0 | la page portant le numéro le plus bas doit être imprimée en premier. |
QPrinter::LastPageFirst | 1 | la page portant le numéro le plus élevé 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 si la source de papier est disponible ; il utilise simplement cette information pour tenter de configurer la source de papier. La réussite de cette configuration dépend de la présence ou non de cette source particulière sur l'imprimante.
Avertissement : cette fonctionnalité n’est actuellement implémentée que sous Windows.
| Constante | Valeur | Description |
|---|---|---|
QPrinter::Auto | 6 | |
QPrinter::Cassette | 11 | |
QPrinter::Envelope | 4 | |
QPrinter::EnvelopeManual | 5 | |
QPrinter::FormSource | 12 | |
QPrinter::LargeCapacity | 10 | |
QPrinter::LargeFormat | 9 | |
QPrinter::Lower | 1 | |
QPrinter::MaxPageSource | 13 | Obsolète, utilisez plutôt LastPaperSource |
QPrinter::Middle | 2 | |
QPrinter::Manual | 3 | |
QPrinter::OnlyOne | 0 | |
QPrinter::Tractor | 7 | |
QPrinter::SmallFormat | 8 | |
QPrinter::Upper | OnlyOne | |
QPrinter::CustomSource | 14 | Une source de papier (PaperSource) définie par l’imprimante et inconnue de Qt |
QPrinter::LastPaperSource | CustomSource | La valeur PaperSource valide la plus élevée ; il s'agit actuellement de CustomSource |
enum QPrinter::PrintRange
Permet de définir l'option de sélection de la plage d'impression.
| Constante | Valeur | Description |
|---|---|---|
QPrinter::AllPages | 0 | Toutes les pages doivent être imprimées. |
QPrinter::Selection | 1 | Seule la sélection doit être imprimée. |
QPrinter::PageRange | 2 | La plage de pages spécifiée doit être imprimée. |
QPrinter::CurrentPage | 3 | Seule la page actuelle 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 permet essentiellement de prérégler une résolution et un mode de fonctionnement spécifiques.
| Constante | Valeur | Description |
|---|---|---|
QPrinter::ScreenResolution | 0 | Définit 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 lors de l'impression correspondent plus ou moins exactement à ce qui s'affiche à l'écran. C'est l'option la plus simple à utiliser, car les métriques des polices à l'écran et sur l'imprimante sont identiques. Il s'agit de la valeur par défaut. ScreenResolution produira un résultat de qualité inférieure à HighResolution et ne doit être utilisée que pour les brouillons. |
QPrinter::PrinterResolution | 1 | Cette valeur est obsolète. Pour les imprimantes, elle équivaut à ScreenResolution sous Unix et à HighResolution sous Windows et macOS. Pour l’impression au format PDF, elle n’est pas prise en charge et peut entraîner un comportement indéfini. L’utilisation de cette valeur peut rendre le code d’impression non portable. |
QPrinter::HighResolution | 2 | Sous Windows, définit la résolution de l’imprimante sur celle définie pour l’imprimante en cours d’utilisation. Pour l’impression au format PDF, définit la résolution du pilote PDF sur 1 200 dpi. Remarque : lors du rendu de texte sur un périphérique « QPrinter », il est important de savoir que la taille du texte, lorsqu’elle est spécifiée en points, est indépendante de la résolution définie 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 vous combinez du texte avec des graphiques, afin de vous assurer que leurs tailles relatives correspondent à vos attentes. |
enum QPrinter::PrinterState
| Constante | Valeur |
|---|---|
QPrinter::Idle | 0 |
QPrinter::Active | 1 |
QPrinter::Aborted | 2 |
QPrinter::Error | 3 |
enum QPrinter::Unit
Ce type d'énumération sert à spécifier l'unité de mesure des formats de page et de papier.
| Constante | Valeur |
|---|---|
QPrinter::Millimeter | 0 |
QPrinter::Point | 1 |
QPrinter::Inch | 2 |
QPrinter::Pica | 3 |
QPrinter::Didot | 4 |
QPrinter::Cicero | 5 |
QPrinter::DevicePixel | 6 |
Notez la différence entre « Point » et « DevicePixel ». L'unité « Point » est définie comme étant égale à 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'mode e indiquée.
[explicit] QPrinter::QPrinter(const QPrinterInfo &printer, QPrinter::PrinterMode mode = ScreenResolution)
Crée un nouvel objet imprimante avec les paramètres printer et mode fournis.
[virtual noexcept] QPrinter::~QPrinter()
Détruit l'objet imprimante et libère toutes les ressources allouées. Si l'imprimante est détruite alors qu'un travail d'impression est en cours, cela peut ou non avoir une incidence sur ce travail d'impression.
bool QPrinter::abort()
Annule le travail d'impression en cours. Renvoie true si le travail d'impression a été annulé avec succès et printerState() renvoie QPrinter::Aborted; sinon, renvoie 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 le tri est activé lorsque l'option « copies multiples » est sélectionnée. Renvoie « false » s'il est désactivé lorsque l'option « copies multiples » est sélectionnée. Lorsque le tri est désactivé, l'impression de chaque page individuelle est répétée autant de fois que le nombre indiqué par la fonction numCopies() avant que l'impression de la page suivante ne commence. Lorsque le tri est activé, toutes les pages sont imprimées avant que l'impression de 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 d'exemplaires qui seront imprimés. La valeur par défaut est 1.
Voir également 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 également setDocName() et QPrintEngine::PrintEnginePropertyKey.
QPrinter::DuplexMode QPrinter::duplex() const
Renvoie le mode duplex actuel.
Voir également setDuplex().
bool QPrinter::fontEmbeddingEnabled() const
Renvoie « true » si l'intégration des polices est activée.
Voir également setFontEmbeddingEnabled().
int QPrinter::fromPage() const
Renvoie le numéro de la première page d'une plage de pages à imprimer (le paramètre « page de départ »). Les pages d'un document sont numérotées selon la convention selon laquelle la première page est la page 1.
Par défaut, cette fonction renvoie une valeur spéciale égale à 0, ce qui signifie que le paramètre « page de départ » n'est pas défini.
Remarque : si les fonctions `fromPage()` et ` toPage()` renvoient toutes deux la valeur 0, cela indique que l'intégralité du document sera imprimée.
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 dans un coin de la page, et « false » si elle se trouve au bord de la zone imprimable.
Voir setFullPage() pour plus de détails et les mises en garde.
Voir également setFullPage() et QPagedPaintDevice::pageLayout().
bool QPrinter::isValid() const
Renvoie « true » si l'imprimante actuellement sélectionnée est une imprimante valide dans le système ou une imprimante PDF pure ; sinon, renvoie « false ».
Pour détecter d’autres erreurs, vérifiez la sortie de QPainter::begin() ou de 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 ` en cas de succès ; sinon, renvoie ` false`.
L'appel de la méthode newPage() sur un objet QPrinter inactif échouera systématiquement.
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 écrire dans un fichier).
Voir également 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 coordonnées « unit » ; celui-ci est généralement plus petit que celui renvoyé par la fonction ` paperRect()` car la page comporte normalement des marges entre ses bords et le papier.
Voir également QPagedPaintDevice::pageLayout().
[override virtual] QPaintEngine *QPrinter::paintEngine() const
Réimplémente : ` QPaintDevice::paintEngine()` const.
Renvoie le moteur de rendu utilisé par l'imprimante.
QRectF QPrinter::paperRect(QPrinter::Unit unit) const
Renvoie le rectangle du papier en coordonnées « unit » ; celui-ci est généralement plus grand que celui renvoyé par la fonction pageRect().
Voir également la fonction ` pageRect()`.
QPrinter::PaperSource QPrinter::paperSource() const
Renvoie la source de papier de l'imprimante. Il peut s'agir de « Manual », d'un bac d'imprimante ou d'une cassette à papier.
Voir également setPaperSource().
QPagedPaintDevice::PdfVersion QPrinter::pdfVersion() const
Renvoie la version PDF correspondant à cette imprimante. La valeur par défaut est PdfVersion_1_4.
Voir également 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.
Par défaut, cette fonction renvoie une chaîne vide ; cela signifie qu'QPrinter tentera de s'adapter de manière intelligente en fonction du système. Sous X11 uniquement, vous pouvez définir une valeur différente pour utiliser un programme d'impression spécifique. Sur les autres plateformes, cette fonction renvoie une chaîne vide.
Voir également setPrintProgram() et setPrinterSelectionOption().
QPrinter::PrintRange QPrinter::printRange() const
Renvoie la plage de pages de l'QPrinter. Une fois la boîte de dialogue de configuration d'impression ouverte, 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 également setPrinterName().
QString QPrinter::printerSelectionOption() const
Renvoie la chaîne de sélection des options d'impression. Cela 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 fournie doit être utilisée.
Cette fonction renvoie toujours une chaîne vide sous Windows et Mac.
Voir également setPrinterSelectionOption() et setPrintProgram().
QPrinter::PrinterState QPrinter::printerState() const
Renvoie l'état actuel de l'imprimante. Cette information n'est pas toujours exacte (par exemple, si l'imprimante n'est pas capable de communiquer son état au système d'exploitation).
int QPrinter::resolution() const
Renvoie la résolution actuellement définie pour l'imprimante, telle qu'elle a été configurée par la fonction setResolution() ou par le pilote d'imprimante.
Voir également setResolution().
void QPrinter::setCollateCopies(bool collate)
Définit la valeur par défaut de la case à cocher « Trier » lorsque la boîte de dialogue d'impression s'affiche. Si la valeur de ` collate ` est `true`, cela activera la fonction `setCollateCopiesEnabled()`. La valeur par défaut est `false`. Cette valeur sera modifiée en fonction de la sélection effectuée par l'utilisateur 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 soit « Color », soit « 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 ayant créé le document sur « 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 défini sur « Qt » suivi d'un numéro de version.
Voir également creator().
void QPrinter::setDocName(const QString &name)
Définit le nom du document sur « 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'a aucune incidence sur le nom du fichier si l'imprimante imprime dans un fichier. Utilisez la fonction setOutputFile() à cet effet.
Voir également docName() et QPrintEngine::PrintEnginePropertyKey.
void QPrinter::setDuplex(QPrinter::DuplexMode duplex)
Active l'impression recto verso selon le 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 dessin personnalisés (respectivement `printEngine ` et ` paintEngine`).
QPrinter Elle ne prend pas possession des moteurs ; vous devez donc gérer vous-même ces instances de moteur.
Notez que la modification des moteurs 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 également fontEmbeddingEnabled().
void QPrinter::setFromTo(int from, int to)
Définit la plage de pages à imprimer de manière à inclure 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 selon laquelle la première page est la page 1. Toutefois, si from et to sont tous deux définis sur 0, l'intégralité du document sera imprimée.
Cette fonction sert principalement à définir une valeur par défaut que l’utilisateur peut modifier dans la boîte de dialogue d’impression lorsque vous appelez setup().
Voir également fromPage(), toPage() et pageRanges().
void QPrinter::setFullPage(bool fp)
Si la valeur de fp est « true », cela active la prise en charge du dessin sur l'ensemble de la page ; dans le cas contraire, le dessin est limité à la zone imprimable indiquée par le périphérique.
Par défaut, l'impression en pleine page est désactivée. Dans ce cas, l'origine du système de coordonnées de l'QPrinter coïncide avec le coin supérieur gauche de la zone imprimable.
Si l'impression en pleine page est activée, l'origine du système de coordonnées de ` QPrinter` coïncide avec le coin supérieur gauche de la feuille elle-même. Dans ce cas, la fonction ` device metrics ` renverra exactement les mêmes dimensions que celles indiquées par `{QPageSize}`. Il se peut qu’il ne soit pas possible d’imprimer sur l’intégralité de la page physique en raison des marges de l’imprimante ; l’application doit donc tenir compte elle-même de ces marges.
Voir également fullPage(), QPagedPaintDevice::pageLayout() et QPagedPaintDevice::setPageSize().
void QPrinter::setOutputFileName(const QString &fileName)
Définit le nom du fichier de sortie sur « fileName ».
Si le nom est nul ou vide (0 ou ""), l'impression vers un fichier est désactivée. Si le nom n'est pas vide, l'impression vers un fichier est activée.
Cela peut modifier la valeur de ` outputFormat()` (). Si le nom de fichier comporte l'extension « .pdf », un fichier PDF est généré. Si le nom de fichier comporte une extension autre que « .pdf », le format de sortie utilisé est celui défini respectivement par ` setOutputFormat()` ().
QPrinter utilise respectivement les moteurs d’impression PDF multiplateformes de Qt. Si vous pouvez produire ce format en natif (par exemple, macOS peut générer des fichiers PDF à partir de son moteur d’impression), remettez le format de sortie sur ` NativeFormat`.
Voir également outputFileName() et setOutputFormat().
void QPrinter::setOutputFormat(QPrinter::OutputFormat format)
Définit le format de sortie de cette imprimante sur « format ».
Si « format » correspond à la valeur actuellement définie, aucune modification ne sera effectuée.
Si « format » correspond à « NativeFormat », l’imprimante par défaut ( printerName ) sera définie. S’il n’y a aucune imprimante valide configurée, aucune modification ne sera effectuée. Si vous souhaitez définir « NativeFormat » avec une imprimante spécifique ( printerName ), utilisez la fonction « setPrinterName() ».
Voir également outputFormat() et setPrinterName().
void QPrinter::setPageOrder(QPrinter::PageOrder pageOrder)
Définit l'ordre des pages sur « pageOrder ».
L'ordre des pages peut être QPrinter::FirstPageFirst ou QPrinter::LastPageFirst. L'application est chargée de lire l'ordre des pages et d'imprimer en conséquence.
Cette fonction est surtout utile pour définir une valeur par défaut que l'utilisateur peut modifier dans la boîte de dialogue d'impression.
Cette fonction n’est prise en charge que sous X11.
Voir également pageOrder().
void QPrinter::setPaperSource(QPrinter::PaperSource source)
Définit la source de papier sur « source ».
Windows uniquement : cette option peut être modifiée pendant l'impression et prendra effet dès le prochain appel à la fonction ` newPage()`
Voir également paperSource().
void QPrinter::setPdfVersion(QPagedPaintDevice::PdfVersion version)
Définit la version PDF de cette imprimante sur « version ».
Si la valeur de ` version ` est identique à celle actuellement définie, aucune modification n'est effectuée.
Voir également pdfVersion().
void QPrinter::setPrintProgram(const QString &printProg)
Définit le nom du programme chargé d'exécuter la tâche d'impression sur « printProg ».
Sous X11, cette fonction définit le programme à appeler avec la sortie PDF. Sur les autres plateformes, elle n'a aucun effet.
Voir également printProgram().
void QPrinter::setPrintRange(QPrinter::PrintRange range)
Définit l'option de plage d'impression sur « range ».
Voir également printRange().
void QPrinter::setPrinterName(const QString &name)
Définit le nom de l'imprimante sur « name ».
Si la variable « name » est vide, le format de sortie sera défini sur « PdfFormat ».
Si « name » ne correspond pas à une imprimante valide, aucune modification ne sera effectuée.
Si « name » correspond à une imprimante valide, le format de sortie sera défini sur « NativeFormat ».
Voir également printerName(), isValid() et setOutputFormat().
void QPrinter::setPrinterSelectionOption(const QString &option)
Configure l'imprimante pour qu'elle utilise l'option « option » afin de sélectionner l'imprimante. La valeur « option » est nulle par défaut (ce qui implique que Qt devrait être suffisamment intelligent pour deviner correctement), mais elle peut être définie sur d'autres valeurs afin d'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 sous Windows ou Mac.
Voir également printerSelectionOption() et setPrintProgram().
void QPrinter::setResolution(int dpi)
Demande à l'imprimante d'imprimer à l'adresse dpi ou aussi près que possible de dpi.
Ce paramètre affecte le système de coordonnées tel qu’il est renvoyé, par exemple, par la fonction QPainter::viewport().
Cette fonction doit être appelée avant QPainter::begin() pour avoir un effet sur toutes les plateformes.
Voir également 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'énumération 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.
Avertissement : cette fonction n'est disponible que sous Windows.
QList<int> QPrinter::supportedResolutions() const
Renvoie une liste des résolutions (une liste d'entiers représentant le nombre de points par pouce) que l'imprimante indique prendre en charge.
Sous X11, où toutes les impressions sont directement générées au format PDF, cette fonction renvoie toujours une liste à un élément contenant uniquement la résolution PDF, c'est-à-dire 72 (72 dpi – mais voir PrinterMode).
bool QPrinter::supportsMultipleCopies() const
Renvoie « true » si l'imprimante prend en charge l'impression de plusieurs copies d'un même document dans un seul travail ; sinon, la fonction 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 autant de fois que nécessaire.
Voir également setCopyCount() et copyCount().
int QPrinter::toPage() const
Renvoie le numéro de la dernière page d'une plage de pages à imprimer (le paramètre « page jusqu'à »). Les pages d'un document sont numérotées selon la convention selon laquelle la première page est la page 1.
Par défaut, cette fonction renvoie une valeur spéciale égale à 0, ce qui signifie que le paramètre « page de fin » n'est pas défini.
Remarque : si les fonctions fromPage() et toPage() renvoient toutes deux la valeur 0, cela signifie que l'intégralité du document sera imprimée.
Il incombe au programmeur de lire ce paramètre et d’effectuer 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.