文章目录
实践实例
测试网址:https://ebook.chinabuilding.com.cn/zbooklib/bookpdf/probation?SiteID=1&bookID=112640
源码:view-source:https://ebook.chinabuilding.com.cn/zbooklib/bookpdf/probation?SiteID=1\&bookID=112640
html
<!doctype html>
<!-- Created by pdf2htmlEX (https://github.com/coolwanglu/pdf2htmlex) -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>阅读-GB50160-2008(2018年版):石油化工企业设计防火标准(2018年版)</title>
<script>
var bookid_var=112640;
var absolute_path_prefix="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/";
var branchName="";//机构用户名
var branchMemberName="";//登陆用户名
var watermark=""; //水印标记
var abolishImage="";//废止标图片路径(绝对路径) 不一定有
var resourceImage="";//资源所属方图片路径(绝对路径) 不一定有
var siteURL_var="https://ebook.chinabuilding.com.cn/";
var memberislogin="0";
</script>
<script src="https://ebook.chinabuilding.com.cn/pdf/jquery-1.12.4.min.js"></script>
<script src="https://ebook.chinabuilding.com.cn/pdf/resources/layer3/layer-modified.js"></script>
<script src="https://ebook.chinabuilding.com.cn/pdf/jquery.mousewheel.js"></script>
<!--[if lt IE 8]>
<script>
$(function(){
$("body").addClass("lessIE8").html('<div class="IEWarnWrap"><h1>本图书不支持IE8以下浏览器及IE兼容性视图浏览</h1><h2>推荐使用以下浏览器获得更好阅读体验</h2><div class="browser_list"><span><a href="https://www.google.cn/intl/zh-CN/chrome/" target="_blank"><img src="/pdf/resources/images/chrome.png">chrome</a></span><span><a href="http://www.firefox.com.cn/download/" target="_blank"><img src="/pdf/resources/images/firefox.png">firefox</a></span><span><a href="http://www.apple.com/cn/safari/" target="_blank"><img src="/pdf/resources/images/safari.png">safari</a></span><span><a href="https://www.microsoft.com/zh-cn/windows/microsoft-edge" target="_blank"><img src="/pdf/resources/images/ie.png">ie9及以上</a></span></div></div>');
});
</script>
<![endif]-->
<!--[if lte IE 9]>
<script src="/pdf/aight.js"></script>
<![endif]-->
<script src="https://ebook.chinabuilding.com.cn/pdf/compatibility.js"></script>
<script src="https://ebook.chinabuilding.com.cn/pdf/pdf2htmlEX.js?1.0.3"></script>
<style>
._1{width:10px!important;}
._._1{width:0px!important;}
</style>
<link rel="stylesheet" href="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/base.min.css">
<link rel="stylesheet" href="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/fancy.min.css">
<link rel="stylesheet" href="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-2008.css">
</head>
<body>
<div id="sidebar">
<div id="outline">
<ul>
<li><a title="GB50160-2008" class="l" href="#pf1" data-dest-detail="[1,"Fit"]">GB50160-2008</a></li>
<li><a title="1 总则" class="l" href="#pfe" data-dest-detail="[14,"Fit"]">1 总则</a></li>
<li><a title="2 术语" class="l" href="#pff" data-dest-detail="[15,"Fit"]">2 术语</a></li>
<li><a title="3 火灾危险性分类" class="l" href="#pf14" data-dest-detail="[20,"Fit"]">3 火灾危险性分类</a></li>
<li><a title="4 区域规划与工厂总平面布置" class="l" href="#pf16" data-dest-detail="[22,"Fit"]">4 区域规划与工厂总平面布置</a></li>
<li><a title="4.1 区域规划" class="l" href="#pf16" data-dest-detail="[22,"Fit"]">4.1 区域规划</a></li>
<li><a title="4.2 工厂总平面布置" class="l" href="#pf1b" data-dest-detail="[27,"Fit"]">4.2 工厂总平面布置</a></li>
<li><a title="4.3 厂内道路" class="l" href="#pf1d" data-dest-detail="[29,"Fit"]">4.3 厂内道路</a></li>
<li><a title="4.4 厂内铁路" class="l" href="#pf1f" data-dest-detail="[31,"Fit"]">4.4 厂内铁路</a></li>
<li><a title="4.5 厂际管道规划" class="l" href="#pf20" data-dest-detail="[32,"Fit"]">4.5 厂际管道规划</a></li>
<li><a title="5 工艺装置和系统单元" class="l" href="#pf23" data-dest-detail="[35,"Fit"]">5 工艺装置和系统单元</a></li>
<li><a title="5.1 一般规定" class="l" href="#pf23" data-dest-detail="[35,"Fit"]">5.1 一般规定</a></li>
<li><a title="5.2 装置内布置" class="l" href="#pf23" data-dest-detail="[35,"Fit"]">5.2 装置内布置</a></li>
<li><a title="5.3 泵和压缩机" class="l" href="#pf29" data-dest-detail="[41,"Fit"]">5.3 泵和压缩机</a></li>
<li><a title="5.4 污水处理场和循环水场" class="l" href="#pf2b" data-dest-detail="[43,"Fit"]">5.4 污水处理场和循环水场</a></li>
<li><a title="5.5 泄压排放和火炬系统" class="l" href="#pf2c" data-dest-detail="[44,"Fit"]">5.5 泄压排放和火炬系统</a></li>
<li><a title="5.6 钢结构耐火保护" class="l" href="#pf2f" data-dest-detail="[47,"Fit"]">5.6 钢结构耐火保护</a></li>
<li><a title="5.7 其他要求" class="l" href="#pf30" data-dest-detail="[48,"Fit"]">5.7 其他要求</a></li>
<li><a title="6 储运设施" class="l" href="#pf33" data-dest-detail="[51,"Fit"]">6 储运设施</a></li>
<li><a title="6.1 一般规定" class="l" href="#pf33" data-dest-detail="[51,"Fit"]">6.1 一般规定</a></li>
<li><a title="6.2 可燃液体的地上储罐" class="l" href="#pf33" data-dest-detail="[51,"Fit"]">6.2 可燃液体的地上储罐</a></li>
<li><a title="6.3 液化烃、可燃气体、助燃气体的地上储罐" class="l" href="#pf37" data-dest-detail="[55,"Fit"]">6.3 液化烃、可燃气体、助燃气体的地上储罐</a></li>
<li><a title="6.4 可燃液体、液化烃的装卸设施" class="l" href="#pf3b" data-dest-detail="[59,"Fit"]">6.4 可燃液体、液化烃的装卸设施</a></li>
<li><a title="6.5 灌装站" class="l" href="#pf3d" data-dest-detail="[61,"Fit"]">6.5 灌装站</a></li>
<li><a title="6.6 厂内仓库" class="l" href="#pf3d" data-dest-detail="[61,"Fit"]">6.6 厂内仓库</a></li>
<li><a title="7 管道布置" class="l" href="#pf40" data-dest-detail="[64,"Fit"]">7 管道布置</a></li>
<li><a title="7.1 厂内管线综合" class="l" href="#pf40" data-dest-detail="[64,"Fit"]">7.1 厂内管线综合</a></li>
<li><a title="7.2 工艺及公用物料管道" class="l" href="#pf40" data-dest-detail="[64,"Fit"]">7.2 工艺及公用物料管道</a></li>
<li><a title="7.3 含可燃液体的生产污水管道" class="l" href="#pf42" data-dest-detail="[66,"Fit"]">7.3 含可燃液体的生产污水管道</a></li>
<li><a title="7.4 厂际管道敷设" class="l" href="#pf43" data-dest-detail="[67,"Fit"]">7.4 厂际管道敷设</a></li>
<li><a title="8 消防" class="l" href="#pf45" data-dest-detail="[69,"Fit"]">8 消防</a></li>
<li><a title="8.1 一般规定" class="l" href="#pf45" data-dest-detail="[69,"Fit"]">8.1 一般规定</a></li>
<li><a title="8.2 消防站" class="l" href="#pf45" data-dest-detail="[69,"Fit"]">8.2 消防站</a></li>
<li><a title="8.3 消防水源及泵房" class="l" href="#pf46" data-dest-detail="[70,"Fit"]">8.3 消防水源及泵房</a></li>
<li><a title="8.4 消防用水量" class="l" href="#pf48" data-dest-detail="[72,"Fit"]">8.4 消防用水量</a></li>
<li><a title="8.5 消防给水管道及消火栓" class="l" href="#pf4a" data-dest-detail="[74,"Fit"]">8.5 消防给水管道及消火栓</a></li>
<li><a title="8.6 消防水炮、水喷淋和水喷雾" class="l" href="#pf4b" data-dest-detail="[75,"Fit"]">8.6 消防水炮、水喷淋和水喷雾</a></li>
<li><a title="8.7 低倍数泡沫灭火系统" class="l" href="#pf4d" data-dest-detail="[77,"Fit"]">8.7 低倍数泡沫灭火系统</a></li>
<li><a title="8.8 蒸汽灭火系统" class="l" href="#pf4e" data-dest-detail="[78,"Fit"]">8.8 蒸汽灭火系统</a></li>
<li><a title="8.9 灭火器设置" class="l" href="#pf4f" data-dest-detail="[79,"Fit"]">8.9 灭火器设置</a></li>
<li><a title="8.10 液化烃罐区消防" class="l" href="#pf50" data-dest-detail="[80,"Fit"]">8.10 液化烃罐区消防</a></li>
<li><a title="8.11 建筑物内消防" class="l" href="#pf52" data-dest-detail="[82,"Fit"]">8.11 建筑物内消防</a></li>
<li><a title="8.12 火灾报警系统" class="l" href="#pf54" data-dest-detail="[84,"Fit"]">8.12 火灾报警系统</a></li>
<li><a title="9 电气" class="l" href="#pf56" data-dest-detail="[86,"Fit"]">9 电气</a></li>
<li><a title="9.1 消防电源、配电及一般要求" class="l" href="#pf56" data-dest-detail="[86,"Fit"]">9.1 消防电源、配电及一般要求</a></li>
<li><a title="9.2 防雷" class="l" href="#pf56" data-dest-detail="[86,"Fit"]">9.2 防雷</a></li>
<li><a title="9.3 静电接地" class="l" href="#pf57" data-dest-detail="[87,"Fit"]">9.3 静电接地</a></li>
<li><a title="附录A 防火间距起止点" class="l" href="#pf59" data-dest-detail="[89,"Fit"]">附录A 防火间距起止点</a></li>
<li><a title="本标准用词说明" class="l" href="#pf5a" data-dest-detail="[90,"Fit"]">本标准用词说明</a></li>
<li><a title="引用标准名录" class="l" href="#pf5b" data-dest-detail="[91,"Fit"]">引用标准名录</a></li>
<li><a title="附:条文说明" class="l" href="#pf5c" data-dest-detail="[92,"Fit"]">附:条文说明</a></li>
<li><a title="1 总则" class="l" href="#pf61" data-dest-detail="[97,"Fit"]">1 总则</a></li>
<li><a title="2 术语" class="l" href="#pf62" data-dest-detail="[98,"Fit"]">2 术语</a></li>
<li><a title="3 火灾危险性分类" class="l" href="#pf64" data-dest-detail="[100,"Fit"]">3 火灾危险性分类</a></li>
<li><a title="4 区域规划与工厂总平面布置" class="l" href="#pf69" data-dest-detail="[105,"Fit"]">4 区域规划与工厂总平面布置</a></li>
<li><a title="4.1 区域规划" class="l" href="#pf69" data-dest-detail="[105,"Fit"]">4.1 区域规划</a></li>
<li><a title="4.2 工厂总平面布置" class="l" href="#pf6e" data-dest-detail="[110,"Fit"]">4.2 工厂总平面布置</a></li>
<li><a title="4.3 厂内道路" class="l" href="#pf79" data-dest-detail="[121,"Fit"]">4.3 厂内道路</a></li>
<li><a title="4.4 厂内铁路" class="l" href="#pf7a" data-dest-detail="[122,"Fit"]">4.4 厂内铁路</a></li>
<li><a title="4.5 厂际管道规划" class="l" href="#pf7b" data-dest-detail="[123,"Fit"]">4.5 厂际管道规划</a></li>
<li><a title="5 工艺装置和系统单元" class="l" href="#pf7e" data-dest-detail="[126,"Fit"]">5 工艺装置和系统单元</a></li>
<li><a title="5.1 一般规定" class="l" href="#pf7e" data-dest-detail="[126,"Fit"]">5.1 一般规定</a></li>
<li><a title="5.2 装置内布置" class="l" href="#pf7e" data-dest-detail="[126,"Fit"]">5.2 装置内布置</a></li>
<li><a title="5.3 泵和压缩机" class="l" href="#pf89" data-dest-detail="[137,"Fit"]">5.3 泵和压缩机</a></li>
<li><a title="5.4 污水处理场和循环水场" class="l" href="#pf8c" data-dest-detail="[140,"Fit"]">5.4 污水处理场和循环水场</a></li>
<li><a title="5.5 泄压排放和火炬系统" class="l" href="#pf8d" data-dest-detail="[141,"Fit"]">5.5 泄压排放和火炬系统</a></li>
<li><a title="5.6 钢结构耐火保护" class="l" href="#pf92" data-dest-detail="[146,"Fit"]">5.6 钢结构耐火保护</a></li>
<li><a title="5.7 其他要求" class="l" href="#pf99" data-dest-detail="[153,"Fit"]">5.7 其他要求</a></li>
<li><a title="6 储运设施" class="l" href="#pf9b" data-dest-detail="[155,"Fit"]">6 储运设施</a></li>
<li><a title="6.1 一般规定" class="l" href="#pf9b" data-dest-detail="[155,"Fit"]">6.1 一般规定</a></li>
<li><a title="6.2 可燃液体的地上储罐" class="l" href="#pf9b" data-dest-detail="[155,"Fit"]">6.2 可燃液体的地上储罐</a></li>
<li><a title="6.3 液化烃、可燃气体、助燃气体的地上储罐" class="l" href="#pfa5" data-dest-detail="[165,"Fit"]">6.3 液化烃、可燃气体、助燃气体的地上储罐</a></li>
<li><a title="6.4 可燃液体、液化烃的装卸设施" class="l" href="#pfaa" data-dest-detail="[170,"Fit"]">6.4 可燃液体、液化烃的装卸设施</a></li>
<li><a title="6.5 灌装站" class="l" href="#pfac" data-dest-detail="[172,"Fit"]">6.5 灌装站</a></li>
<li><a title="6.6 厂内仓库" class="l" href="#pfad" data-dest-detail="[173,"Fit"]">6.6 厂内仓库</a></li>
<li><a title="7 管道布置" class="l" href="#pfb0" data-dest-detail="[176,"Fit"]">7 管道布置</a></li>
<li><a title="7.1 厂内管线综合" class="l" href="#pfb0" data-dest-detail="[176,"Fit"]">7.1 厂内管线综合</a></li>
<li><a title="7.2 工艺及公用物料管道" class="l" href="#pfb1" data-dest-detail="[177,"Fit"]">7.2 工艺及公用物料管道</a></li>
<li><a title="7.3 含可燃液体的生产污水管道" class="l" href="#pfb5" data-dest-detail="[181,"Fit"]">7.3 含可燃液体的生产污水管道</a></li>
<li><a title="7.4 厂际管道敷设" class="l" href="#pfb8" data-dest-detail="[184,"Fit"]">7.4 厂际管道敷设</a></li>
<li><a title="8 消防" class="l" href="#pfba" data-dest-detail="[186,"Fit"]">8 消防</a></li>
<li><a title="8.1 一般规定" class="l" href="#pfba" data-dest-detail="[186,"Fit"]">8.1 一般规定</a></li>
<li><a title="8.2 消防站" class="l" href="#pfba" data-dest-detail="[186,"Fit"]">8.2 消防站</a></li>
<li><a title="8.3 消防水源及泵房" class="l" href="#pfbc" data-dest-detail="[188,"Fit"]">8.3 消防水源及泵房</a></li>
<li><a title="8.4 消防用水量" class="l" href="#pfbd" data-dest-detail="[189,"Fit"]">8.4 消防用水量</a></li>
<li><a title="8.5 消防给水管道及消火栓" class="l" href="#pfc1" data-dest-detail="[193,"Fit"]">8.5 消防给水管道及消火栓</a></li>
<li><a title="8.6 消防水炮、水喷淋和水喷雾" class="l" href="#pfc2" data-dest-detail="[194,"Fit"]">8.6 消防水炮、水喷淋和水喷雾</a></li>
<li><a title="8.7 低倍数泡沫灭火系统" class="l" href="#pfc4" data-dest-detail="[196,"Fit"]">8.7 低倍数泡沫灭火系统</a></li>
<li><a title="8.8 蒸汽灭火系统" class="l" href="#pfc5" data-dest-detail="[197,"Fit"]">8.8 蒸汽灭火系统</a></li>
<li><a title="8.9 灭火器设置" class="l" href="#pfc6" data-dest-detail="[198,"Fit"]">8.9 灭火器设置</a></li>
<li><a title="8.10 液化烃罐区消防" class="l" href="#pfc7" data-dest-detail="[199,"Fit"]">8.10 液化烃罐区消防</a></li>
<li><a title="8.11 建筑物内消防" class="l" href="#pfca" data-dest-detail="[202,"Fit"]">8.11 建筑物内消防</a></li>
<li><a title="8.12 火灾报警系统" class="l" href="#pfcd" data-dest-detail="[205,"Fit"]">8.12 火灾报警系统</a></li>
<li><a title="9 电气" class="l" href="#pfcf" data-dest-detail="[207,"Fit"]">9 电气</a></li>
<li><a title="9.1 消防电源、配电及一般要求" class="l" href="#pfcf" data-dest-detail="[207,"Fit"]">9.1 消防电源、配电及一般要求</a></li>
<li><a title="9.3 静电接地" class="l" href="#pfd0" data-dest-detail="[208,"Fit"]">9.3 静电接地</a></li>
<li><a title="附录A 防火间距起止点" class="l" href="#pfd1" data-dest-detail="[209,"Fit"]">附录A 防火间距起止点</a></li>
</ul>
</div>
</div>
<div id="page-container">
<div id="pf1" class="pf w0 h0" data-page-no="1" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20081.page"></div>
<div id="pf2" class="pf w0 h0" data-page-no="2" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20082.page"></div>
<div id="pf3" class="pf w0 h0" data-page-no="3" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20083.page"></div>
<div id="pf4" class="pf w0 h0" data-page-no="4" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20084.page"></div>
<div id="pf5" class="pf w0 h0" data-page-no="5" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20085.page"></div>
<div id="pf6" class="pf w0 h0" data-page-no="6" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20086.page"></div>
<div id="pf7" class="pf w0 h0" data-page-no="7" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20087.page"></div>
<div id="pf8" class="pf w0 h0" data-page-no="8" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20088.page"></div>
<div id="pf9" class="pf w0 h0" data-page-no="9" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-20089.page"></div>
<div id="pfa" class="pf w0 h0" data-page-no="a" data-page-url="https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/GB50160-200810.page"></div>
</div>
<div class="loading-indicator">
<img alt="" src="https://ebook.chinabuilding.com.cn/pdf/pdf2htmlEX-64x64.png">
</div>
<div id="line-resize"></div>
<div id="slideNav">
<i class="iconfont icon-left"></i>
</div>
<div class="func-tools">
<span id="page-prev" title="上一页" class="tool-btn"><i class="iconfont icon-up"></i></span>
<span id="page-next" title="下一页" class="tool-btn"><i class="iconfont icon-down"></i></span>
<span id="readModel-btn" title="阅读模式" class="tool-btn"><i class="iconfont icon-readmodel22"></i>
<ul class="subTools readModelList">
<li id="readmodel-singlepage" class="active" title="单页"><i class="iconfont icon-yemian"></i></li>
<li id="readmodel-default" title="连页"><i class="iconfont icon-pageseries"></i></li>
</ul></span>
<span id="plane-btn" title="页码跳转" class="tool-btn"><i class="iconfont icon-skip"></i></span>
<span id="search-btn" title="内文检索" class="tool-btn"><i class="iconfont icon-search"></i></span>
<span id="zoom-btn" title="页面缩放" class="tool-btn"><i class="iconfont icon-searchPlus"></i></span>
<span id="bookmark-btn" title="书签管理" class="tool-btn"><i class="iconfont icon-bookmark"></i></span>
<span id="notes-btn" title="笔记标注" class="tool-btn"><i class="iconfont icon-writeNote2"></i></span>
<span id="highlight-btn" title="高亮标注" class="tool-btn"><i class="iconfont icon-brush"></i></span>
<span id="print-btn" title="打印" class="tool-btn"><i class="iconfont icon-print"></i></span>
<span id="viewerFit-btn" title="视图模式" class="tool-btn"><i class="iconfont icon-viewmodel"></i>
<ul class="subTools viewerList">
<li id="viewerFit-actual" title="实际大小"><i class="iconfont icon-actualSize font-bold"></i></li>
<li id="viewerFit-width" title="适应宽度"><i class="iconfont icon-fitwidth"></i></li>
<li id="viewerFit-height" title="适应高度"><i class="iconfont icon-fitheight"></i></li>
</ul></span>
<span id="screen-btn" title="单击全屏" class="tool-btn"><i class="iconfont icon-fullscreen"></i></span>
</div>
<script src="https://ebook.chinabuilding.com.cn/zbooklib/stat/front/stat.js" type="text/javascript"></script>
<script>
if(window._zcms_stat)_zcms_stat("SiteID=1&Dest=https://ebook.chinabuilding.com.cn/zbooklib/stat/dealer");
</script>
<!-- App=ZBOOKLIB(国标电子书库) 2.4.27378,CostTime=13,PublishDate=2026-01-06 14:27:57 -->
</body>
</html>
技术原理
服务器端的转换流程
核心工具pdf2htmlEX (来自 GitHub开源项目)扮演了"PDF翻译官"的角色。它的工作流程完全在服务器端完成:
js
原始PDF文件
↓
pdf2htmlEX工具处理
↓
生成多格式输出:
• 主框架HTML文件
• 按页分割的 .page 文件
• 每页背景图片 (bg1.jpg, bg2.jpg...)
• 专用CSS样式表
• 控制交互的JavaScript
文件命名规则推断
pdf2htmlEX的核心功能是将PDF按页拆分转换为page格式文件,在默认配置下,其文件命名与路径遵循清晰的映射规则,这是提取原始PDF的关键依据。
通过分析实际案例(GB50160-2008标准文档),可发现一套可预测的命名模式:
- 原始PDF :
GB50160-2008.pdf - 分页文件 :
GB50160-20081.page(第1页)、GB50160-20082.page(第2页)... - 样式文件 :
GB50160-2008.css - 基础路径 :
https://.../20220613/165740411/
- 路径映射规则 :原始PDF文件与转换后的page文件,默认存储在服务器同一目录 下。在网页代码中,通常会通过
absolute_path_prefix全局变量暴露这个公共存储路径,例如https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/。 - 文件名映射规则
- 原始PDF文件命名格式:
{基础文件名}.pdf,例如GB50160-2008.pdf。 - 转换后page文件命名格式:
{基础文件名}{页码}.page,页码从1开始递增。例如第1页对应GB50160-20081.page,第10页对应GB50160-200810.page。 - 特殊页码标识:部分场景下页码超过9后会使用十六进制标识(如第10页对应
pfa标签),但文件名仍遵循"基础名+数字页码"的规则。
- 原始PDF文件命名格式:
- 关键特征:page文件的"基础文件名"与原始PDF的基础文件名完全一致,这是定位原始PDF的核心线索。
通用方法:手动提取原始PDF地址的步骤
无论面对何种基于pdf2htmlEX生成的预览页面,只要页面结构相似,都可以通过以下4步手动提取原始PDF地址,无需依赖任何脚本。
- 定位路径前缀
- 优先查找:查看网页源代码,搜索
absolute_path_prefix变量,该变量的值就是PDF与page文件的公共存储路径。 - 备用方案:若未找到上述变量,可从任意page文件的
data-page-url属性中截取路径------保留"最后一个/之前的部分",即为路径前缀。
- 优先查找:查看网页源代码,搜索
- 提取基础文件名
- 从任意page文件名中,仅删除末尾的1位页码数字和
.page后缀 ,剩余部分就是基础文件名。例如从GB50160-20081.page中删除末尾的1.page,得到基础文件名GB50160-2008。 - 注意事项:避免误删文件名中的其他数字(如年份、标准编号),这是手动提取的核心易错点。
- 从任意page文件名中,仅删除末尾的1位页码数字和
- 拼接完整PDF地址
- 按照公式拼接:
路径前缀 + 基础文件名 + .pdf = 原始PDF地址。 - 示例:
https://xxx/20220613/165740411/+GB50160-2008+.pdf=https://xxx/GB50160-2008.pdf。
- 按照公式拼接:
- 验证地址有效性
- 将拼接好的地址复制到浏览器地址栏,若能直接下载或预览PDF,说明提取成功。
中国建科:国标电子书库(https://ebook.chinabuilding.com.cn):自动化提取脚本
提取PDF脚本:完整功能版
javascript
// PDF地址自动提取脚本(优化版,适配pdf2htmlEX生成的页面)
(function() {
try {
// 步骤1:获取PDF存储路径前缀
let pathPrefix = window.absolute_path_prefix || '';
if (!pathPrefix) {
// 备用逻辑:从page元素提取路径前缀
const firstPage = document.querySelector('[data-page-url]');
if (firstPage) {
const pageUrl = firstPage.getAttribute('data-page-url');
pathPrefix = pageUrl.substring(0, pageUrl.lastIndexOf('/') + 1);
}
}
if (!pathPrefix) {
alert('❌ 未找到PDF存储路径前缀!');
return;
}
// 步骤2:提取PDF基础文件名(核心优化部分)
const firstPage = document.querySelector('[data-page-url]');
if (!firstPage) {
alert('❌ 未找到page文件元素!');
return;
}
const pageUrl = firstPage.getAttribute('data-page-url');
const pageFileName = pageUrl.split('/').pop(); // 提取page文件名:GB50160-20081.page
// 优化后的正则:仅匹配末尾1位数字 + .page后缀,避免误删文件名中的其他数字(如年份2008)
const baseFileName = pageFileName.replace(/(\d)\.page$/, '');
// 步骤3:拼接完整PDF地址
const pdfUrl = pathPrefix + baseFileName + '.pdf';
// 步骤4:复制PDF链接到剪贴板(现代方法优先,失败则降级)
function copyToClipboard(text) {
// 现代剪贴板API(安全上下文下可用)
if (navigator.clipboard && window.isSecureContext) {
return navigator.clipboard.writeText(text)
.then(() => true)
.catch(() => fallbackCopy(text));
} else {
// 降级方案:创建临时文本框
return fallbackCopy(text);
}
}
// 降级复制方法(兼容旧浏览器/非安全上下文)
function fallbackCopy(text) {
const textArea = document.createElement('textarea');
textArea.value = text;
// 隐藏文本框(防止页面抖动)
textArea.style.position = 'fixed';
textArea.style.top = '0';
textArea.style.left = '0';
textArea.style.opacity = '0';
document.body.appendChild(textArea);
textArea.focus();
textArea.select(); // 选中文本
try {
const successful = document.execCommand('copy');
return successful;
} catch (err) {
console.error('降级复制失败:', err);
return false;
} finally {
document.body.removeChild(textArea); // 移除临时元素
}
}
// 执行复制操作并获取结果
const copyResult = copyToClipboard(pdfUrl);
// 兼容Promise和同步返回值,统一为布尔值
const isCopySuccess = typeof copyResult === 'boolean' ? copyResult : true;
// 步骤5:创建「查看」按钮(下载按钮上方)
const viewBtn = document.createElement('a');
viewBtn.href = '#'; // 阻止默认跳转
viewBtn.style.cssText = `
position: fixed; top: 20px; right: 20px; z-index: 9999;
padding: 12px 20px; background: #4CAF50; color: white;
text-decoration: none; border-radius: 4px; font-size: 14px;
cursor: pointer;
`;
viewBtn.textContent = `查看 ${baseFileName}.pdf`;
// 点击事件:新页面打开PDF
viewBtn.addEventListener('click', function(e) {
e.preventDefault();
window.open(pdfUrl, '_blank');
});
document.body.appendChild(viewBtn);
// 步骤6:创建下载按钮(调整位置到查看按钮下方)
const downloadBtn = document.createElement('a');
downloadBtn.href = pdfUrl;
downloadBtn.download = baseFileName + '.pdf';
downloadBtn.style.cssText = `
position: fixed; top: 70px; right: 20px; z-index: 9999;
padding: 12px 20px; background: #2196F3; color: white;
text-decoration: none; border-radius: 4px; font-size: 14px;
`;
downloadBtn.textContent = `下载 ${baseFileName}.pdf`;
document.body.appendChild(downloadBtn);
// 步骤7:友好的弹窗提示
const alertMessage = isCopySuccess
? `✅ 操作成功!
🔗 PDF链接已复制到剪贴板:
${pdfUrl}
👀 页面右上角新增「查看」按钮(绿色),点击可在新页面打开PDF;
📥 「下载」按钮(蓝色)在查看按钮下方,可直接下载PDF。`
: `⚠️ PDF链接提取成功,但复制到剪贴板失败!
🔗 PDF地址:
${pdfUrl}
👀 页面右上角新增「查看」按钮(绿色),点击可在新页面打开PDF;
📥 「下载」按钮(蓝色)在查看按钮下方,可直接下载PDF。`;
alert(alertMessage);
// 控制台日志(便于调试)
console.log('✅ 提取到的PDF地址:', pdfUrl);
console.log(`✅ 链接复制状态:${isCopySuccess ? '成功' : '失败'}`);
console.log('✅ 页面已生成「查看」和「下载」按钮!');
} catch (error) {
console.error('❌ 提取失败:', error);
alert(`❌ 提取PDF地址失败:\n${error.message}`);
}
})();
提取PDF脚本:精简版
js
(function(){try{let e=window.absolute_path_prefix||"";e||(e=document.querySelector("[data-page-url]")?.getAttribute("data-page-url"))&&(e=e.substring(0,e.lastIndexOf("/")+1));if(!e)return alert("❌ 未找到PDF路径!"),!1;const t=document.querySelector("[data-page-url]").getAttribute("data-page-url"),n=t.split("/").pop().replace(/(\d)\.page$/,""),o=e+n+".pdf";console.log("✅ PDF地址:",o);const a=document.createElement("a");a.href=o,a.download=n+".pdf",a.style.cssText="position:fixed;top:20px;right:20px;z-index:9999;padding:12px 20px;background:#2196F3;color:#fff;text-decoration:none;border-radius:4px;font-size:14px",a.textContent=`下载 ${n}.pdf`,document.body.appendChild(a),alert(`✅ PDF地址:\n${o}\n👉 右上角已生成下载按钮`)}catch(r){console.error("❌ 提取失败:",r),alert(`❌ 提取失败:\n${r.message}`)}})();
脚本使用方法
- 打开基于pdf2htmlEX生成的PDF预览页面;
- 按下
F12键打开Chrome开发者工具,切换到Console标签; - 将上述脚本复制粘贴到控制台,按下回车键执行;
- 根据弹窗提示操作,或直接点击右上角的功能按钮。
注意事项
本文分享的方法与脚本,仅适用于个人学习、研究或获取有权限的文档。在使用过程中,需严格遵守相关法律法规和网站的用户协议,不得用于非法获取受版权保护的文档,避免侵权风险。