Skip to content

Commit 2902c47

Browse files
author
yangjian
committed
调整文集导出PDF功能的组件依赖
1 parent d48038a commit 2902c47

5 files changed

Lines changed: 242 additions & 490 deletions

File tree

MrDoc/settings.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -202,21 +202,6 @@
202202
'PAGE_SIZE': 10
203203
}
204204

205-
# Chromium路径
206-
try:
207-
CHROMIUM_DIR = CONFIG['chromium']['path']
208-
CHROMIUM_PATH = CHROMIUM_DIR
209-
# CHROMIUM_PATH = os.path.join(CONFIG_DIR,CHROMIUM_DIR) # Windows便携版本使用config下的路径
210-
except:
211-
CHROMIUM_PATH = None
212-
213-
# Chromium启动参数
214-
try:
215-
CHROMIUM_ARGS = CONFIG['chromium']['args'].split(',')
216-
except:
217-
CHROMIUM_ARGS = []
218-
219-
220205
# 全文检索配置
221206
HAYSTACK_CONNECTIONS = {
222207
'default': {

app_doc/report_html2pdf.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# coding:utf-8
2+
# @文件: report_html2pdf.py
3+
# @创建者:州的先生
4+
# #日期:2020/12/27
5+
# 博客地址:zmister.com
6+
7+
import sys
8+
from urllib.parse import quote
9+
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets, QtGui
10+
# print(sys.path)
11+
12+
13+
def html2pdf(html_path,pdf_path):
14+
html_path = '/'.join(html_path.split('\\'))
15+
html_path = quote(html_path, safe='/:?=')
16+
# 实例化一个Qt应用
17+
app = QtWidgets.QApplication(sys.argv)
18+
# 实例化一个WebEngineView
19+
loader = QtWebEngineWidgets.QWebEngineView()
20+
# 设置视图缩放比例
21+
loader.setZoomFactor(1)
22+
# 设置页码打印完成后的槽
23+
loader.page().pdfPrintingFinished.connect(loader.close)
24+
# 请求HTML文件
25+
loader.load(QtCore.QUrl("file:///{}".format(html_path)))
26+
27+
def emit_pdf(finished):
28+
layout = QtGui.QPageLayout()
29+
layout.setPageSize(QtGui.QPageSize(QtGui.QPageSize.A4Extra))
30+
layout.setLeftMargin(20)
31+
layout.setRightMargin(20)
32+
layout.setTopMargin(20)
33+
layout.setBottomMargin(20)
34+
layout.setOrientation(QtGui.QPageLayout.Portrait)
35+
loader.page().printToPdf(pdf_path, pageLayout=layout)
36+
37+
# 加载完成后连接到PDF打印方法
38+
loader.loadFinished.connect(emit_pdf)
39+
app.exec_()
40+
41+
42+
if __name__ == '__main__':
43+
# print(sys.argv)
44+
html_path, pdf_path = sys.argv[1],sys.argv[2]
45+
html2pdf(html_path=html_path,pdf_path=pdf_path)

0 commit comments

Comments
 (0)