Python 生成Md文件带超链 和 PDF文件 带分页显示内容

software.md 

# -*- coding: utf-8 -*-
import os
f = open("software.md", "w", encoding="utf-8")
f.write('内部测试版2024 MD版\n')
for root, dirs, files in os.walk(path): dax= os.path.basename(root)if dax == "":print("空白目录indexMd")continuef.write('## {}\n'.format(dax))for file in files:keyy = get_string_before_dash(file)if webHref[keyy] != "http://www.baidu.com":f.write('- [{}]({})\n'.format(get_string_before_dash(file),webHref[keyy]))else:f.write('"{}":"https://gitee.com",\n'.format(get_string_before_dash(file)))
f.write('\n')

software.pdf

 

# -*- coding: utf-8 -*-
import os
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.lib.pagesizes import A4ver = "内部测试版2024 PDF版"# 指定PDF文件名
pdf_filename = "software.pdf"# 设置PDF文件页面大小
c = canvas.Canvas(pdf_filename, pagesize=A4)# 加载中文字体
pdfmetrics.registerFont(TTFont('SimSun', 'SimSun.ttf'))# 设置字体
c.setFont('SimSun', 12)
b1 = 790
c1 = 20
# 在PDF文件中添加文本
c.drawString(250, 800, ver)
for root, dirs, files in os.walk(path): ml= os.path.basename(root)# print(ml) 目录if ml == "":print("空白目录indexPDF")continueif b1 > 60:b1 = b1-30else:c.showPage()c.setFont('SimSun', 12)#     c.drawString(250, 800, ver)#     breakc.drawString(c1, b1, '----------------------------------------')c.drawString(c1, b1-7, ml)c.drawString(c1, b1-14, '----------------------------------------')for file in files:sname = file[:-4]keyy = get_string_before_dash(file)if webHref[keyy] != "http://www.baidu.com" and b1>50:sname = sname + " -->" + webHref[keyy]c.drawString(c1, b1-30, sname)b1 = b1-15else:c.showPage()c.setFont('SimSun', 12)b1 = 810sname = sname + " -->" + webHref[keyy]c.drawString(c1, b1-15, sname)#  break# 关闭PDF文件
c.save()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/367492.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于YOLOv9的PCB板缺陷检测

数据集 PCB缺陷检测,我们直接采用北京大学智能机器人开放实验室数据提供的数据集, 共六类缺陷 漏孔、鼠咬、开路、短路、杂散、杂铜 已经对数据进行了数据增强处理,同时按照YOLO格式配置好,数据内容如下 模型训练 ​ 采用YOLO…

StarRocks 3.3 重磅发布,Lakehouse 架构发展进入快车道!

StarRocks 3.3 的发布标志着 Lakehouse 架构在数据分析领域迈向了一个新的高度。作为下一代 Lakehouse 架构的代表,StarRocks 3.3 在稳定性、计算性能、缓存设计、物化视图、存储优化和 Lakehouse 生态系统等方面进行了全方位的优化和创新。本文将逐一介绍 StarRock…

如何在 SQL 中删除一条记录?

如何在 SQL 中删除一条记录? 在 SQL 中,您可以使用DELETE查询和WHERE子句删除表中的一条记录。在本文中,我将向您介绍如何使用DELETE查询和WHERE子句删除记录。我还将向您展示如何一次从表中删除多条记录 如何在 SQL 中使用 DELETE 这是使…

ctfshow sql注入 web234--web241

web234 $sql "update ctfshow_user set pass {$password} where username {$username};";这里被过滤了,所以我们用\转义使得变为普通字符 $sql "update ctfshow_user set pass \ where username {$username};";那么这里的话 pass\ where…

踩坑:Unity导出WebGL发布到手机上竖屏时强制显示横屏

具体的适配问题 公司的项目需要将游戏导出WebGL 发布到Web平台 本以为是个很简单的事情 谁知道却被个横竖屏适配搞的头晕 毕竟只有大学浅浅的学了下HTML这门语言 出来工作后基本上都是在跟C# Lua打交道 言归正传 看看具体问题吧 游戏如果从横屏进入 基本上不会有什么适配问题…

预处理详解

1.预定义符号 C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C&…

在Clion使用CubeMX Stm32的步骤

Step1 准备软件,安装环境: 1. cubemx v6.5.0(可以兼容以前版本的project) https://www.st.com.cn/zh/development-tools/stm32cubemx.html STM32CubeMX 默认安装目录, 6.5版本可以兼容老版本 C:\Program Files\STMicroelectroni…

SpringMVC常见的注解

一、Spring MVC Spring Web MVC是基于ServletAPI构建的原始web 框架,一开始就包含在Spring 框架中,通常被称为“Spring MVC”。 1.MVC 是什么? MVC(Model、View、Controller)是软件工程中的一种软件架构设计模型。它把软件系统分…

Vision Transformer论文阅读笔记

目录 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale -- Vision Transformer摘要Introduction—简介RELATED WORK—相关工作METHOD—方法VISION TRANSFORMER (VIT)—视觉Transformer(ViT) 分析与评估PRE-TRAINING DATA REQUIREMENTS—预训练数据…

战略流程-麦肯锡企业数字化业务变革成熟度评估模型及案例深度解析

一、企业变革成熟度评估模型 企业变革成熟度诊断模型是一种评估工具,用于全面扫描和评估企业在变革转型过程中的能力水平。该模型通过一系列量化指标和定性分析,对企业在不同变革领域的成熟度进行评分,从而帮助企业识别在变革过程中的优势和…

llm学习-3(向量数据库的使用)

1:数据读取和加载 接着上面的常规操作 加载环境变量---》获取所有路径---》加载文档---》切分文档 代码如下: import os from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv()) # 获取folder_path下所有文件路径,储存在…

mysql数据库自动备份

crond cron 实现定时执行 安装 yum install crond启动 service crond start查看状态 service crond status执行 crontab xx.cron查看任务列表 crontab -l删除所有任务 crontab -r 示例:每分钟写入 Good morning 到 mine.cron [rootecs-f1dd-0001 fztmp]# echo ‘* …

什么是 API 代理?

API 代理就像是您的计算机和互联网上特殊服务之间的中间人。它有点像集翻译、保安和信使于一体。 什么是 API 代理? API 代理就像是您和在线服务之间的中间人。当您的计算机需要从某个特殊的在线服务 (API) 获得某些东西时,API 代理会确保一切顺利进行…

使用 llamaIndex 快速实现智能体

AI 智能体就是可以根据当前环境进行推理,并根据处理结果进行下一步的操作。简单来说 AI 智能体可以与外界环境进行交互,并根据结果执行更复杂的操作。本文将通过llamaIndex 实现一个简单的 Agent 实时获取数据,由于大模型是通过静态数据进行训…

BAS(入侵与攻击模拟)正在替代红队测试?

之前经常会被用户问到,漏扫、渗透和红队红的区别是啥? 传统的漏扫、渗透和红蓝对抗,可以看到工具化的漏洞不可靠,人工的成本就高。怎么找到一个漏洞可信度又高,成本又低的,就诞生了BAS。 抛开漏扫&#xf…

CTO透露GPT-5内幕,OpenAI 以36亿美元收购数据库初创公司

目录 01 GPT-5 02 OpenAI收购Rockset 2.1 谁是Rockset? 2.2 OpenAI的目的是什么? 01 GPT-5 虽然GPT-4的视频通话功能尚未全面推广,但OpenAI的CTO已经对即将到来的GPT-5给出了新的暗示。 不久前,Mira回到母校达特茅斯工程学…

数据结构——跳表Skip List

本文对跳表的定义、实现、应用等进行简单总结。 一、 介绍 1.定义 跳表(Skip List):是一种概率性数据结构,由William Pugh在1990年提出,主要用于在有序的元素集合上进行快速的搜索、插入和删除操作。跳表的效率与平衡…

MyBatis3(动态SQL 常用的动态SQL 元素 映射器注解 基本注解 结果映射注解)

目录 一、动态SQL 常用的动态SQL 元素 二、if元素 三、choose 、when 、otherwise 元素 四、trim 、where 、set 元素 trim(不常用) where set 五、foreach 元素 六、bind 元素 #{} ${} 区别 示例完整代码 七、映射器注解 八、基本注解 …

远程登录WINDOWS10,提示你的凭据不工作

1:想通过远程桌面登录WINDOWS10输入用户名和密码后,出现下面的提示。 2:登录WINDOWS10,在运行中输入gpedit.msc 3:本地组策略编辑器窗口中,依次展开,计算机配置 ---> 管理模版---> 系统--…

【LLM 论文】Self-Refine:使用 feedback 迭代修正 LLM 的 output

论文:Self-Refine: Iterative Refinement with Self-Feedback ⭐⭐⭐⭐ CMU, NeurIPS 2023, arXiv:2303.17651 Code: https://selfrefine.info/ 论文速读 本文提出了 Self-Refine 的 prompt 策略,可以在无需额外训练的情况下,在下游任务上产…