Я использую PyQt5.QtWebEngineWidgets для отображения PDF-файла и пытаюсь получить выделенный текст.
Использование hasSelection() и selectedText() работает с HTML файлы, но происходит сбой, когда в веб-представлении отображается PDF-файл. Есть идеи, как скопировать выделенный текст (кроме использования CTRL+C)?
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QMenu
from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEngineView
class Browser(QWebEngineView):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def get_selection(self):
if self.hasSelection():
print(self.selectedText())
else:
print('No text selected')
def contextMenuEvent(self, event):
self.menu = QMenu()
get_selection = self.menu.addAction('Copy')
get_selection.triggered.connect(self.get_selection)
self.menu.popup(event.globalPos())
class MainWindow(QMainWindow):
def __init__(self):
super(QMainWindow, self).__init__()
self.setWindowTitle("PDF Viewer")
self.setGeometry(0, 28, 1000, 750)
self.webView = QWebEngineView()
self.webView = Browser()
self.webView.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)
self.webView.settings().setAttribute(QWebEngineSettings.PdfViewerEnabled, True)
self.setCentralWidget(self.webView)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
win = MainWindow()
win.show()
win.webView.setUrl(QUrl.fromLocalFile("d:/test.pdf"))
sys.exit(app.exec_())
Подробнее здесь: https://stackoverflow.com/questions/741 ... engineview
Скопируйте выделенный текст из PDF в PyQt5 QWebEngineView ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Скопируйте выделенный текст из одного документа в другой документ с помощью Python-docx
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-