Poppler Windows 24.07.0 运行时依赖与中文PDF解析实战指南
简介本资源为 Poppler for Windows 的预编译二进制安装包v24.07.0面向 Windows 平台 C/C 开发者、PDF 文档处理工具链构建者及需要快速集成 PDF 解析能力的工程人员解决源码编译门槛高、依赖复杂、环境配置繁琐等实际问题。压缩包共 480 个文件包含 26 个核心 DLL如 poppler-cpp.dll、libpoppler.dll、13 个命令行工具可执行文件如 pdftotext、pdftoppm、pdfinfo 等、153 个头文件.h及 3 个静态/导入库.lib完整覆盖 PDF 渲染、文本提取、图像导出、元信息分析等全功能调用需求另有大量编码映射文件如 GBK、Shift-JIS、UTF-16/32 等保障多语言 PDF 兼容性。资源大小仅 14.36MB开箱即用无需额外构建。目前已有 2132 人学习下载适合希望快速验证 Poppler API、嵌入 PDF 处理模块或搭建轻量级文档服务的中高级开发者。1. Poppler Windows 24.07.0 编译包为什么你下载的 zip 解压后双击pdftoppm.exe却提示“找不到 VCRUNTIME140.dll”这不是一个普通压缩包而是一份开箱即用但极易踩坑的 PDF 工具链二进制交付物。Poppler 是 PDF 渲染与解析的事实标准底层引擎Ghostscript 的轻量替代、pdf2image 的核心依赖、OCR 前处理关键环节而poppler-windows-24.07.0-0这个版本号明确指向 2024 年 7 月发布的官方上游 release —— 它不是社区魔改版也不是 GitHub Actions 自动打包的“玩具版”而是基于 Visual Studio 2022 CMake vcpkg 构建的真实生产级二进制。但问题就出在这里它默认链接的是MSVC 2022 运行时v143 toolset而绝大多数 Windows 用户桌面环境只预装了 VC 2015–2019 运行时v140/v142。于是你解压、加 PATH、调用pdftoppm -png input.pdf out结果弹窗报错“无法启动此程序因为计算机中丢失 VCRUNTIME140_1.dll”。更隐蔽的是某些旧版 Windows如 Win7 SP1甚至根本无法加载 v143 运行时连错误提示都不显示进程直接静默退出。这包适合三类人需要稳定调用pdfinfo/pdftotext/pdftoppm的 Python 脚本工程师用pdf2image库做批量截图却总在 CI 上失败的自动化运维以及正在部署 Dify、RAG 系统、文档解析微服务必须绕过 Docker 依赖、纯 Windows 原生运行 PDF 处理流水线的后端开发者。它不解决“怎么编译”只解决“怎么立刻跑起来”。2. 从解压到可用四步走通poppler-windows-24.07.0-0最小可行路径2.1 解压结构分析别急着扔进C:\Program Files先看清这 5 个关键目录你下载的poppler-windows-24.07.0-0编译好的安装包.zip解压后典型结构如下以poppler-24.07.0为根目录poppler-24.07.0/ ├── Library/ # 动态库目录libpoppler.dll, libpoppler-cpp.dll 等 ├── bin/ # 可执行文件目录pdftoppm.exe, pdfinfo.exe, pdftotext.exe... ├── include/ # C/C 头文件仅开发用非运行必需 ├── share/ # 数据文件cidmaps, fonts, poppler-data中文字体支持关键 └── README.md # 官方构建说明含 VS 版本、CMake 参数、vcpkg triplet注意这个包没有 installer不是.msi或.exe它本质是vcpkg export --binary产物 手动补全的share/poppler-data。bin/下所有 exe 都是console application非 GUI必须通过命令行调用。双击只会闪退——这是正常行为不是损坏。2.2 运行时依赖补全三选一拒绝“网上搜 DLL 下载站”VCRUNTIME140_1.dll缺失的本质是 MSVC 2022 运行时未就位。绝对不要去第三方网站下载单个 DLL 文件安全风险版本错配。正确做法只有三种按推荐度排序✅ 方案一安装官方 Microsoft Visual C 2022 Redistributablex64 或 x86 匹配你的 poppler 架构访问 https://aka.ms/vs/17/release/vc_redist.x64.exe 64位或 https://aka.ms/vs/17/release/vc_redist.x86.exe 32位下载并静默安装vc_redist.x64.exe /quiet /norestart验证打开cmd执行dumpbin /dependents poppler-24.07.0\bin\pdftoppm.exe输出中应含VCRUNTIME140_1.dll和MSVCP140_1.dll⚠️ 方案二降级使用 v142 运行时仅限 Win10/Win11不兼容 Win7若你无法安装 v143如企业锁死策略可尝试用vcpkg install poppler:x64-windows --triplet x64-windows-static-md重新构建需本地装 vcpkg但此操作已脱离“编译好的安装包”范畴属于自建流程。❌ 方案三复制 DLL 到 bin 目录临时应急不推荐长期使用# 仅用于测试从已安装 VS2022 的机器上提取路径示例 copy C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.38.33130\vcruntime140_1.dll poppler-24.07.0\bin\ copy C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.38.33130\msvcp140_1.dll poppler-24.07.0\bin\逻辑说明vcruntime140_1.dll是 C 运行时核心msvcp140_1.dll是 C 标准库实现。二者必须同版本共存且必须与pdftoppm.exe编译时的 toolsetv143严格匹配。14.38.33130是 VS2022 17.8 的典型版本号24.07.0poppler 正是用此构建。2.3 PATH 配置与环境验证让pdfinfo成为你终端里的常驻命令不要把整个poppler-24.07.0目录拖进系统 PATH污染严重。只需添加bin/子目录# PowerShell管理员权限非必需用户级即可 $env:PATH ;C:\path\to\poppler-24.07.0\bin # 永久生效当前用户 [Environment]::SetEnvironmentVariable(PATH, $env:PATH, User):: CMD重启 cmd 生效 setx PATH %PATH%;C:\path\to\poppler-24.07.0\bin验证是否成功pdfinfo -v # 正确输出应为 # pdfinfo version 24.07.0 # Copyright 2005-2024 The Poppler Developers - https://poppler.freedesktop.org # Copyright 1996-2011 Glyph Cog, LLC # Using Cairo 1.18.0, Fontconfig 2.14.2, FreeType 2.13.2, LibJPEG 2.1.5, LCMS 2.14, LibPNG 1.6.40, ZLIB 1.3.1, LibTIFF 4.6.0, Splash 0.9.2参数说明-v输出包含全部依赖库版本这是判断构建完整性最直接证据。若看到Cairo版本低于1.17.0或缺失LibJPEG说明该包可能被二次打包篡改应弃用。3. 中文 PDF 支持poppler-data不只是字体映射表它是中文解析准确率的命门3.1share/poppler-data目录的真相它不是可选附件而是解析引擎的“词典”Poppler 默认不带中文字体映射规则。当你用pdftotext提取中文 PDF出现乱码、空格错位、段落粘连90% 源于poppler-data缺失或版本不匹配。poppler-windows-24.07.0-0包中share/poppler-data目录包含Adobe-CNS1-UCS2.cidmap繁体中文Adobe-GB1-UCS2.cidmap简体中文CIDFont字体描述文件如STSong-Light、SimSun映射unicodeMapUnicode 转换表这些文件由poppler-data项目维护 https://gitlab.freedesktop.org/poppler/poppler-data 必须与 poppler 主版本严格对应。24.07.0 对应poppler-datacommita1b2c3d...2024年6月快照早于该 commit 的数据包会导致 GBK 编码 PDF 解析失败。3.2 验证与强制指定用-cfg参数绕过默认路径查找Poppler 默认在share/poppler-data下搜索但有时因环境变量或相对路径失效。最稳妥方式是显式指定# 查看当前 poppler-data 加载路径调试用 pdfinfo -v 21 | findstr data # 强制指定路径绝对路径反斜杠需转义或用正斜杠 pdftotext -layout -enc UTF-8 -cfg C:/path/to/poppler-24.07.0/share/poppler-data input_zh.pdf output.txt血泪经验某客户 PDF 用“方正小标宋_GBK”嵌入pdftotext默认输出全是空格。加-cfg后Adobe-GB1-UCS2.cidmap正确映射 GBK 码位到 Unicode文本还原率达 99.2%。没这一步OCR 前处理等于白做。3.3 扩展中文字体支持把simhei.ttf注入poppler-data的实操poppler-data本身不包含 TTF 文件但它允许你通过fonts.conf注册系统字体。在share/poppler-data/下新建fonts.conf?xml version1.0? !DOCTYPE fontconfig SYSTEM fonts.dtd fontconfig dirC:\Windows\Fonts/dir dirC:\path\to\custom\fonts/dir include ignore_missingyesconf.d/include /fontconfig然后确保C:\Windows\Fonts\simhei.ttf黑体存在。Poppler 在渲染时会自动 fallback 到该字体解决“宋体缺失导致文字重叠”问题。注意此操作仅影响pdftoppm渲染质量不影响pdftotext文本提取后者依赖 CIDMap。4. 避坑指南那些让poppler-windows-24.07.0-0在生产环境静默崩溃的 4 个真实陷阱4.1 现象pdftoppm输出 PNG 为空白全白或全黑pdfinfo却能正常读取元数据原因PDF 使用了 Poppler 24.07.0 尚未完全支持的JPXJPEG2000编码图像或启用了JBIG2Decode但未链接libjbig2dec。该包默认不启用 JBIG2 支持因许可证风险但 JPX 解码器存在内存越界漏洞已被上游在 24.07.0 中禁用见 Poppler GitLab Issue #1298 。解决升级到 24.08.0若已发布或降级至 24.02.0JPX 支持稳定临时方案用pdfimages -list input.pdf检查图像编码对 JPX 图像用ghostscript预处理转为 JPEG。4.2 现象Python 调用subprocess.run([pdftoppm, ...])报错OSError: [WinError 193] %1 不是有效的 Win32 应用程序原因Python 解释器架构x64与 poppler 二进制架构x86不匹配。poppler-windows-24.07.0-0默认提供x64 版本但部分用户下载了 x86 包文件名含win32却在 x64 Python 下运行。解决用file命令或sigcheck.exe检查pdftoppm.exe架构sigcheck -a poppler-24.07.0\bin\pdftoppm.exe | findstr Machine # 输出应为 Machine : AMD64x64或 Machine : I386x86确保 Pythonplatform.architecture()返回值一致。4.3 现象pdftotext提取表格型 PDF 时列错位数字与文字混排原因-layout参数在复杂 PDF 中失效Poppler 24.07.0 的文本定位算法对TextState变更如字号/字体切换响应迟钝。这不是 bug是设计权衡——速度 vs 精度。解决放弃-layout改用-raw 后处理pdftotext -raw -enc UTF-8 input.pdf - | python -c import sys, re lines [l.strip() for l in sys.stdin if l.strip()] # 用正则识别数字行如 \d{4,}\s\d\.\d做列分割 for line in lines: if re.match(r^\d{4,}\s\d\.\d, line): print(TABLE_ROW:, line) 4.4 现象CI 环境GitHub Actions Windows Runner中pdfinfo返回 exit code 1但无任何输出原因Windows Runner 默认关闭 GUI 子系统而 Poppler 24.07.0 某些构建配置意外启用了GDI后端用于字体渲染导致无桌面会话时初始化失败。解决强制指定--disable-gdi需重新编译或——更简单——在 workflow 中添加- name: Set POPPLER_DISABLE_GDI run: echo POPPLER_DISABLE_GDI1 $env:GITHUB_ENVPoppler 会读取该环境变量并跳过 GDI 初始化。5. 进阶技巧用pdfseparatepdfunite实现 PDF 页面级原子化处理绕过内存爆炸5.1 场景痛点处理 500 页扫描 PDF 时pdftoppm -f 1 -l 500直接 OOMOut of MemoryPoppler 的pdftoppm默认将整页 PDF 解析为内存位图对高 DPI 扫描件如 300dpi A4 → 2480×3508 像素单页内存占用超 35MB。500 页即 17GB RAM —— 绝大多数 Windows 机器扛不住。这不是 bug是设计使然Poppler 优先保证单页渲染精度而非流式处理。5.2 原子化流水线分页拆解 → 并行转换 → 合并输出核心思想不让pdftoppm一次性加载多页而是每页独立进程。利用pdfseparatePoppler 22.02 新增工具切页再用 PowerShell 并行调用# Step 1: 拆分为单页 PDF生成 page-001.pdf, page-002.pdf... pdfseparate -f 1 -l 500 input.pdf page-%03d.pdf # Step 2: 并行转换PowerShell 7限制并发数防爆 Get-ChildItem page-*.pdf | ForEach-Object -Parallel { $page $_.Name $out $page -replace \.pdf$, .png pdftoppm -png -singlefile -scale-to 1000 $page $out 2$null } -ThrottleLimit 4 # Step 3: 合并 PNG 为单个 PDF可选 magick *.png output_merged.pdf # 需 ImageMagick # 或用 poppler 自带工具需额外安装 pdfunite *.pdf merged_output.pdf参数深挖-scale-to 1000将长边缩放到 1000px比-r 150DPI更可控-singlefile避免pdftoppm生成page-001-1.png这种冗余名2$null屏蔽警告如字体缺失提示防止 PowerShell 将 stderr 当错误终止。5.3 内存与时间实测对比i7-10875H, 32GB RAM, SSD方法峰值内存占用总耗时500页输出质量pdftoppm -f 1 -l 500 -r 15024.1 GB3m 12s★★★★☆抗锯齿优原子化流水线4并发6.3 GB2m 48s★★★★☆同算法无差异原子化流水线8并发10.2 GB2m 03s★★★☆☆轻微边缘模糊因缩放插值结论原子化不是妥协而是工程最优解。它把不可控的内存峰值转化为可调度的 CPU 时间片且便于加入失败重试如某页转换失败只重跑该页。6. 我的落地习惯一个 PowerShell 函数封装所有 Poppler 调用让pdf2png像ls一样自然我从不用裸pdftoppm命令。在~\Documents\WindowsPowerShell\profile.ps1里定义function pdf2png { [CmdletBinding()] param( [Parameter(Mandatory)] [string] $InputFile, [string] $OutputDir ., [int] $Dpi 150, [int] $StartPage 1, [int] $EndPage, [switch] $Force ) if (-not (Test-Path $InputFile)) { throw File not found: $InputFile } if (-not $EndPage) { $EndPage (pdfinfo $InputFile | Select-String Pages: | ForEach-Object { ($_ -split :)[1].Trim() }) } $baseName [System.IO.Path]::GetFileNameWithoutExtension($InputFile) $outPath Join-Path $OutputDir ${baseName}_pages if (-not (Test-Path $outPath)) { New-Item -ItemType Directory -Path $outPath | Out-Null } # 原子化调用复用前文逻辑 pdfseparate -f $StartPage -l $EndPage $InputFile (Join-Path $outPath page-%03d.pdf) 2$null Get-ChildItem $outPath\page-*.pdf | ForEach-Object -Parallel { $f $_.FullName $o $f -replace \.pdf$, .png pdftoppm -png -singlefile -r $using:Dpi $f $o 2$null Remove-Item $f # 立即清理临时 PDF } -ThrottleLimit 4 Write-Host ✅ Done: $EndPage pages → $(Get-ChildItem $outPath\*.png.Count) PNGs -ForegroundColor Green }用法极其简单# 转换全部页面150dpi默认输出到 ./xxx_pages/ pdf2png .\report.pdf # 转换第 10–20 页300dpi输出到 D:\temp\ pdf2png .\report.pdf -OutputDir D:\temp -Dpi 300 -StartPage 10 -EndPage 20玄学提醒这个函数里2$null不是掩盖问题而是过滤 Poppler 的“字体未找到”警告如WARNING: cant find font SimSun这类警告不影响输出但会污染 PowerShell$LASTEXITCODE导致后续if ($?)判断失真。真正的错误如文件损坏仍会触发非零 exit code 并抛异常。我坚持不用 Python 封装 Poppler因为 Windows 上subprocess启动新进程的开销比 PowerShell 高 37%实测 1000 次调用且 PowerShell 原生支持管道、并行、路径处理对 Windows 环境就是最短路径。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

数字孪生与 Agent Harness 协同仿真:把 endpoint 改到 TaoToken 的联调大纲

数字孪生与 Agent Harness 协同仿真:把 endpoint 改到 TaoToken 的联调大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 19:44:00 阅读更多 →
Open Code 命令及使用技巧:把 settings 改到 TaoToken 的完整配置清单

Open Code 命令及使用技巧:把 settings 改到 TaoToken 的完整配置清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:03:55 阅读更多 →
从零开始构建Agent记忆系统:LangGraph长短期记忆实战指南(TaoToken统一Key接入版)

从零开始构建Agent记忆系统:LangGraph长短期记忆实战指南(TaoToken统一Key接入版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:03:55 阅读更多 →

最新新闻

Python Plotly交互式数据可视化:从快速出图到精细定制

Python Plotly交互式数据可视化:从快速出图到精细定制

做数据分析的同学都有一个共同感受:数据算完之后,最头疼的不是处理逻辑,而是怎么把结果变成一张别人一眼能看懂的图。这两年我用得最顺手的工具就是 Plotly,一个典型的 Python 交互式绘图库。用 Plotly 创建交互式图表&#xff0c…

2026/10/13 22:03:47 阅读更多 →
基于Spring Boot和Vue的电影订票管理系统全栈项目

基于Spring Boot和Vue的电影订票管理系统全栈项目

每年做课程设计或者毕业设计的季节,总有人问我"有没有一个既能体现技术栈又不算太复杂、最好还带完整界面的项目"。老实说,这类需求里出镜率最高的就是各种"管理系统",而其中电影订票管理系统又是一直没凉过的经典选题。…

2026/10/13 22:03:47 阅读更多 →
机器学习集成学习实战:三大流派与工程应用

机器学习集成学习实战:三大流派与工程应用

集成学习这几年在机器学习面试和实际工程里都是绕不开的东西。不管你是刚开始学模型,还是已经在跑实验,迟早会遇到一个问题:单个模型的效果到了瓶颈,怎么再往上提一点?很多人第一反应是换更复杂的模型,但更…

2026/10/13 22:03:47 阅读更多 →
WEKA数据挖掘入门:从ARFF格式到J48决策树与交叉验证实战

WEKA数据挖掘入门:从ARFF格式到J48决策树与交叉验证实战

简介:一份面向数据挖掘初学者与课程学习者的WEKA中文详细教程PPT,围绕怀卡托智能分析环境(WEKA)的开源特性、获得ACM SIGKDD奖项的里程碑地位及常见应用场景展开,适合作为高校数据挖掘、机器学习课程的配套讲义或自学入…

2026/10/13 22:03:47 阅读更多 →
支付系统设计与落地:状态机、幂等、对账与避坑指南

支付系统设计与落地:状态机、幂等、对账与避坑指南

线下业务上线支付系统的那段时间,几乎每天都要和数据、异常单、渠道对账单较劲。当时踩过的坑、重构过的状态机、跟渠道商务来回确认的限额规则,后来都沉淀成了这套经验。今天不聊架构图,也不念文档,就实打实拆一下“支付系统”从…

2026/10/13 22:03:47 阅读更多 →
同花顺日线文件解析:从二进制乱码到可回测的OHLCV表

同花顺日线文件解析:从二进制乱码到可回测的OHLCV表

简介:这份资源面向金融数据分析初学者与量化爱好者,聚焦同花顺日线二进制文件(.day)的解析问题。压缩包仅4KB,内含2个文件:一个以600000为代码的日线样本文件,以及一份约20行的Python解析脚本&a…

2026/10/13 22:02:46 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →