Auf dieser Seite

QPrinter Class

Die Klasse „QPrinter“ ist ein Zeichenobjekt, das auf einem Drucker zeichnet. Mehr...

Kopfzeile: #include <QPrinter>
CMake: find_package(Qt6 REQUIRED COMPONENTS PrintSupport)
target_link_libraries(mytarget PRIVATE Qt6::PrintSupport)
qmake: QT += printsupport
Erbt von: QPagedPaintDevice

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Typen

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 }

Öffentliche Funktionen

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

Neu implementierte öffentliche Funktionen

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

Geschützte Funktionen

void setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine)

Ausführliche Beschreibung

Dieses Gerät stellt eine Reihe von gedruckten Seiten dar und wird fast genauso verwendet wie andere Zeichen-Geräte, z. B. „ QWidget “ und „ QPixmap “. Es stehen eine Reihe zusätzlicher Funktionen zur Verfügung, um gerätespezifische Eigenschaften wie Ausrichtung und Auflösung zu verwalten und die Seiten eines Dokuments während der Erstellung nacheinander durchzugehen.

Beim direkten Drucken auf einem Drucker unter Windows oder macOS nutzt QPrinter die integrierten Druckertreiber. Unter X11 nutzt QPrinter das Common Unix Printing System (CUPS), um die PDF-Ausgabe an den Drucker zu senden. Alternativ kann die Funktion printProgram() verwendet werden, um den Befehl oder das Dienstprogramm anzugeben, das anstelle der Systemstandardauswahl verwendet werden soll.

Beachten Sie, dass die Einstellung von Parametern wie Papierformat und Auflösung bei einem ungültigen Drucker undefiniert ist. Sie können dies mit ` QPrinter::isValid()` überprüfen, bevor Sie Parameter ändern.

QPrinter unterstützt eine Reihe von Parametern, von denen die meisten vom Endbenutzer über ` print dialog` geändert werden können. Im Allgemeinen leitet QPrinter diese Funktionen an die zugrunde liegende ` QPrintEngine` weiter.

Die wichtigsten Parameter sind:

  • setPageLayout() teilt QPrinter mit, welche Seitenausrichtung verwendet werden soll und welche Größe vom Drucker erwartet wird.
  • setResolution() teilt QPrinter mit, welche Auflösung der Drucker in Punkten pro Zoll (DPI) liefern soll.
  • setFullPage() teilt QPrinter mit, ob die gesamte Seite oder nur der Bereich, den der Drucker ausgeben kann, verarbeitet werden soll.
  • setCopyCount() teilt QPrinter mit, wie viele Kopien des Dokuments gedruckt werden sollen.

Viele dieser Funktionen können nur vor Beginn des eigentlichen Druckvorgangs aufgerufen werden (d. h. bevor „ QPainter::begin “ () aufgerufen wird). Dies ist in der Regel sinnvoll, da es beispielsweise nicht möglich ist, die Anzahl der Kopien zu ändern, wenn der Druckvorgang bereits zur Hälfte abgeschlossen ist. Es gibt außerdem einige Einstellungen, die der Benutzer (über den Druckerdialog) festlegt und an die sich Anwendungen halten sollen. Weitere Details finden Sie in der Dokumentation unter QAbstractPrintDialog.

Wenn ` QPainter::begin()` aufgerufen wird, wird der betroffene `QPrinter` für eine neue Seite vorbereitet, sodass der ` QPainter ` sofort zum Zeichnen der ersten Seite eines Dokuments verwendet werden kann. Sobald die erste Seite gezeichnet wurde, kann ` newPage()` aufgerufen werden, um eine neue leere Seite zum Zeichnen anzufordern, oder ` QPainter::end()`, um den Druckvorgang zu beenden. Die zweite Seite und alle folgenden Seiten werden vor dem Zeichnen durch einen Aufruf von ` newPage()` vorbereitet.

Der ersten Seite eines Dokuments muss kein Aufruf von ` newPage()` vorausgehen. Sie müssen ` newPage()` erst nach ` QPainter::begin()` aufrufen, wenn Sie am Anfang eines gedruckten Dokuments eine leere Seite einfügen möchten. Ebenso führt der Aufruf von ` newPage()` nach dem Zeichnen der letzten Seite eines Dokuments dazu, dass am Ende des gedruckten Dokuments eine leere Seite angehängt wird.

Wenn Sie den Druckauftrag abbrechen möchten, versucht ` abort()` nach Kräften, den Druckvorgang zu stoppen. Dabei kann der gesamte Auftrag oder nur ein Teil davon abgebrochen werden.

Da QPrinter auf jede Unterklasse von ` QPrintEngine ` drucken kann, ist es möglich, die Druckunterstützung auf neue Arten von Drucksubsystemen auszuweiten, indem man ` QPrintEngine ` unterklassifiziert und dessen Schnittstelle neu implementiert.

Siehe auch „ QPrintDialog “ und Qt Print Support.

Dokumentation zu Mitgliedstypen

enum QPrinter::ColorMode

Dieser Enum-Typ wird verwendet, um anzugeben, ob „ QPrinter “ in Farbe drucken soll oder nicht.

KonstanteWertBeschreibung
QPrinter::Color1In Farbe drucken, sofern verfügbar, andernfalls in Graustufen.
QPrinter::GrayScale0In Graustufen drucken, auch auf Farbdruckern.

enum QPrinter::DuplexMode

Diese Enumeration dient dazu, anzugeben, ob auf einer oder auf beiden Seiten jedes Blattes gedruckt wird (Simplex- oder Duplexdruck).

KonstanteWertBeschreibung
QPrinter::DuplexNone0Nur einseitiger (Simplex-)Druck.
QPrinter::DuplexAuto1Die Standardeinstellung des Druckers wird verwendet, um zu bestimmen, ob Duplexdruck verwendet wird.
QPrinter::DuplexLongSide2Beide Seiten jedes Blattes werden zum Drucken verwendet. Das Papier wird an der längsten Kante gewendet, bevor die zweite Seite bedruckt wird
QPrinter::DuplexShortSide3Beide Seiten jedes Blattes werden zum Drucken verwendet. Das Papier wird an der kürzesten Kante gewendet, bevor die zweite Seite bedruckt wird

enum QPrinter::OutputFormat

Die Enumeration „OutputFormat“ dient dazu, das Format zu beschreiben, das „ QPrinter “ für die Ausgabe verwenden soll.

KonstanteWertBeschreibung
QPrinter::NativeFormat0QPrinter Die Ausgabe erfolgt mithilfe einer Methode, die von der jeweiligen Plattform definiert wird, auf der das Programm ausgeführt wird. Dieser Modus ist die Standardeinstellung beim direkten Drucken auf einem Drucker.
QPrinter::PdfFormat1QPrinter Erzeugt die Ausgabe als durchsuchbare PDF-Datei. Dieser Modus ist die Standardeinstellung beim Drucken in eine Datei.

Siehe auch outputFormat(), setOutputFormat() und setOutputFileName().

enum QPrinter::PageOrder

Dieser Enum-Typ wird von „ QPrinter “ verwendet, um dem Anwendungsprogramm mitzuteilen, wie gedruckt werden soll.

KonstanteWertBeschreibung
QPrinter::FirstPageFirst0Die Seite mit der niedrigsten Seitenzahl soll zuerst gedruckt werden.
QPrinter::LastPageFirst1Die Seite mit der höchsten Seitenzahl soll zuerst gedruckt werden.

enum QPrinter::PaperSource

Dieser Enum-Typ legt fest, welche Papierquelle QPrinter verwenden soll. QPrinter prüft nicht, ob die Papierquelle verfügbar ist; die Information wird lediglich verwendet, um zu versuchen, die Papierquelle festzulegen. Ob die Papierquelle tatsächlich festgelegt wird, hängt davon ab, ob der Drucker über diese bestimmte Quelle verfügt.

Warnung: Dies ist derzeit nur unter Windows implementiert.

KonstanteWertBeschreibung
QPrinter::Auto6 
QPrinter::Cassette11 
QPrinter::Envelope4 
QPrinter::EnvelopeManual5 
QPrinter::FormSource12 
QPrinter::LargeCapacity10 
QPrinter::LargeFormat9 
QPrinter::Lower1 
QPrinter::MaxPageSource13Veraltet, bitte stattdessen „LastPaperSource“ verwenden
QPrinter::Middle2 
QPrinter::Manual3 
QPrinter::OnlyOne0 
QPrinter::Tractor7 
QPrinter::SmallFormat8 
QPrinter::UpperOnlyOne 
QPrinter::CustomSource14Eine vom Drucker definierte PaperSource, die Qt nicht bekannt ist
QPrinter::LastPaperSourceCustomSourceDer höchste gültige PaperSource-Wert, derzeit CustomSource

enum QPrinter::PrintRange

Dient zur Festlegung der Option zur Auswahl des Druckbereichs.

KonstanteWertBeschreibung
QPrinter::AllPages0Alle Seiten sollen gedruckt werden.
QPrinter::Selection1Nur die Auswahl soll gedruckt werden.
QPrinter::PageRange2Der angegebene Seitenbereich soll gedruckt werden.
QPrinter::CurrentPage3Nur die aktuelle Seite soll gedruckt werden.

Siehe auch setPrintRange(), printRange() und QAbstractPrintDialog::PrintRange.

enum QPrinter::PrinterMode

Diese Aufzählung beschreibt den Modus, in dem der Drucker arbeiten soll. Sie legt im Wesentlichen eine bestimmte Auflösung und einen bestimmten Betriebsmodus fest.

KonstanteWertBeschreibung
QPrinter::ScreenResolution0Stellt die Auflösung des Druckgeräts auf die Bildschirmauflösung ein. Dies hat den großen Vorteil, dass die beim Drucken erzielten Ergebnisse mehr oder weniger genau mit der sichtbaren Darstellung auf dem Bildschirm übereinstimmen. Diese Option ist am einfachsten zu verwenden, da die Schriftgrößen auf dem Bildschirm und auf dem Drucker identisch sind. Dies ist der Standardwert. „ScreenResolution“ liefert eine Ausgabe von geringerer Qualität als „HighResolution“ und sollte nur für Entwürfe verwendet werden.
QPrinter::PrinterResolution1Dieser Wert ist veraltet. Bei Druckern entspricht er „ScreenResolution“ unter Unix und „HighResolution“ unter Windows und macOS. Beim PDF-Druck wird er nicht unterstützt und kann zu undefiniertem Verhalten führen. Die Verwendung dieses Werts kann zu nicht portierbarem Druckercode führen.
QPrinter::HighResolution2Unter Windows wird die Druckauflösung auf den für den verwendeten Drucker definierten Wert gesetzt. Beim PDF-Druck wird die Auflösung des PDF-Treibers auf 1200 dpi festgelegt.

Hinweis: Beim Rendern von Text auf einem „ QPrinter “-Gerät ist zu beachten, dass die Textgröße, wenn sie in Punkten angegeben wird, unabhängig von der für das Gerät selbst festgelegten Auflösung ist. Daher kann es sinnvoll sein, die Schriftgröße in Pixeln anzugeben, wenn Text mit Grafiken kombiniert wird, um sicherzustellen, dass deren relative Größen den Erwartungen entsprechen.

enum QPrinter::PrinterState

KonstanteWert
QPrinter::Idle0
QPrinter::Active1
QPrinter::Aborted2
QPrinter::Error3

enum QPrinter::Unit

Dieser Enum-Typ dient zur Angabe der Maßeinheit für Seiten- und Papierformate.

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

Beachten Sie den Unterschied zwischen „Point“ und „DevicePixel“. Die Einheit „Point“ ist als 1/72 Zoll definiert, während die Einheit „DevicePixel“ auflösungsabhängig ist und auf den tatsächlichen Pixeln oder Punkten des Druckers basiert.

Dokumentation der Mitgliedsfunktionen

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

Erstellt ein neues Druckerobjekt mit dem angegebenen „ mode “.

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

Erstellt ein neues Druckerobjekt mit den angegebenen Werten für „ printer “ und „ mode “.

[virtual noexcept] QPrinter::~QPrinter()

Löscht das Druckerobjekt und gibt alle zugewiesenen Ressourcen frei. Wird der Drucker gelöscht, während ein Druckauftrag ausgeführt wird, kann dies Auswirkungen auf den Druckauftrag haben oder auch nicht.

bool QPrinter::abort()

Bricht den aktuellen Druckvorgang ab. Gibt „ true “ zurück, wenn der Druckvorgang erfolgreich abgebrochen wurde, und „ printerState()“ gibt „ QPrinter::Aborted “ zurück; andernfalls wird „ false “ zurückgegeben.

Es ist nicht immer möglich, einen Druckauftrag abzubrechen. Beispielsweise wurden bereits alle Daten an den Drucker gesendet, aber der Drucker kann oder will den Auftrag auf Anfrage nicht abbrechen.

bool QPrinter::collateCopies() const

Gibt „ true “ zurück, wenn die Sortierfunktion aktiviert ist und „Multiple Copies“ ausgewählt wurde. Gibt „ false “ zurück, wenn sie deaktiviert ist und „Multiple Copies“ ausgewählt wurde. Bei deaktivierter Sortierfunktion wird jede einzelne Seite die durch „numCopies()“ angegebene Anzahl an Malen gedruckt, bevor mit der nächsten Seite begonnen wird. Bei aktivierter Sortierfunktion werden alle Seiten gedruckt, bevor mit der nächsten Kopie dieser Seiten begonnen wird.

Siehe auch setCollateCopies().

QPrinter::ColorMode QPrinter::colorMode() const

Gibt den aktuellen Farbmodus zurück.

Siehe auch „ setColorMode()“.

int QPrinter::copyCount() const

Gibt die Anzahl der zu druckenden Exemplare zurück. Der Standardwert ist 1.

Siehe auch setCopyCount() und supportsMultipleCopies().

QString QPrinter::creator() const

Gibt den Namen der Anwendung zurück, die das Dokument erstellt hat.

Siehe auch „ setCreator()“.

QString QPrinter::docName() const

Gibt den Dokumentnamen zurück.

Siehe auch setDocName() und QPrintEngine::PrintEnginePropertyKey.

QPrinter::DuplexMode QPrinter::duplex() const

Gibt den aktuellen Duplex-Modus zurück.

Siehe auch „ setDuplex()“.

bool QPrinter::fontEmbeddingEnabled() const

Gibt „ true “ zurück, wenn die Schriftarteneinbettung aktiviert ist.

Siehe auch setFontEmbeddingEnabled().

int QPrinter::fromPage() const

Gibt die Nummer der ersten Seite in einem zu druckenden Seitenbereich zurück (die Einstellung „Startseite“). Die Seiten in einem Dokument werden nach der Konvention nummeriert, dass die erste Seite die Seite 1 ist.

Standardmäßig gibt diese Funktion den Sonderwert 0 zurück, was bedeutet, dass die Einstellung „Startseite“ nicht festgelegt ist.

Hinweis: Wenn sowohl `fromPage()` als auch ` toPage()` den Wert 0 zurückgeben, bedeutet dies, dass das gesamte Dokument gedruckt wird.

Siehe auch setFromTo(), toPage() und pageRanges().

bool QPrinter::fullPage() const

Gibt „ true “ zurück, wenn der Ursprung des Koordinatensystems des Druckers an der Ecke der Seite liegt, und „false“, wenn er am Rand des druckbaren Bereichs liegt.

Einzelheiten und Hinweise finden Sie unter „ setFullPage()“.

Siehe auch „ setFullPage()“ und „ QPagedPaintDevice::pageLayout()“.

bool QPrinter::isValid() const

Gibt „ true “ zurück, wenn der aktuell ausgewählte Drucker ein gültiger Drucker im System oder ein reiner PDF-Drucker ist; andernfalls wird „ false “ zurückgegeben.

Um weitere Fehler zu erkennen, überprüfen Sie die Ausgabe von ` QPainter::begin()` oder ` QPrinter::newPage()`.

    QPrinter printer;
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setOutputFileName("/foobar/nonwritable.pdf");
    QPainter painter;
    if (! painter.begin(&printer)) { // Datei konnte nicht geöffnet werden
        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();

Siehe auch setPrinterName().

[override virtual] bool QPrinter::newPage()

Implementiert: QPagedPaintDevice::newPage().

Weist den Drucker an, die aktuelle Seite auszugeben und den Druckvorgang auf einer neuen Seite fortzusetzen. Gibt „ true “ zurück, wenn dies erfolgreich war; andernfalls wird „ false “ zurückgegeben.

Der Aufruf von `newPage()` bei einem inaktiven ` QPrinter `-Objekt schlägt immer fehl.

QString QPrinter::outputFileName() const

Gibt den Namen der Ausgabedatei zurück. Standardmäßig ist dies eine leere Zeichenkette (was bedeutet, dass der Drucker nicht in eine Datei drucken soll).

Siehe auch setOutputFileName() und QPrintEngine::PrintEnginePropertyKey.

QPrinter::OutputFormat QPrinter::outputFormat() const

Gibt das Ausgabeformat für diesen Drucker zurück.

Siehe auch setOutputFormat().

QPrinter::PageOrder QPrinter::pageOrder() const

Gibt die aktuelle Seitenreihenfolge zurück.

Die Standard-Seitenreihenfolge lautet „ FirstPageFirst “.

Siehe auch ` setPageOrder()`.

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

Gibt das Rechteck der Seite in „ unit “ zurück; dieses ist in der Regel kleiner als das von „ paperRect()“, da die Seite normalerweise Ränder zwischen ihren Begrenzungen und dem Papier aufweist.

Siehe auch ` QPagedPaintDevice::pageLayout()`.

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

Implementiert neu: ` QPaintDevice::paintEngine()` const.

Gibt die vom Drucker verwendete Zeichen-Engine zurück.

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

Gibt das Rechteck des Papiers in ` unit` zurück; dieses ist in der Regel größer als das von ` pageRect()`.

Siehe auch ` pageRect()`.

QPrinter::PaperSource QPrinter::paperSource() const

Gibt die Papierquelle des Druckers zurück. Dies ist entweder „ Manual “ oder ein Druckerfach bzw. eine Papierkassette.

Siehe auch „ setPaperSource()“.

QPagedPaintDevice::PdfVersion QPrinter::pdfVersion() const

Gibt die PDF-Version für diesen Drucker zurück. Der Standardwert ist PdfVersion_1_4.

Siehe auch setPdfVersion().

QPrintEngine *QPrinter::printEngine() const

Gibt die vom Drucker verwendete Druck-Engine zurück.

QString QPrinter::printProgram() const

Gibt den Namen des Programms zurück, das die Druckausgabe an den Drucker sendet.

Standardmäßig wird eine leere Zeichenkette zurückgegeben; das bedeutet, dass „ QPrinter “ versucht, sich systemabhängig intelligent zu verhalten. Nur unter X11 können Sie einen anderen Wert festlegen, um ein bestimmtes Druckprogramm zu verwenden. Auf den anderen Plattformen gibt diese Funktion eine leere Zeichenkette zurück.

Siehe auch setPrintProgram() und setPrinterSelectionOption().

QPrinter::PrintRange QPrinter::printRange() const

Gibt den Seitenbereich des „ QPrinter “ zurück. Nachdem der Dialog zum Einrichten des Druckers geöffnet wurde, gibt diese Funktion den vom Benutzer ausgewählten Wert zurück.

Siehe auch setPrintRange().

QString QPrinter::printerName() const

Gibt den Druckernamen zurück. Dieser Wert ist zunächst auf den Namen des Standarddruckers gesetzt.

Siehe auch ` setPrinterName()`.

QString QPrinter::printerSelectionOption() const

Gibt die Zeichenfolge zur Auswahl der Druckeroptionen zurück. Dies ist nur dann sinnvoll, wenn der Druckbefehl explizit festgelegt wurde.

Der Standardwert (eine leere Zeichenkette) bedeutet, dass der Drucker systemabhängig ausgewählt werden soll.

Jeder andere Wert bedeutet, dass der angegebene Wert verwendet werden soll.

Diese Funktion gibt unter Windows und Mac immer eine leere Zeichenkette zurück.

Siehe auch setPrinterSelectionOption() und setPrintProgram().

QPrinter::PrinterState QPrinter::printerState() const

Gibt den aktuellen Status des Druckers zurück. Dieser ist möglicherweise nicht immer korrekt (beispielsweise wenn der Drucker nicht in der Lage ist, seinen Status an das Betriebssystem zu melden).

int QPrinter::resolution() const

Gibt die aktuell vom Drucker verwendete Auflösung zurück, wie sie durch setResolution() oder durch den Druckertreiber festgelegt wurde.

Siehe auch ` setResolution()`.

void QPrinter::setCollateCopies(bool collate)

Legt den Standardwert für das Kontrollkästchen „Sortieren“ fest, wenn der Druckdialog angezeigt wird. Wenn „ collate “ auf „true“ gesetzt ist, wird „setCollateCopiesEnabled()“ aktiviert. Der Standardwert ist „false“. Dieser Wert wird durch die Auswahl des Benutzers im Druckdialog geändert.

Siehe auch collateCopies().

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

Stellt den Farbmodus des Druckers auf „ newColorMode “ ein, wobei dies entweder „ Color “ oder „ GrayScale “ sein kann.

Siehe auch „ colorMode()“.

void QPrinter::setCopyCount(int count)

Legt die Anzahl der zu druckenden Kopien auf „ count “ fest.

Der Druckertreiber liest diese Einstellung aus und druckt die angegebene Anzahl an Kopien.

Siehe auch „ copyCount()“ und „ supportsMultipleCopies()“.

void QPrinter::setCreator(const QString &creator)

Setzt den Namen der Anwendung, die das Dokument erstellt hat, auf „ creator “.

Diese Funktion gilt nur für die X11-Version von Qt. Wenn kein Erstellername angegeben wird, wird als Erstellername „Qt“ gefolgt von einer Versionsnummer gesetzt.

Siehe auch creator().

void QPrinter::setDocName(const QString &name)

Legt den Dokumentnamen auf „ name “ fest.

Unter X11 wird der Dokumentname beispielsweise als Standard-Ausgabedateiname in ` QPrintDialog` verwendet. Beachten Sie, dass der Dokumentname keinen Einfluss auf den Dateinamen hat, wenn der Drucker in eine Datei druckt. Verwenden Sie hierfür die Funktion `setOutputFile()`.

Siehe auch „ docName()“ und „ QPrintEngine::PrintEnginePropertyKey “.

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

Aktiviert den beidseitigen Druck im Modus „ duplex “.

Siehe auch „ duplex“ ().

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

Diese Funktion wird von Unterklassen von ` QPrinter ` verwendet, um benutzerdefinierte Druck- und Zeichen-Engines anzugeben (jeweils `printEngine ` und ` paintEngine`).

QPrinter übernimmt nicht die Verantwortung für die Engines, daher müssen Sie diese Engine-Instanzen selbst verwalten.

Beachten Sie, dass durch das Ändern der Engines der Druckerstatus und alle seine Eigenschaften zurückgesetzt werden.

Siehe auch printEngine(), paintEngine() und setOutputFormat().

void QPrinter::setFontEmbeddingEnabled(bool enable)

Aktiviert oder deaktiviert die Einbettung von Schriftarten je nach enable.

Siehe auch fontEmbeddingEnabled().

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

Legt den zu druckenden Seitenbereich so fest, dass er die Seiten mit den in from und to angegebenen Seitenzahlen umfasst, wobei from der ersten Seite im Bereich und to der letzten Seite entspricht.

Hinweis: Die Seiten in einem Dokument werden nach der Konvention nummeriert, dass die erste Seite die Seite 1 ist. Sind jedoch sowohl from als auch to auf 0 gesetzt, wird das gesamte Dokument gedruckt.

Diese Funktion wird hauptsächlich verwendet, um einen Standardwert festzulegen, den der Benutzer im Druckdialog überschreiben kann, wenn Sie setup() aufrufen.

Siehe auch fromPage(), toPage() und pageRanges().

void QPrinter::setFullPage(bool fp)

Wenn „ fp “ auf „true“ gesetzt ist, wird die Unterstützung für das Zeichnen auf der gesamten Seite aktiviert; andernfalls wird das Zeichnen auf den vom Gerät gemeldeten Druckbereich beschränkt.

Standardmäßig ist der Vollseitendruck deaktiviert. In diesem Fall fällt der Ursprung des Koordinatensystems von „ QPrinter “ mit der oberen linken Ecke des druckbaren Bereichs zusammen.

Ist der Vollseitendruck aktiviert, fällt der Ursprung des Koordinatensystems von ` QPrinter` mit der oberen linken Ecke des Papiers selbst zusammen. In diesem Fall meldet der „ device metrics “ genau dieselben Abmessungen wie in {QPageSize} angegeben. Aufgrund der Ränder des Druckers ist es unter Umständen nicht möglich, auf der gesamten physischen Seite zu drucken; daher muss die Anwendung die Ränder selbst berücksichtigen.

Siehe auch fullPage(), QPagedPaintDevice::pageLayout() und QPagedPaintDevice::setPageSize().

void QPrinter::setOutputFileName(const QString &fileName)

Legt den Namen der Ausgabedatei auf „ fileName “ fest.

Die Angabe eines Nullwerts oder eines leeren Namens (0 oder „“) deaktiviert die Ausgabe in eine Datei. Die Angabe eines nicht leeren Namens aktiviert die Ausgabe in eine Datei.

Dies kann den Wert von ` outputFormat()` ändern. Wenn der Dateiname die Endung „.pdf“ hat, wird eine PDF-Datei erzeugt. Wenn der Dateiname eine andere Endung als „.pdf“ hat, wird das Ausgabeformat verwendet, das mit ` setOutputFormat()` festgelegt wurde.

QPrinter verwendet jeweils die plattformübergreifenden PDF-Druck-Engines von Qt PDF. Wenn Sie dieses Format nativ erzeugen können – beispielsweise kann macOS PDFs über seine eigene Druck-Engine generieren –, setzen Sie das Ausgabeformat wieder auf „ NativeFormat “.

Siehe auch outputFileName() und setOutputFormat().

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

Legt das Ausgabeformat für diesen Drucker auf „ format “ fest.

Wenn „ format “ mit dem aktuell eingestellten Wert übereinstimmt, wird keine Änderung vorgenommen.

Wenn „ format “ den Wert „ NativeFormat “ hat, wird „ printerName “ auf den Standarddrucker gesetzt. Sind keine gültigen Drucker konfiguriert, erfolgt keine Änderung. Wenn Sie „ NativeFormat “ mit einem bestimmten „ printerName “ festlegen möchten, verwenden Sie „ setPrinterName()“.

Siehe auch outputFormat() und setPrinterName().

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

Legt die Seitenreihenfolge auf „ pageOrder “ fest.

Die Seitenreihenfolge kann „ QPrinter::FirstPageFirst “ oder „ QPrinter::LastPageFirst “ lauten. Die Anwendung ist dafür verantwortlich, die Seitenreihenfolge auszulesen und entsprechend zu drucken.

Diese Funktion ist vor allem nützlich, um einen Standardwert festzulegen, den der Benutzer im Druckdialog überschreiben kann.

Diese Funktion wird nur unter X11 unterstützt.

Siehe auch pageOrder().

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

Legt die Papierquelle auf „ source “ fest.

Nur Windows: Diese Option kann während des Druckvorgangs geändert werden und wird ab dem nächsten Aufruf von ` newPage()` wirksam.

Siehe auch ` paperSource()`.

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

Legt die PDF-Version für diesen Drucker auf „ version “ fest.

Wenn „ version “ mit dem aktuell eingestellten Wert übereinstimmt, wird keine Änderung vorgenommen.

Siehe auch „ pdfVersion()“.

void QPrinter::setPrintProgram(const QString &printProg)

Legt den Namen des Programms, das den Druckauftrag ausführen soll, auf „ printProg “ fest.

Unter X11 legt diese Funktion das Programm fest, das für die PDF-Ausgabe aufgerufen werden soll. Auf anderen Plattformen hat sie keine Auswirkung.

Siehe auch ` printProgram()`.

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

Legt die Option für den Druckbereich auf „ range “ fest.

Siehe auch ` printRange()`.

void QPrinter::setPrinterName(const QString &name)

Legt den Druckernamen auf „ name “ fest.

Ist „ name “ leer, wird das Ausgabeformat auf „ PdfFormat “ gesetzt.

Ist „ name “ kein gültiger Drucker, wird keine Änderung vorgenommen.

Ist „ name “ ein gültiger Drucker, wird das Ausgabeformat auf „ NativeFormat “ gesetzt.

Siehe auch „ printerName()“, „ isValid()“ und „ setOutputFormat()“.

void QPrinter::setPrinterSelectionOption(const QString &option)

Legt fest, dass der Drucker zur Auswahl die Option „ option “ verwendet. „ option “ ist standardmäßig auf null gesetzt (was bedeutet, dass Qt intelligent genug sein sollte, um die richtige Auswahl zu treffen), kann jedoch auf andere Werte gesetzt werden, um eine bestimmte Option zur Druckerauswahl zu verwenden.

Wird die Druckerauswahloption geändert, während der Drucker aktiv ist, kann dies Auswirkungen auf den aktuellen Druckauftrag haben – muss aber nicht.

Diese Funktion hat unter Windows oder Mac keine Auswirkung.

Siehe auch printerSelectionOption() und setPrintProgram().

void QPrinter::setResolution(int dpi)

Legt fest, dass der Drucker unter dpi oder so nah wie möglich an dpi druckt.

Diese Einstellung wirkt sich auf das Koordinatensystem aus, wie es beispielsweise von QPainter::viewport() zurückgegeben wird.

Diese Funktion muss vor QPainter::begin() aufgerufen werden, um auf allen Plattformen wirksam zu sein.

Siehe auch resolution() und QPagedPaintDevice::setPageSize().

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

Gibt die von diesem Drucker unterstützten Papierformate zurück.

Die Werte entsprechen entweder einem Eintrag in der Enumeration „ QPrinter::PaperSource “ oder einem treiberspezifischen Wert. Die treiberspezifischen Werte sind größer als die in „wingdi.h“ deklarierte Konstante DMBIN_USER.

Warnung: Diese Funktion ist nur unter Windows verfügbar.

QList<int> QPrinter::supportedResolutions() const

Gibt eine Liste der Auflösungen (eine Liste von Ganzzahlen in Punkten pro Zoll) zurück, die der Drucker laut eigener Angabe unterstützt.

Bei X11, wo der gesamte Druck direkt in PDF erfolgt, gibt diese Funktion immer eine Liste mit einem Element zurück, die nur die PDF-Auflösung enthält, d. h. 72 (72 dpi – siehe jedoch PrinterMode).

bool QPrinter::supportsMultipleCopies() const

Gibt „ true “ zurück, wenn der Drucker das Drucken mehrerer Kopien desselben Dokuments in einem Druckauftrag unterstützt; andernfalls wird „false“ zurückgegeben.

Auf den meisten Systemen gibt diese Funktion „true“ zurück. Auf X11-Systemen, die CUPS nicht unterstützen, gibt diese Funktion jedoch „false“ zurück. Das bedeutet, dass die Anwendung die Anzahl der Kopien selbst handhaben muss, indem sie dasselbe Dokument so oft wie erforderlich druckt.

Siehe auch setCopyCount() und copyCount().

int QPrinter::toPage() const

Gibt die Nummer der letzten Seite in einem zu druckenden Seitenbereich zurück (die Einstellung „bis Seite“). Die Seiten in einem Dokument werden so nummeriert, dass die erste Seite die Seite 1 ist.

Standardmäßig gibt diese Funktion den Sonderwert 0 zurück, was bedeutet, dass die Einstellung „bis Seite“ nicht festgelegt ist.

Hinweis: Wenn sowohl „ fromPage()“ als auch „toPage()“ den Wert 0 zurückgeben, bedeutet dies, dass das gesamte Dokument gedruckt wird.

Der Programmierer ist dafür verantwortlich, diese Einstellung auszulesen und den Druck entsprechend durchzuführen.

Siehe auch setFromTo(), fromPage() und 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.