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

使用python给pdf文档自动添加目录书签

1.背景很多时候电子书pdf没有书签目录,阅读起来不方便,于是给它自动加个目录吧2.步骤步骤一:使用ds获取到目录json截图目录,到ds中,然后输入如下提示词:根据目录的图片,提取出如下格式的json目录数据: { title: 第一章 概述, page: 6, childBookmark: [ { title: 1.1.推荐系统简介, page: 7, childBookmark:[] }, { title: 1.2.推荐系统XXX, page: 9 } ] } 所有目录都要递归的加入到子目录中,直到最后一级提取结果如下:[ { title: 第1章 概述, page: 1, childBookmark: [ { title: 1.1 推荐系统简介, page: 1, childBookmark: [ { title: 1.1.1 信息超载, page: 1, childBookmark: [] }, { title: 1.1.2 长尾效应, page: 2, childBookmark: [] }, { title: 1.1.3 推荐系统的价值, page: 3, childBookmark: [] } ] }, { title: 1.2 推荐系统的发展历史, page: 4, childBookmark: [ { title: 1.2.1 典型应用场景, page: 4, childBookmark: [] }, { title: 1.2.2 电商, page: 5, childBookmark: [] }, { title: 1.2.3 新闻, page: 6, childBookmark: [] }, { title: 1.2.4 音乐, page: 7, childBookmark: [] } ] }, { title: 1.3 推荐系统框架, page: 8, childBookmark: [ { title: 1.3.1 用户画像, page: 8, childBookmark: [] }, { title: 1.3.2 项目画像, page: 9, childBookmark: [] } ] }, { title: 1.4 推荐算法分类, page: 10, childBookmark: [ { title: 1.4.1 基于算法思想的分类, page: 10, childBookmark: [] }, { title: 1.4.2 基于应用问题的分类, page: 11, childBookmark: [] } ] } ] }, { title: 第2章 基于领域的协同过滤, page: 16, childBookmark: [ { title: 2.1 协同过滤简介, page: 16, childBookmark: [ { title: 2.1.1 基本思想, page: 16, childBookmark: [] }, { title: 2.1.2 算法分类, page: 17, childBookmark: [] }, { title: 2.1.3 一般流程, page: 17, childBookmark: [] } ] }, { title: 2.2 基于用户的协同过滤, page: 20, childBookmark: [ { title: 2.2.1 Top-N 推荐, page: 20, childBookmark: [] }, { title: 2.2.2 评分预测, page: 23, childBookmark: [] } ] }, { title: 2.3 基于项目的协同过滤, page: 26, childBookmark: [ { title: 2.3.1 Top-N 推荐, page: 26, childBookmark: [] }, { title: 2.3.2 评分预测, page: 29, childBookmark: [] } ] }, { title: 2.4 基于距离的相似度度量, page: 30, childBookmark: [] }, { title: 2.5 邻域的选取, page: 32, childBookmark: [] }, { title: 2.6 Slope One 算法, page: 33, childBookmark: [] }, { title: 2.7 基于二部图的协同过滤, page: 34, childBookmark: [ { title: 2.7.1 激活扩散模型, page: 35, childBookmark: [] }, { title: 2.7.2 物质扩散模型, page: 37, childBookmark: [] }, { title: 2.7.3 热传导模型, page: 39, childBookmark: [] }, { title: 2.7.4 基于图扩散的推荐系统, page: 42, childBookmark: [] } ] }, { title: 习题, page: 43, childBookmark: [] } ] }, { title: 第3章 基于模型的协同过滤, page: 44, childBookmark: [ { title: 3.1 基于关联规则的协同过滤, page: 44, childBookmark: [ { title: 3.1.1 基本概念, page: 45, childBookmark: [] }, { title: 3.1.2 关联规则度量, page: 45, childBookmark: [] }, { title: 3.1.3 Apriori 关联规则挖掘算法, page: 47, childBookmark: [] }, { title: 3.1.4 关联规则的相关分析, page: 48, childBookmark: [] }, { title: 3.1.5 基于关联规则的推荐系统, page: 49, childBookmark: [] } ] }, { title: 3.2 基于矩阵分解的评分预测, page: 50, childBookmark: [ { title: 3.2.1 奇异值分解, page: 50, childBookmark: [] }, { title: 3.2.2 隐语义模型, page: 52, childBookmark: [] }, { title: 3.2.3 概率矩阵分解, page: 57, childBookmark: [] }, { title: 3.2.4 SVD模型, page: 61, childBookmark: [] } ] }, { title: 3.3 基于矩阵分解的 Top-N 推荐, page: 62, childBookmark: [ { title: 3.3.1 基于正样本过采样的矩阵分解, page: 62, childBookmark: [] }, { title: 3.3.2 基于负样本欠采样的矩阵分解, page: 63, childBookmark: [] } ] }, { title: 习题, page: 64, childBookmark: [] } ] }, { title: 第4章 基于内容和知识的推荐, page: 65, childBookmark: [ { title: 4.1 基于内容的推荐系统框架, page: 65, childBookmark: [] }, { title: 4.2 基于词向量空间模型的文本表示, page: 67, childBookmark: [ { title: 4.2.1 词袋模型, page: 67, childBookmark: [] }, { title: 4.2.2 TF-IDF 模型, page: 68, childBookmark: [] }, { title: 4.2.3 模型改进, page: 71, childBookmark: [] }, { title: 4.2.4 向量相似度度量, page: 71, childBookmark: [] } ] }, { title: 4.3 基于语义的内容相似度, page: 72, childBookmark: [ { title: 4.3.1 基于本体的文本相似度, page: 72, childBookmark: [] }, { title: 4.3.2 基于网络知识的文本相似度, page: 73, childBookmark: [] }, { title: 4.3.3 基于语料库的文本相似度, page: 75, childBookmark: [] } ] }, { title: 4.4 基于知识的推荐, page: 77, childBookmark: [ { title: 4.4.1 基于约束的推荐, page: 78, childBookmark: [] }, { title: 4.4.2 基于效用的推荐, page: 81, childBookmark: [] }, { title: 4.4.3 基于实例的推荐, page: 82, childBookmark: [] }, { title: 4.4.4 基于知识库的推荐, page: 84, childBookmark: [] } ] }, { title: 习题, page: 86, childBookmark: [] } ] }, { title: 第5章 混合推荐系统, page: 87, childBookmark: [ { title: 5.1 混合推荐实例——Netflix 百万美金公开赛, page: 87, childBookmark: [] }, { title: 5.2 混合/组合推荐的动机, page: 89, childBookmark: [ { title: 5.2.1 实践经验, page: 89, childBookmark: [] }, { title: 5.2.2 理论依据, page: 90, childBookmark: [] } ] }, { title: 5.3 混合/组合方法分类, page: 92, childBookmark: [ { title: 5.3.1 有监督组合和无监督组合, page: 92, childBookmark: [] }, { title: 5.3.2 基推荐器间依赖关系, page: 93, childBookmark: [] } ] }, { title: 5.4 并行式混合推荐, page: 94, childBookmark: [ { title: 5.4.1 加权式混合, page: 94, childBookmark: [] }, { title: 5.4.2 切换式混合, page: 95, childBookmark: [] }, { title: 5.4.3 排序混合, page: 96, childBookmark: [] } ] }, { title: 5.5 串行式混合推荐, page: 97, childBookmark: [ { title: 5.5.1 级联过滤, page: 97, childBookmark: [] }, { title: 5.5.2 级联学习, page: 98, childBookmark: [] } ] }, { title: 5.6 整体式混合推荐, page: 99, childBookmark: [ { title: 5.6.1 特征组合, page: 99, childBookmark: [] }, { title: 5.6.2 特征扩充, page: 100, childBookmark: [] }, { title: 5.6.3 基于图模型的混合, page: 101, childBookmark: [] } ] }, { title: 习题, page: 102, childBookmark: [] } ] }, { title: 第6章 推荐系统评测, page: 103, childBookmark: [ { title: 6.1 评测视角, page: 103, childBookmark: [] }, { title: 6.2 实验方法, page: 104, childBookmark: [ { title: 6.2.1 在线实验, page: 104, childBookmark: [] }, { title: 6.2.2 用户调查, page: 105, childBookmark: [] }, { title: 6.2.3 离线实验, page: 106, childBookmark: [] } ] }, { title: 6.3 评分预测评价指标, page: 107, childBookmark: [ { title: 6.3.1 MAE 和 MSE, page: 107, childBookmark: [] }, { title: 6.3.2 RMSE、NMAE 和 NRMSE, page: 108, childBookmark: [] } ] }, { title: 6.4 Top-N 推荐评价指标, page: 109, childBookmark: [ { title: 6.4.1 分类准确度指标, page: 109, childBookmark: [] }, { title: 6.4.2 ROC 曲线和 AUC 值, page: 110, childBookmark: [] }, { title: 6.4.3 基于排序的评价指标, page: 113, childBookmark: [] }, { title: 6.4.4 其他常用评价指标, page: 115, childBookmark: [] } ] }, { title: 6.5 公开实验数据集, page: 116, childBookmark: [] }, { title: 习题, page: 118, childBookmark: [] } ] }, { title: 第7章 基于排序学习的推荐, page: 119, childBookmark: [ { title: 7.1 排序学习模型分类, page: 119, childBookmark: [] }, { title: 7.2 对级排序学习模型, page: 121, childBookmark: [ { title: 7.2.1 基本框架, page: 121, childBookmark: [] }, { title: 7.2.2 贝叶斯个性化排序, page: 123, childBookmark: [] }, { title: 7.2.3 协同对级排序学习, page: 125, childBookmark: [] } ] }, { title: 7.3 列表级排序学习模型, page: 129, childBookmark: [ { title: 7.3.1 P-Push CR 算法, page: 129, childBookmark: [] }, { title: 7.3.2 CofiRank 算法, page: 131, childBookmark: [] } ] }, { title: 习题, page: 133, childBookmark: [] } ] }, { title: 第8章 基于情境感知的推荐, page: 134, childBookmark: [ { title: 8.1 情境信息的定义, page: 134, childBookmark: [] }, { title: 8.2 情境信息的获取, page: 136, childBookmark: [] }, { title: 8.3 基于情境感知的推荐系统框架, page: 136, childBookmark: [ { title: 8.3.1 数据立方体, page: 137, childBookmark: [] }, { title: 8.3.2 基于树的层次信息表达, page: 138, childBookmark: [] } ] }, { title: 8.4 融合情境信息的推荐模型, page: 139, childBookmark: [ { title: 8.4.1 情境预过滤, page: 140, childBookmark: [] }, { title: 8.4.2 情境后过滤, page: 141, childBookmark: [] } ] }, { title: 8.5 情境建模, page: 141, childBookmark: [ { title: 8.5.1 基于邻域的方法, page: 142, childBookmark: [] }, { title: 8.5.2 基于模型的方法, page: 143, childBookmark: [] } ] }, { title: 习题, page: 146, childBookmark: [] } ] }, { title: 第9章 基于时空信息的推荐, page: 147, childBookmark: [ { title: 9.1 基于时间信息的推荐, page: 147, childBookmark: [ { title: 9.1.1 最近最热门推荐算法, page: 148, childBookmark: [] }, { title: 9.1.2 基于时间的项目协同过滤, page: 148, childBookmark: [] }, { title: 9.1.3 基于时间的用户协同过滤, page: 149, childBookmark: [] }, { title: 9.1.4 基于会话的推荐, page: 150, childBookmark: [] } ] }, { title: 9.2 基于序列感知的推荐, page: 151, childBookmark: [ { title: 9.2.1 基于马尔可夫模型的序列预测, page: 152, childBookmark: [] }, { title: 9.2.2 基于循环神经网络的序列预测, page: 153, childBookmark: [] }, { title: 9.2.3 基于注意力机制的序列预测, page: 157, childBookmark: [] } ] }, { title: 9.3 基于空间信息的推荐, page: 160, childBookmark: [ { title: 9.3.1 位置信息的获取与推理, page: 161, childBookmark: [] }, { title: 9.3.2 基于位置信息的推荐, page: 161, childBookmark: [] }, { title: 9.3.3 融合其他信息的推荐, page: 163, childBookmark: [] } ] }, { title: 习题, page: 163, childBookmark: [] } ] }, { title: 第10章 基于社交关系的推荐, page: 164, childBookmark: [ { title: 10.1 社交关系数据, page: 164, childBookmark: [] }, { title: 10.2 基于邻域的社交化推荐, page: 166, childBookmark: [ { title: 10.2.1 基于用户的协同过滤, page: 166, childBookmark: [] }, { title: 10.2.2 基于图扩散的推荐, page: 167, childBookmark: [] } ] }, { title: 10.3 基于模型的社交化推荐, page: 169, childBookmark: [ { title: 10.3.1 基于潜在社交因子学习的推荐, page: 169, childBookmark: [] }, { title: 10.3.2 基于显式社交关系的推荐, page: 171, childBookmark: [] } ] }, { title: 10.4 基于社会曝光的协同过滤, page: 174, childBookmark: [] }, { title: 习题, page: 176, childBookmark: [] } ] }, { title: 第11章 基于异质信息网络的推荐, page: 177, childBookmark: [ { title: 11.1 基本概念, page: 177, childBookmark: [] }, { title: 11.2 基于邻域的 HIN 推荐算法, page: 178, childBookmark: [ { title: 11.2.1 基于随机游走的相关度度量, page: 178, childBookmark: [] }, { title: 11.2.2 基于元路径的相关度度量, page: 179, childBookmark: [] }, { title: 11.2.3 基于元路径和随机游走混合的相关度度量, page: 183, childBookmark: [] } ] }, { title: 11.3 基于模型的 HIN 推荐算法, page: 183, childBookmark: [ { title: 11.3.1 两阶段融合模型, page: 183, childBookmark: [] }, { title: 11.3.2 端到端的学习模型, page: 188, childBookmark: [] } ] }, { title: 习题, page: 191, childBookmark: [] } ] }, { title: 第12章 基于图神经网络的推荐, page: 192, childBookmark: [ { title: 12.1 图神经网络简介, page: 192, childBookmark: [ { title: 12.1.1 任务分类与定义, page: 193, childBookmark: [] }, { title: 12.1.2 一般流程与框架, page: 194, childBookmark: [] }, { title: 12.1.3 采样模块, page: 195, childBookmark: [] }, { title: 12.1.4 池化模块, page: 196, childBookmark: [] }, { title: 12.1.5 传播模块, page: 198, childBookmark: [] } ] }, { title: 12.2 图神经网络典型算法, page: 202, childBookmark: [ { title: 12.2.1 GCN 算法, page: 202, childBookmark: [] }, { title: 12.2.2 GraphSAGE 算法, page: 204, childBookmark: [] }, { title: 12.2.3 CAT 算法, page: 205, childBookmark: [] } ] }, { title: 12.3 基于图神经网络的推荐算法, page: 207, childBookmark: [ { title: 12.3.1 基于用户-项目二部图的协同过滤, page: 207, childBookmark: [] }, { title: 12.3.2 基于知识图谱的推荐, page: 209, childBookmark: [] } ] }, { title: 习题, page: 211, childBookmark: [] } ] }, { title: 实验1 基于邻域协同过滤的 Top-N 推荐, page: 212, childBookmark: [] }, { title: 实验2 基于矩阵分解的评分预测, page: 216, childBookmark: [] }, { title: 实验3 面向应用的推荐系统实现, page: 220, childBookmark: [] }, { title: 参考文献, page: 229, childBookmark: [] } ]第二步:使用python代码实现目录添加#!/usr/bin/env python3 根据 JSON 格式的目录为 PDF 添加书签 依赖: pip install pymupdf import json import sys from pathlib import Path def _load_fitz(): 加载 PyMuPDF。脚本目录 / 当前目录若在 sys.path 最前本地的 pymupdf.py 或 pymupdf/ 会遮蔽 site-packages导致 from . import extra 报 relative import 错。 _here str(Path(__file__).resolve().parent) _saved sys.path.copy() try: sys.path[:] [p for p in sys.path if p not in (, _here)] [ p for p in (, _here) if p in sys.path ] import pymupdf as m return m except ImportError as e: raise ImportError( 无法加载 PyMuPDF。请先检查当前目录或本脚本目录下是否有多余的 pymupdf.py、pymupdf 文件夹或同名项目会遮蔽 pip 安装的包 然后执行: pip install --force-reinstall pymupdf ) from e finally: sys.path[:] _saved fitz _load_fitz() def parse_toc_from_json(json_str): 解析 JSON 字符串生成书签树结构。 输入 JSON 格式示例: [ { title: 第一章 概述, page: 6, children: [ { title: 1.1 推荐系统简介, page: 7 }, { title: 1.2 发展历史, page: 8 } ] }, { title: 第二章 推荐算法, page: 20 } ] 返回符合 fitz.set_toc 要求的扁平列表: [[level, title, page], ...]level 从 1 起 data json.loads(json_str) # 如果传入的是单个对象转换为列表 if isinstance(data, dict): data [data] toc [] # 递归构建扁平列表PyMuPDF 要求首条 level 为 1故顶层从 1 开始 def traverse(items, level): for item in items: title item.get(title) page item.get(page) if title is None or page is None: continue # 添加当前书签 toc.append([level, title, page]) # 处理子书签children 字段 children item.get(children) or item.get(childBookmark) if children: # 如果 children 是单个字典转换为列表 if isinstance(children, dict): children [children] traverse(children, level 1) traverse(data, 1) return toc def add_bookmarks_from_json(pdf_path, json_str, offset0, output_pathNone): 从 JSON 字符串读取书签信息并添加到 PDF 文件。 :param pdf_path: 输入的 PDF 文件路径 :param json_str: JSON 格式的目录字符串 :param offset: 页码偏移量实际页码 目录页码 - 1 offset :param output_path: 输出 PDF 路径默认为覆盖原文件 pdf_path Path(pdf_path) if not pdf_path.exists(): raise FileNotFoundError(fPDF 文件不存在: {pdf_path}) # 解析 JSON 得到书签列表 try: toc_raw parse_toc_from_json(json_str) except json.JSONDecodeError as e: raise ValueError(fJSON 解析错误: {e}) if not toc_raw: print(警告未解析到任何书签, filesys.stderr) return # 源文件若 xref/页树不规范直接 set_toc 可能报 bad xref先复制到空白文档再写书签 src fitz.open(pdf_path) total_pages src.page_count # 应用偏移并调整页码 final_toc [] for level, title, page in toc_raw: actual_page (page - 1) offset if actual_page 0: actual_page 0 print(f警告条目 {title} 的页码 {page} 偏移后为负已修正为第 1 页, filesys.stderr) if actual_page total_pages: actual_page total_pages - 1 print(f警告条目 {title} 的页码 {page} 超出文档范围已修正为最后一页, filesys.stderr) final_toc.append([level, title, actual_page]) if output_path is None: output_path pdf_path else: output_path Path(output_path) out fitz.open() try: out.insert_pdf(src) out.set_toc(final_toc) out.save( output_path, garbage4, deflateTrue, ) finally: out.close() src.close() print(f成功添加 {len(final_toc)} 条书签到 {output_path}) 提示词: 根据目录的图片,提取出如下格式的json目录数据: { title: 第一章 概述, page: 6, childBookmark: [ { title: 1.1.推荐系统简介, page: 7, childBookmark:[] }, { title: 1.2.推荐系统XXX, page: 9 } ] } 所有目录都要递归的加入到子目录中,直到最后一级 def main(): 命令行入口示例 # 判断 json 参数是文件路径还是直接字符串 json_path toc.json with open(json_path, r, encodingutf-8) as f: json_str f.read() pdf_path rF:\ldp\p1.pdf add_bookmarks_from_json(pdf_path, json_str, 11, output0404.pdf) if __name__ __main__: main()完美

相关文章:

使用python给pdf文档自动添加目录书签

1.背景很多时候电子书pdf没有书签目录,阅读起来不方便,于是给它自动加个目录吧2.步骤步骤一:使用ds获取到目录json截图目录,到ds中,然后输入如下提示词:根据目录的图片,提取出如下格式的json目录数据: {"title": "第一章 概述","page": 6,"…...

Airtest+Poco自动化测试避坑指南:从环境搭建到报告生成的10个常见问题

AirtestPoco自动化测试实战避坑指南:10个高频问题深度解析与解决方案 在移动应用和游戏自动化测试领域,AirtestPoco的组合已经成为技术团队的首选工具链。这套开源框架凭借其图像识别与UI控件定位的双重能力,能够覆盖90%以上的自动化测试场景…...

保姆级教程:在Vitis HLS 2022.2中配置Vision库和OpenCV 4.4.0(附完整编译参数)

从零搭建Vitis HLS视觉加速开发环境的实战指南 在FPGA加速领域,Vitis HLS配合Vision库的组合正成为计算机视觉算法硬件化的首选方案。但对于刚接触这套工具链的开发者来说,环境配置往往成为第一道门槛——错综复杂的路径设置、晦涩难懂的编译参数、仿真与…...

别再折腾了!Windows 10/11 下用 Anaconda 一键搞定 OpenPose Python 环境(附 CUDA 11.8 配置)

告别环境配置噩梦:Anaconda三分钟部署OpenPose全攻略 当你在深夜第三次重装CUDA驱动时,是否怀疑过人生?作为计算机视觉领域的里程碑式工具,OpenPose的人体姿态识别能力令人惊叹,但其复杂的环境配置却让无数开发者折戟沉…...

天华新能年营收75亿:净利同比降56% CFO离职 宁德时代是二股东

雷递网 雷建平 4月3日苏州天华新能源科技股份有限公司(简称:“天华新能”)日前发布财报。财报显示,天华新能2025年营收为75亿元。天华新能最近两年利润处于持续下滑状态,其中,2025年净利下降55.6%&#xff…...

系统盘空间释放之-Gradle 的默认缓存迁移

最近开发过程中磁盘空间频繁报红,解决一下这两个缓存吧。(以我的电脑为例)一、先明确:这个文件夹是什么?C:\Users\lt\.gradle(1.16GB)作用:Gradle 全局缓存目录,存储所有…...

煤矸石自动分离机设计【论文+CAD图纸】

煤矸石作为煤炭开采与洗选过程中产生的固体废弃物,其成分复杂、粒度分布不均,传统人工分选效率低且精度难以保证。煤矸石自动分离机的设计以机械结构优化与物料特性分析为核心,通过多级筛分与智能识别技术的结合,实现煤矸石与煤炭…...

设计工程师到底应不应该自己验证自己的设计?

让设计工程师自己跑仿真、自己查波形。效率是真的高,问题也确实能发现不少。但有一个麻烦没法回避——人很难发现自己思维盲区里的东西。设计一个模块的时候,工程师脑子里已经有了一套逻辑假设。写验证用例的时候,这套假设还在,测…...

如何改cad文件版本?盘点三个实用方法

在日常 CAD 绘图工作中,经常会遇到高版本 CAD 文件在低版本软件中无法打开、显示异常的问题。本文为大家整理了3 种实用的 CAD 版本转换方法,包含工具批量转换与两种代码实现方式,满足不同场景下的版本转换需求。方法一:汇帮 CAD …...

芯片行业的高门槛本质上是一次性固定成本极高导致的

AI 工具这波热潮里,芯片圈有个声音:以后一个人能不能做一颗芯片?很多人讨论的时候跑偏了,一直在聊人效、聊 AI 能替代多少工程师。真正的瓶颈根本不在这里。做过项目的人都知道,一个芯片项目的成本结构大概长这样&…...

Windows Defender一键移除工具:终极完整指南,三步彻底关闭系统安全防护

Windows Defender一键移除工具:终极完整指南,三步彻底关闭系统安全防护 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https:/…...

健康赛道又一个爆款玩法:华一拼团+公排返利,到底怎么做?

大家好,我一家电商软件开发公司的负责人。现在健康赛道那可真是遍地黄金,躺赚的机会说来就来啦!你是不是一直苦于找不到能落地、还能高盈利的模式系统?今天我就给大家分享2026爆火的模式——华一健康模式系统,它直接照…...

单相光伏电池并网:扰动观测法实现最大功率输出与直流母线电压恒定策略

单相光伏电池并网 1.光伏采用扰动观测法实现最大功率输出 2.逆变器采用直流母线电压恒定策略 3.实现光伏的最大功率输出,直流母线电压维持在恒定值,总谐波畸变率满足并网条件光伏板在阳台上晒得发烫的时候,我最喜欢蹲在配电箱旁边观察电流表指…...

ArduinoAPI:mbed OS 上的轻量级 Arduino 兼容层

1. ArduinoAPI 库概述ArduinoAPI 是一个面向嵌入式开发者的轻量级兼容层库,其核心定位并非复刻 Arduino IDE 的完整生态,而是在 mbed OS 平台上提供一套语义兼容、接口简洁、可裁剪的 Arduino Core API 子集。该库不依赖 Arduino IDE 或 avr-gcc 工具链&…...

结构化编程

结构化编程:原理、UML建模与工程实践 1. 结构化编程概述 结构化编程(Structured Programming)是一种编程范式,其核心思想是使用有限的控制结构(顺序、选择、循环)和子程序(函数/过程&#xff09…...

PostgreSQL 判断大导入是否正在执行 pg_stat_activity

PostgreSQL 判断大导入还在跑吗?pg_stat_activity 完整笔记(ERP Staging 场景) 摘要 大批量 ERP 资源导入(Excel → erp_resource_import_staging → 合并正式表)时,Java 应用常因单条大 SQL 长时间无日志&…...

Tauri Android 打包原理与实战指南

Tauri Android 打包原理与实战指南 基于 JoyaLand 项目的实际打包经验整理,记录原理、流程与踩坑解决方案。 一、Tauri Android 打包架构原理 1.1 整体架构 ┌─────────────────────────────────────────────┐ │ …...

Unity3D LED点阵屏幕模拟

基于 Unity3D 引擎开发的 LED 点阵屏幕模拟项目,可通过浏览器直接向程序发送 HTTP 指令,实现中英文、数字及各类标点符号的动态显示。系统支持灵活调整点阵规模与显示颜色,并具备超长文本自动循环滚动等功能,满足多样化展示需求。…...

基于LCL滤波器的光伏三相逆变并网模型 1.模型由光伏系统,逆变器,LCL滤波器和交流主网组成 2

基于LCL滤波器的光伏三相逆变并网模型1.模型由光伏系统,逆变器,LCL滤波器和交流主网组成 2.光伏采用扰动观测法实现最大功率输出,逆变器采用恒定直流母线电压控制策略 实现以下目标: 1.光伏维持在最大功率输出。 2.逆变器实现直流…...

Harness Engineering 核心概念详解

文章目录1. Harness Engineering 的本质定义1.1 核心定义1.2 诞生的历史时刻1.3 "Harness" 的本意2. Agent Model Harness 核心公式2.1 公式解读2.2 LangChain 工程师的精炼定义2.3 类比:CPU 与操作系统3. Harness 三大支柱详解3.1 支柱一:上…...

OpenClaw新手避坑指南:这10个Skills装不对,生产力直接归零(附安装命令)

OpenClaw新手避坑指南:这10个Skills装不对,生产力直接归零(附安装命令) 文章目录OpenClaw新手避坑指南:这10个Skills装不对,生产力直接归零(附安装命令)写在前面:为什么你…...

Arduino嵌入式工具库解析:按键消抖、字符串格式化与I²C通信

1. 项目概述utils_asukiaaa是一个面向 Arduino 平台的轻量级工具函数库,聚焦于三类高频嵌入式开发场景:机械按键消抖与状态机管理、字符串格式化处理、IC 总线设备通信封装。该库采用 C 命名空间组织(utils_asukiaaa::button/utils_asukiaaa:…...

陈文自媒体:暗水印功能上线,2类玩家要发财了!

作者陈文,公众号:陈文日记,90后草根创业者,5年自媒体经验,聚焦体育自媒体和小红书商单,关注我,越分享收获越多。 2026年4月了,抖音最牛逼的暗水印上线了,很多千川的老铁麻…...

Go HTTP 客户端连接池管理

Go HTTP 客户端连接池管理:提升性能的关键实践 在现代Web开发中,高效的HTTP客户端是微服务通信和API调用的核心组件。Go语言凭借其简洁的并发模型和原生HTTP库,成为构建高性能服务的首选。默认的HTTP客户端若不加以优化,频繁创建…...

串扰是怎么来的?相邻层走线方向比间距更重要

摘要:在高速PCB设计中,串扰是导致信号完整性问题的主要原因之一。许多工程师过于关注走线间距(3W规则),却忽视了相邻层走线方向的影响。本文将从物理机制出发,解释为什么相邻层走线方向正交(垂直…...

C++的std--ranges编译器内联

C的std::ranges编译器内联:现代C的高效编程利器 随着C20标准的发布,std::ranges库的引入彻底改变了算法与数据结构的交互方式。这一特性不仅简化了代码编写,还通过编译器的内联优化显著提升了运行时性能。对于追求高效与简洁的开发者而言&am…...

红外遥控技术原理与工程实践

1. 红外遥控技术基础解析 红外遥控技术自20世纪80年代开始普及,如今已成为家电控制领域最成熟可靠的解决方案之一。作为一名电子工程师,我在多个智能家居项目中都深度应用过红外控制模块。红外技术的核心优势在于其简单可靠的物理层实现和标准化的通信协…...

基于Python的米家商城毕设源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在深入探讨基于Python技术的米家商城系统设计与实现。具体研究目的如下: 首先,通过对米家商城系统进行深入研究,旨在…...

基于Python的电影订票系统毕业设计源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于Python的电影订票系统,以满足现代观众对于便捷、高效电影购票服务的需求。具体研究目的如下: 首先&#xf…...

SecGPT-14B批量处理:用OpenClaw自动化1000个网站安全检测

SecGPT-14B批量处理:用OpenClaw自动化1000个网站安全检测 1. 为什么需要自动化安全检测 作为一名长期关注网络安全的技术从业者,我经常需要对大量网站进行安全检测。传统的手动检测方式不仅效率低下,而且容易遗漏关键漏洞。最近在测试SecGP…...