QWebEngineView - PDF maximieren / zoomen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo zusammen,
ich verwende QWebEngineView für die Ausgabe von PDF.
Da PDF´s unterschiedliche Größen haben, möchte ich diese auf die Größe des viewer size maximieren bzw. zoomen.
Leider habe ich dafür noch nicht den richtigen Ansatz gefunden und hoffe, dass Ihr mir dabei helfen könnt!

Mein aktueller Code dazu:

Code: Alles auswählen

def pdf_viewer(self, filepath):
	# initializing viewer
	QWebEngineSettings.globalSettings().setAttribute(
		QWebEngineSettings.PluginsEnabled, True)
	QWebEngineSettings.globalSettings().setAttribute(
		QWebEngineSettings.FullScreenSupportEnabled, True)
	viewer = QWebEngineView()
	viewer_size = QSize(930, 830)
	viewer.resize(viewer_size)
	#viewer.page().fullScreenRequested.connect(self.FullscreenRequest)
	#viewer.page().fullScreenRequested.connect(lambda request: request.accept())
	viewer.setParent(None)
	viewer.showFullScreen()
	#viewer.page().setZoomFactor(2.0)
	viewer.load(QUrl.fromUserInput(filepath))
	print('viewer.isFullScreen()', viewer.isFullScreen())
	return viewer
Danke schon mal im voraus!
Grüße Nobuddy
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Das mit fullscreen bringt nicht das gewünschte Ergebnis.
Möchte nicht den Viewer vergrößern, sondern nur den Inhalt die PDF.
Da müsste setZoomFactor das Rrichtige sein.

Code: Alles auswählen


def pdf_viewer(self, filepath):
	# initializing viewer
	QWebEngineSettings.globalSettings().setAttribute(
		QWebEngineSettings.PluginsEnabled, True)
	QWebEngineSettings.globalSettings().setAttribute(
		QWebEngineSettings.FullScreenSupportEnabled, True)
	viewer = QWebEngineView()
	viewer_size = QSize(930, 830)
	viewer.resize(viewer_size)
	viewer.load(QUrl.fromUserInput(filepath))
	viewer.page().setZoomFactor(2.0)
	viewer.setZoomFactor(2.0)
	print('viewer.zoomFactor(): ',  viewer.zoomFactor())
	return viewer
Die Printausgabe zeigt das Ergebnis 2.0 an, was ja richtig ist, nur hat das keinerlei Auswirkung auf die PDF-Ausgabe.

Hoffe, dass jemand von Euch, mir weiterhelfen kann, ob dies umsetzbar ist.

Grüße Nobuddy
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich sehe da keinen Weg. Die Dokumentation ergibt nichts, was du nicht auch schon probiert hast. Auch mit Inspect im Chrome kommt man an nichts hilfreiches, womit man Javascript inizieren koennte. Also ohne da mehrere Stunden einzusteigen, wie *genau* der PDF-Viewer in Chrome funktioniert, und das dann auch noch irgendwie nach Qt zu hieven, wird das nichts.
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo __deets__,
Danke für die Info, bin auch zu dem Entschluss gekommen.
Ich habe daher die benötigten PDF-Dateien von der Größe so angepasst, dass es maximiert im Viewer angezeigt wird.
Das gehört zu einem Programm. das die verschiedenen Geometrien mit Daten und Zeichnung wiedergibt. Ist einfach nur um im Kopf etwas fit zu bleiben. :wink:

Danke und Grüße
Nobuddy
Antworten