用户:代码荣耀者查看:0 回复:1 评论:0 创建时间:2021-08-21T13:05:25
【作品展示】

【作品介绍】
跟上面的图片无关,效果图传不上去,只能用这个代替而,这是一个文件转PDF的系统,代码是以上课是提交的作业为基础,添加了许多(例如交互式窗口)功能的升级代码。它可以把任意后缀任意类型(除了文件夹)的文件(包括但不限于py文件,word文档等文件)转换为PDF,只需输入路径和文件名的三个参数,系统就能帮你一键转换为PDF!代码开源,欢迎下载和再创作!!!谢谢大家!
【作品源代码】
from reportlab.platypus import SimpleDocTemplate,Paragraph,PageBreak,Spacer
from reportlab.platypus.xpreformatted import PythonPreformatted
from reportlab.lib.styles import getSampleStyleSheet,ParagraphStyle
import webbrowser
import os
from glob import *
from easygui import *
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase.pdfmetrics import registerFont
def file_To_pdf(myDir,fn,save_Dir,myName):
registerFont(TTFont("简体中文",r"F:/鲁常欣 与竹独行/编程素材/fangzheng.TTF"))
na,ext = os.path.splitext(fn)
if na == "*":
na = "所有后缀名为“"+ext+"”的文件"
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="Normal_Chinese",parent=styles["Normal"],fontName="简体中文"))
styles.add(ParagraphStyle(name="Code_Chinese",parent=styles["Code"],fontName="简体中文"))
doc = SimpleDocTemplate(save_Dir+os.sep+na+".pdf",
title="源码手帐",
author=myName,
subject="PDF效果展示",
keywords=["Reportlab自动生成","SimpleDocTemplate模板","PDF文档模板","文件自动转PDF"]
)
content = []
file_list = glob(myDir+os.sep+fn,recursive=True)
self_name = os.path.basename(__file__)
if self_name in file_list:
file_list.remove(self_name)
for name in file_list:
with open(name,"r",encoding="utf-8") as f:
code = f.read()
f.close()
real_name = name.replace(myDir+os.sep,"")
content.append(Paragraph(real_name,styles["Normal_Chinese"]))
content.append(Spacer(20,20))
content.append(PythonPreformatted(code,styles["Code_Chinese"]))
content.append(PageBreak())
doc.build(content)
msgbox("欢迎来到文件转PDF系统!", '文件转PDF', '开始')
myDir = enterbox(msg="请输入你要转换的文件名所在的路径(相对绝对路径都行)(不含文件名)(不输入默认为“F:/鲁常欣 与竹独行/作品中转/优秀py作品”)", title="文件转PDF", strip=True, image=None, root=None)
fn = enterbox(msg="请输入你要转换的文件名(含后缀名,不含文件路径)(不输入就自动退出)", title="文件转PDF", strip=True, image=None, root=None)
if fn == None:
msgbox("再见", '文件转PDF', '退出')
exit()
save_Dir = enterbox(msg="你想保存到哪?请输入保存路径(相对绝对路径都行)(不含文件名)(不输入默认为F:/鲁常欣 与竹独行/编程素材)", title="文件转PDF", strip=True, image=None, root=None)
if myDir == None:
myDir = "F:/鲁常欣 与竹独行/作品中转/优秀py作品"
if save_Dir == None:
save_Dir = "F:/鲁常欣 与竹独行/编程素材"
myName = enterbox(msg="请输入作者姓名:(不输入默认为“未知作者”)", title="文件转PDF", strip=True, image=None, root=None)
if myName == None or myName == "":
myName == "未知作者"
file_To_pdf(myDir,fn,save_Dir,myName)
msgbox("已转换并保存", '文件转PDF', '打开')
webbrowser.open("file://" + os.path.realpath(save_Dir+os.sep+na+".pdf"))
# ReportLab 官方文档
# 你可以阅读 ReportLab 的官方文档来进行更多的探索。因为是全英文的,可以借助电子词典等工具来辅助自己完成阅读。
# 用户手册:https: // www.reportlab.com/docs/reportlab-userguide.pdf
# API 文档: https: // www.reportlab.com/docs/reportlab-reference.pdf
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn