当前位置: 首页 > wzjs >正文

重庆产品网站推广注册一个网站域名一年需要多少钱

重庆产品网站推广,注册一个网站域名一年需要多少钱,制作网站的最新软件是什么,餐饮加盟培训网站建设在这篇博客中,我将详细分析和讲解一段用Python开发的Markdown编辑工具代码。这款工具支持Markdown内容的编辑、HTML预览、导出为PDF和保存为图片的功能,同时还可以实现代码高亮。 C:\pythoncode\new\MarkdownToPdfJpegPreview.py 功能介绍 这款Markdown…

在这篇博客中,我将详细分析和讲解一段用Python开发的Markdown编辑工具代码。这款工具支持Markdown内容的编辑、HTML预览、导出为PDF和保存为图片的功能,同时还可以实现代码高亮。
C:\pythoncode\new\MarkdownToPdfJpegPreview.py


功能介绍

这款Markdown编辑工具基于wxPython开发,核心功能包括:

  1. Markdown编辑与HTML实时预览

    • 提供编辑区域(Memo)供用户录入Markdown内容。
    • 使用wx.html2.WebView组件将Markdown内容转为HTML并实时预览。
  2. 代码高亮

    • 使用Highlight.js实现Markdown代码段的语法高亮。
  3. 导出功能

    • 支持将Markdown保存为.md文件。
    • 将HTML预览内容导出为PDF文件。
    • 将HTML内容保存为JPEG格式的图片。

环境准备

所需的依赖库:
  • wxPython:构建图形界面
  • markdown:将Markdown解析为HTML
  • pdfkit:将HTML转换为PDF文件
  • imgkit:将HTML保存为图片
  • Pillow:处理图像

可以通过以下命令安装:

pip install wxPython markdown pdfkit imgkit pillow
安装wkhtmltopdfwkhtmltoimage工具:

pdfkitimgkit需要wkhtmltopdfwkhtmltoimage工具的支持。

  • 下载地址:wkhtmltopdf
  • 安装后,将工具路径(如C:\Program Files\wkhtmltopdf\bin)加入环境变量,或在代码中显式指定路径。

代码分析

下面是实现Markdown编辑工具的完整代码:

import wx
import wx.html2  # HTML浏览器控件
import markdown  # Markdown解析模块
import pdfkit    # HTML转PDF模块
from PIL import Image
from io import BytesIO
import imgkitdef markdown_to_html_with_highlight(md_content):"""将Markdown转换为HTML并添加代码高亮支持"""html_content = markdown.markdown(md_content, extensions=['fenced_code'])# 添加Highlight.js脚本和样式highlight_js = '''<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/default.min.css"><script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script><script>hljs.highlightAll();</script>'''return f"{highlight_js}<body>{html_content}</body>"class MarkdownApp(wx.Frame):def __init__(self):super().__init__(None, title="Markdown编辑工具", size=(1000, 700))self.InitUI()def InitUI(self):# 工具栏toolbar = self.CreateToolBar()toolbar.AddTool(wx.ID_SAVE, "保存 Markdown", wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE))toolbar.AddTool(wx.ID_PREVIEW, "预览", wx.ArtProvider.GetBitmap(wx.ART_FIND))toolbar.AddTool(wx.ID_PRINT, "生成 PDF", wx.ArtProvider.GetBitmap(wx.ART_PRINT))toolbar.AddTool(wx.ID_SAVEAS, "保存为图片", wx.ArtProvider.GetBitmap(wx.ART_PASTE))toolbar.Realize()# 绑定工具栏按钮事件self.Bind(wx.EVT_TOOL, self.OnSaveMarkdown, id=wx.ID_SAVE)self.Bind(wx.EVT_TOOL, self.OnPreview, id=wx.ID_PREVIEW)self.Bind(wx.EVT_TOOL, self.OnGeneratePDF, id=wx.ID_PRINT)self.Bind(wx.EVT_TOOL, self.OnSaveImage, id=wx.ID_SAVEAS)# 布局panel = wx.Panel(self)vbox = wx.BoxSizer(wx.VERTICAL)self.memo = wx.TextCtrl(panel, style=wx.TE_MULTILINE)self.browser = wx.html2.WebView.New(panel)vbox.Add(self.memo, 1, wx.EXPAND)vbox.Add(self.browser, 1, wx.EXPAND)panel.SetSizer(vbox)self.Show()def OnPreview(self, event):"""预览Markdown内容为HTML"""md_content = self.memo.GetValue()html_content = markdown_to_html_with_highlight(md_content)self.browser.SetPage(html_content, "")def OnSaveMarkdown(self, event):"""保存Markdown为.md文件"""with wx.FileDialog(self, "保存 Markdown", wildcard="Markdown 文件 (*.md)|*.md",style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) as dialog:if dialog.ShowModal() == wx.ID_CANCEL:returnpath = dialog.GetPath()with open(path, 'w', encoding='utf-8') as file:file.write(self.memo.GetValue())def OnGeneratePDF(self, event):"""生成PDF文件"""md_content = self.memo.GetValue()html_content = markdown.markdown(md_content)with wx.FileDialog(self, "保存 PDF 文件", wildcard="PDF 文件 (*.pdf)|*.pdf",style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) as dialog:if dialog.ShowModal() == wx.ID_CANCEL:returnpath = dialog.GetPath()config = pdfkit.configuration(wkhtmltopdf='C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe')pdfkit.from_string(html_content, path, configuration=config)def OnSaveImage(self, event):"""保存HTML内容为JPEG图片"""md_content = self.memo.GetValue()html_content = markdown.markdown(md_content)with wx.FileDialog(self, "保存图片", wildcard="JPEG 文件 (*.jpeg)|*.jpeg",style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) as dialog:if dialog.ShowModal() == wx.ID_CANCEL:returnpath = dialog.GetPath()config = imgkit.config(wkhtmltoimage='C:/Program Files/wkhtmltopdf/bin/wkhtmltoimage.exe')img_data = imgkit.from_string(html_content, False, config=config)image = Image.open(BytesIO(img_data))image.save(path, format="JPEG")if __name__ == "__main__":app = wx.App()MarkdownApp()app.MainLoop()

功能解析

  1. Markdown解析与HTML预览

    • markdown.markdown()方法将Markdown内容转为HTML。
    • 通过Highlight.js实现代码块的语法高亮。
  2. 生成PDF

    • 使用pdfkit模块的from_string()方法将HTML内容保存为PDF。
    • 需要确保wkhtmltopdf工具正确安装并指定路径。
      需要安装wkhtmltopdf应用程序
      https://wkhtmltopdf.org/downloads.html
  3. 保存为图片

    • 使用imgkit模块生成HTML内容的图片。
    • 使用Pillow库将生成的图像数据保存为JPEG格式。
  4. 界面交互

    • 使用wxPython的工具栏和对话框实现文件保存等功能。
    • 提供预览功能让用户直观地查看Markdown效果。

运行结果

在这里插入图片描述


文章转载自:

http://5uw9P8i6.qmncj.cn
http://xyRXRe1m.qmncj.cn
http://FegmMptW.qmncj.cn
http://04FO69Fa.qmncj.cn
http://y5vhuDRH.qmncj.cn
http://xx86cVaF.qmncj.cn
http://IJmO4uTx.qmncj.cn
http://r6VSvJPd.qmncj.cn
http://of4dxOPD.qmncj.cn
http://SPUlO7T8.qmncj.cn
http://XmX4IUqd.qmncj.cn
http://BxVD48Rq.qmncj.cn
http://r4GjBuN7.qmncj.cn
http://1nNwTZdZ.qmncj.cn
http://z937orFQ.qmncj.cn
http://yZx0xpfR.qmncj.cn
http://1QFIzJeJ.qmncj.cn
http://IRXVOI1K.qmncj.cn
http://L5MxQZmp.qmncj.cn
http://UQMtn0Ut.qmncj.cn
http://rmt9Njss.qmncj.cn
http://PfmMhf5V.qmncj.cn
http://8eJ01Wxv.qmncj.cn
http://Pu8H4dQL.qmncj.cn
http://qClV00C3.qmncj.cn
http://j8FAa4ee.qmncj.cn
http://hzPYIhjZ.qmncj.cn
http://dgLMS5zw.qmncj.cn
http://ReflugsB.qmncj.cn
http://Nb9b0X1l.qmncj.cn
http://www.dtcms.com/wzjs/734042.html

相关文章:

  • 做海购的网站关于建设门户网站的通知
  • 网络优化怎么自己做网站海口企业自助建站
  • 郑州公路建设有限公司网站中国黄金集团建设有限公司网站
  • 空间网站模板站内优化
  • 西安网站建设 早晨嵌入式开发工资
  • 动易网站做值班表怎么创作一个微信小程序
  • 哪些网站适合瀑布流电商网站建设与维护试题
  • 电商建设网站公众号推送怎么制作
  • 福州 福马路 网站建设个体可以做几个网站
  • 推荐手机网址唐山seo优化
  • 四川城乡住房城乡建设厅网站ps软件是干什么用的
  • 台州超值营销型网站建设地址门户网站是指
  • 牙科医院网站开发做网站多少钱 网络服务
  • 网站的导航栏专业的网站开发建设
  • 青岛建站方案wordpress 调整布局
  • 免费的建筑设计网站项目经理证书
  • 公司网站制作需要多少钱上海长城建设有限公司网站
  • 网站外链购买青岛微网站开发
  • 网站诚信认证电话销售中国工业品网
  • 律师网站建设哪家专业惠州seo关键字优化
  • 计算机基础网站建设和网络安全国产crm系统91
  • 重庆模板自助建站整合营销传播经典案例
  • 深圳做网站公司多少钱洛可可设计公司待遇
  • 网站图片展示方式网站建设qinnet
  • 网站做游戏活动铜陵网站制作
  • 建设银行企业网上银行网站做设计_素材网站有哪
  • 钓鱼网站在线生成杭州营销型网站怎么做
  • 餐饮营销网站建设龙华在深圳算什么档次
  • 为什么需要响应式网站天津网上办事大厅官网
  • 自己做网站网页文件在哪里wordpress 查询文章