用户:活泼的重金怪MO3m查看:0 回复:0 评论:0 创建时间:2021-01-03T10:45:38
【作品展示】

【作品介绍】
图片转pdf库:
PySide2
(创建bat文件,写入 cmd /k "cd /d C:\Pyblock\resources\app\Python-win喵&&python -m pip uninstall pyside2&&python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyside2==5.12.3" ,然后运行)
Pillow
【作品源代码】
from PySide2 import QtCore, QtGui, QtWidgets
class Ui_pictopdf3(object):
def setupUi(self, pictopdf3):
pictopdf3.setObjectName("pictopdf3")
pictopdf3.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(pictopdf3)
self.centralwidget.setObjectName("centralwidget")
self.showpic = QtWidgets.QPushButton(self.centralwidget)
self.showpic.setGeometry(QtCore.QRect(20, 80, 421, 381))
self.showpic.setText("")
self.showpic.setObjectName("showpic")
self.title = QtWidgets.QLabel(self.centralwidget)
self.title.setGeometry(QtCore.QRect(170, 10, 461, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.title.setFont(font)
self.title.setAlignment(QtCore.Qt.AlignCenter)
self.title.setObjectName("title")
self.pbtnpre = QtWidgets.QPushButton(self.centralwidget)
self.pbtnpre.setGeometry(QtCore.QRect(470, 330, 131, 41))
font = QtGui.QFont()
font.setPointSize(11)
self.pbtnpre.setFont(font)
self.pbtnpre.setObjectName("pbtnpre")
self.pbtnnext = QtWidgets.QPushButton(self.centralwidget)
self.pbtnnext.setGeometry(QtCore.QRect(650, 330, 131, 41))
font = QtGui.QFont()
font.setPointSize(11)
self.pbtnnext.setFont(font)
self.pbtnnext.setObjectName("pbtnnext")
self.delpic = QtWidgets.QPushButton(self.centralwidget)
self.delpic.setGeometry(QtCore.QRect(470, 420, 311, 41))
font = QtGui.QFont()
font.setPointSize(11)
self.delpic.setFont(font)
self.delpic.setObjectName("delpic")
self.done = QtWidgets.QPushButton(self.centralwidget)
self.done.setGeometry(QtCore.QRect(20, 510, 761, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.done.setFont(font)
self.done.setObjectName("done")
self.imgopen = QtWidgets.QPushButton(self.centralwidget)
self.imgopen.setGeometry(QtCore.QRect(450, 80, 331, 51))
font = QtGui.QFont()
font.setPointSize(13)
self.imgopen.setFont(font)
self.imgopen.setObjectName("imgopen")
self.page = QtWidgets.QLabel(self.centralwidget)
self.page.setGeometry(QtCore.QRect(130, 470, 201, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.page.setFont(font)
self.page.setAlignment(QtCore.Qt.AlignCenter)
self.page.setObjectName("page")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(450, 140, 171, 31))
self.pushButton.setObjectName("pushButton")
pictopdf3.setCentralWidget(self.centralwidget)
self.retranslateUi(pictopdf3)
QtCore.QMetaObject.connectSlotsByName(pictopdf3)
def retranslateUi(self, pictopdf3):
pictopdf3.setWindowTitle(QtWidgets.QApplication.translate(
"pictopdf3", "图片转pdf", None, -1))
self.title.setText(QtWidgets.QApplication.translate(
"pictopdf3", "图片转pdf [v1.4]", None, -1))
self.pbtnpre.setText(QtWidgets.QApplication.translate(
"pictopdf3", "上一张", None, -1))
self.pbtnnext.setText(QtWidgets.QApplication.translate(
"pictopdf3", "下一张", None, -1))
self.delpic.setText(QtWidgets.QApplication.translate(
"pictopdf3", "移除", None, -1))
self.done.setText(QtWidgets.QApplication.translate(
"pictopdf3", "生成pdf", None, -1))
self.imgopen.setText(QtWidgets.QApplication.translate(
"pictopdf3", "打开图片", None, -1))
self.page.setText(QtWidgets.QApplication.translate(
"pictopdf3", "1", None, -1))
self.pushButton.setText(QtWidgets.QApplication.translate(
"pictopdf3", "导入应用文件夹图片", None, -1))
class Ui_final3(object):
def setupUi(self, final3):
final3.setObjectName("final3")
final3.resize(491, 201)
self.centralwidget = QtWidgets.QWidget(final3)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(130, 50, 231, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.pbtn_canel = QtWidgets.QPushButton(self.centralwidget)
self.pbtn_canel.setGeometry(QtCore.QRect(20, 150, 80, 41))
font = QtGui.QFont()
font.setPointSize(13)
self.pbtn_canel.setFont(font)
self.pbtn_canel.setObjectName("pbtn_canel")
self.pbtn_ok = QtWidgets.QPushButton(self.centralwidget)
self.pbtn_ok.setGeometry(QtCore.QRect(390, 150, 80, 41))
font = QtGui.QFont()
font.setPointSize(13)
self.pbtn_ok.setFont(font)
self.pbtn_ok.setObjectName("pbtn_ok")
final3.setCentralWidget(self.centralwidget)
self.retranslateUi(final3)
QtCore.QMetaObject.connectSlotsByName(final3)
def retranslateUi(self, final3):
final3.setWindowTitle(QtWidgets.QApplication.translate(
"final3", "生成pdf", None, -1))
self.label.setText(QtWidgets.QApplication.translate(
"final3", "确认输出?", None, -1))
self.pbtn_canel.setText(
QtWidgets.QApplication.translate("final3", "取消", None, -1))
self.pbtn_ok.setText(
QtWidgets.QApplication.translate("final3", "确认", None, -1))
import sys
import os
try:
from PySide2.QtWidgets import *
from PySide2.QtCore import *
from PySide2.QtGui import *
except:
print("Downloading program 'PySide2'")
os.system("pip install - -index-ur喵snapshots/ci/pyside/5.12/latest pyside2 - -trusted-host download.qt.io")
try:
from PIL import Image
except:
print("Downloading program 'Pillow'")
os.system("pip install Pillow")
# from ui_uipictopdf3 import Ui_pictopdf3
# from ui_final3 import Ui_final3
imglst=[]
showw=421
showh=381
class window_main(QMainWindow,Ui_pictopdf3):
def __init__(self):
super().__init__()
self.setupUi(self)
self.setup()
self.show()
def setup(self):
self.pushButton.setVisible(False)
#self.title.setText("图片转pdf [v1.4]")
self.numset()
self.itemsignal()
def numset(self):
self.num=0
self.pagenum=1
def itemsignal(self):
self.pbtnpre.clicked.connect(self.pagepre)
self.pbtnnext.clicked.connect(self.pagenext)
self.imgopen.clicked.connect(self.fileopen)
self.delpic.clicked.connect(self.imgdel)
self.done.clicked.connect(self.finalrun)
self.pushButton.clicked.connect(self.orgpic)
def pagenext(self):
if self.num0:
self.num-=1
self.pagenum=self.num+1
self.showout()
def fileopen(self):
file, _ = QFileDialog.getOpenFileName(caption="", filter="(*.jpg *.png *.jpeg)")
if file:
imglst.append(file)
self.pagenum=len(imglst)
self.num=self.pagenum-1
self.showout()
def showout(self):
self.showpic.setIcon(QIcon(imglst[self.num]))#len(imglst)-1
self.showpic.setIconSize(QSize(showw,showh))
self.page.setText(str(self.pagenum))
def imgdel(self):
if len(imglst)!=0:
imglst.remove(imglst[self.num])
if self.pagenum>1:
self.pagenum-=1
self.num=self.pagenum-1
if len(imglst)!=0:
self.showout()
else:
self.showout2()
def showout2(self):
self.showpic.setIcon(QIcon(None))
self.page.setText(str(self.pagenum))
def finalrun(self):
if len(imglst)!=0:
self.wind2=window2()
def orgpic(self):
if len(os.listdir(os.path.realpath("图片")))!=0:
for z in os.listdir(os.path.realpath("图片")):
if ".png" in z or ".jpg" in z or ".jpeg" in z:
imglst.append(os.path.join(os.path.join(os.getcwd(),"图片"),z))
self.pagenum=len(imglst)
self.num=self.pagenum-1
self.pushButton.setVisible(False)
self.showout()
class window2(QMainWindow,Ui_final3):
def __init__(self):
super().__init__()
self.setupUi(self)
self.setup()
self.show()
def setup(self):
self.itemsignal()
def itemsignal(self):
self.pbtn_canel.clicked.connect(self.canelpress)
self.pbtn_ok.clicked.connect(self.okpress)
def canelpress(self):
self.hide()
def okpress(self):
file, _ = QFileDialog.getSaveFileName(
caption="", filter="(*.pdf)")
if file:
self.pdf_name=file
self.label.setText("生成中...")
self.pbtn_canel.setVisible(False)
self.pbtn_ok.setVisible(False)
self.mainsetup()
def mainsetup(self):
im_list=[]
imgs=[]
for v in imglst:
imgs.append(v)
im1 = Image.open(imgs[0]).convert("RGB")
imgs.pop(0)
for i in imgs:
img = Image.open(i).convert("RGB")
im_list.append(img)
im1.save("%s" % self.pdf_name, "PDF", resolution=100.0,save_all=True, append_images=im_list)
QMessageBox.information(self,"[提示]","文件已保存")
self.hide()
if __name__=="__main__":
app=QApplication(sys.argv)
window=window_main()
sys.exit(app.exec_())
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn