从基于pdf2htmlEX技术的PDF预览页面提取原始PDF文件的方法原理与实践

文章目录

实践实例

测试网址: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,&quot;Fit&quot;]">GB50160-2008</a></li>
     <li><a title="1  总则" class="l" href="#pfe" data-dest-detail="[14,&quot;Fit&quot;]">1 总则</a></li>
     <li><a title="2  术语" class="l" href="#pff" data-dest-detail="[15,&quot;Fit&quot;]">2 术语</a></li>
     <li><a title="3  火灾危险性分类" class="l" href="#pf14" data-dest-detail="[20,&quot;Fit&quot;]">3 火灾危险性分类</a></li>
     <li><a title="4  区域规划与工厂总平面布置" class="l" href="#pf16" data-dest-detail="[22,&quot;Fit&quot;]">4 区域规划与工厂总平面布置</a></li>
     <li><a title="4.1  区域规划" class="l" href="#pf16" data-dest-detail="[22,&quot;Fit&quot;]">4.1 区域规划</a></li>
     <li><a title="4.2  工厂总平面布置" class="l" href="#pf1b" data-dest-detail="[27,&quot;Fit&quot;]">4.2 工厂总平面布置</a></li>
     <li><a title="4.3  厂内道路" class="l" href="#pf1d" data-dest-detail="[29,&quot;Fit&quot;]">4.3 厂内道路</a></li>
     <li><a title="4.4  厂内铁路" class="l" href="#pf1f" data-dest-detail="[31,&quot;Fit&quot;]">4.4 厂内铁路</a></li>
     <li><a title="4.5  厂际管道规划" class="l" href="#pf20" data-dest-detail="[32,&quot;Fit&quot;]">4.5 厂际管道规划</a></li>
     <li><a title="5  工艺装置和系统单元" class="l" href="#pf23" data-dest-detail="[35,&quot;Fit&quot;]">5 工艺装置和系统单元</a></li>
     <li><a title="5.1  一般规定" class="l" href="#pf23" data-dest-detail="[35,&quot;Fit&quot;]">5.1 一般规定</a></li>
     <li><a title="5.2  装置内布置" class="l" href="#pf23" data-dest-detail="[35,&quot;Fit&quot;]">5.2 装置内布置</a></li>
     <li><a title="5.3  泵和压缩机" class="l" href="#pf29" data-dest-detail="[41,&quot;Fit&quot;]">5.3 泵和压缩机</a></li>
     <li><a title="5.4  污水处理场和循环水场" class="l" href="#pf2b" data-dest-detail="[43,&quot;Fit&quot;]">5.4 污水处理场和循环水场</a></li>
     <li><a title="5.5  泄压排放和火炬系统" class="l" href="#pf2c" data-dest-detail="[44,&quot;Fit&quot;]">5.5 泄压排放和火炬系统</a></li>
     <li><a title="5.6  钢结构耐火保护" class="l" href="#pf2f" data-dest-detail="[47,&quot;Fit&quot;]">5.6 钢结构耐火保护</a></li>
     <li><a title="5.7  其他要求" class="l" href="#pf30" data-dest-detail="[48,&quot;Fit&quot;]">5.7 其他要求</a></li>
     <li><a title="6  储运设施" class="l" href="#pf33" data-dest-detail="[51,&quot;Fit&quot;]">6 储运设施</a></li>
     <li><a title="6.1  一般规定" class="l" href="#pf33" data-dest-detail="[51,&quot;Fit&quot;]">6.1 一般规定</a></li>
     <li><a title="6.2  可燃液体的地上储罐" class="l" href="#pf33" data-dest-detail="[51,&quot;Fit&quot;]">6.2 可燃液体的地上储罐</a></li>
     <li><a title="6.3  液化烃、可燃气体、助燃气体的地上储罐" class="l" href="#pf37" data-dest-detail="[55,&quot;Fit&quot;]">6.3 液化烃、可燃气体、助燃气体的地上储罐</a></li>
     <li><a title="6.4  可燃液体、液化烃的装卸设施" class="l" href="#pf3b" data-dest-detail="[59,&quot;Fit&quot;]">6.4 可燃液体、液化烃的装卸设施</a></li>
     <li><a title="6.5  灌装站" class="l" href="#pf3d" data-dest-detail="[61,&quot;Fit&quot;]">6.5 灌装站</a></li>
     <li><a title="6.6  厂内仓库" class="l" href="#pf3d" data-dest-detail="[61,&quot;Fit&quot;]">6.6 厂内仓库</a></li>
     <li><a title="7  管道布置" class="l" href="#pf40" data-dest-detail="[64,&quot;Fit&quot;]">7 管道布置</a></li>
     <li><a title="7.1  厂内管线综合" class="l" href="#pf40" data-dest-detail="[64,&quot;Fit&quot;]">7.1 厂内管线综合</a></li>
     <li><a title="7.2  工艺及公用物料管道" class="l" href="#pf40" data-dest-detail="[64,&quot;Fit&quot;]">7.2 工艺及公用物料管道</a></li>
     <li><a title="7.3  含可燃液体的生产污水管道" class="l" href="#pf42" data-dest-detail="[66,&quot;Fit&quot;]">7.3 含可燃液体的生产污水管道</a></li>
     <li><a title="7.4  厂际管道敷设" class="l" href="#pf43" data-dest-detail="[67,&quot;Fit&quot;]">7.4 厂际管道敷设</a></li>
     <li><a title="8  消防" class="l" href="#pf45" data-dest-detail="[69,&quot;Fit&quot;]">8 消防</a></li>
     <li><a title="8.1  一般规定" class="l" href="#pf45" data-dest-detail="[69,&quot;Fit&quot;]">8.1 一般规定</a></li>
     <li><a title="8.2  消防站" class="l" href="#pf45" data-dest-detail="[69,&quot;Fit&quot;]">8.2 消防站</a></li>
     <li><a title="8.3  消防水源及泵房" class="l" href="#pf46" data-dest-detail="[70,&quot;Fit&quot;]">8.3 消防水源及泵房</a></li>
     <li><a title="8.4  消防用水量" class="l" href="#pf48" data-dest-detail="[72,&quot;Fit&quot;]">8.4 消防用水量</a></li>
     <li><a title="8.5  消防给水管道及消火栓" class="l" href="#pf4a" data-dest-detail="[74,&quot;Fit&quot;]">8.5 消防给水管道及消火栓</a></li>
     <li><a title="8.6  消防水炮、水喷淋和水喷雾" class="l" href="#pf4b" data-dest-detail="[75,&quot;Fit&quot;]">8.6 消防水炮、水喷淋和水喷雾</a></li>
     <li><a title="8.7  低倍数泡沫灭火系统" class="l" href="#pf4d" data-dest-detail="[77,&quot;Fit&quot;]">8.7 低倍数泡沫灭火系统</a></li>
     <li><a title="8.8  蒸汽灭火系统" class="l" href="#pf4e" data-dest-detail="[78,&quot;Fit&quot;]">8.8 蒸汽灭火系统</a></li>
     <li><a title="8.9  灭火器设置" class="l" href="#pf4f" data-dest-detail="[79,&quot;Fit&quot;]">8.9 灭火器设置</a></li>
     <li><a title="8.10  液化烃罐区消防" class="l" href="#pf50" data-dest-detail="[80,&quot;Fit&quot;]">8.10 液化烃罐区消防</a></li>
     <li><a title="8.11  建筑物内消防" class="l" href="#pf52" data-dest-detail="[82,&quot;Fit&quot;]">8.11 建筑物内消防</a></li>
     <li><a title="8.12  火灾报警系统" class="l" href="#pf54" data-dest-detail="[84,&quot;Fit&quot;]">8.12 火灾报警系统</a></li>
     <li><a title="9  电气" class="l" href="#pf56" data-dest-detail="[86,&quot;Fit&quot;]">9 电气</a></li>
     <li><a title="9.1  消防电源、配电及一般要求" class="l" href="#pf56" data-dest-detail="[86,&quot;Fit&quot;]">9.1 消防电源、配电及一般要求</a></li>
     <li><a title="9.2  防雷" class="l" href="#pf56" data-dest-detail="[86,&quot;Fit&quot;]">9.2 防雷</a></li>
     <li><a title="9.3  静电接地" class="l" href="#pf57" data-dest-detail="[87,&quot;Fit&quot;]">9.3 静电接地</a></li>
     <li><a title="附录A  防火间距起止点" class="l" href="#pf59" data-dest-detail="[89,&quot;Fit&quot;]">附录A 防火间距起止点</a></li>
     <li><a title="本标准用词说明" class="l" href="#pf5a" data-dest-detail="[90,&quot;Fit&quot;]">本标准用词说明</a></li>
     <li><a title="引用标准名录" class="l" href="#pf5b" data-dest-detail="[91,&quot;Fit&quot;]">引用标准名录</a></li>
     <li><a title="附:条文说明" class="l" href="#pf5c" data-dest-detail="[92,&quot;Fit&quot;]">附:条文说明</a></li>
     <li><a title="1  总则" class="l" href="#pf61" data-dest-detail="[97,&quot;Fit&quot;]">1 总则</a></li>
     <li><a title="2  术语" class="l" href="#pf62" data-dest-detail="[98,&quot;Fit&quot;]">2 术语</a></li>
     <li><a title="3  火灾危险性分类" class="l" href="#pf64" data-dest-detail="[100,&quot;Fit&quot;]">3 火灾危险性分类</a></li>
     <li><a title="4  区域规划与工厂总平面布置" class="l" href="#pf69" data-dest-detail="[105,&quot;Fit&quot;]">4 区域规划与工厂总平面布置</a></li>
     <li><a title="4.1  区域规划" class="l" href="#pf69" data-dest-detail="[105,&quot;Fit&quot;]">4.1 区域规划</a></li>
     <li><a title="4.2  工厂总平面布置" class="l" href="#pf6e" data-dest-detail="[110,&quot;Fit&quot;]">4.2 工厂总平面布置</a></li>
     <li><a title="4.3  厂内道路" class="l" href="#pf79" data-dest-detail="[121,&quot;Fit&quot;]">4.3 厂内道路</a></li>
     <li><a title="4.4  厂内铁路" class="l" href="#pf7a" data-dest-detail="[122,&quot;Fit&quot;]">4.4 厂内铁路</a></li>
     <li><a title="4.5  厂际管道规划" class="l" href="#pf7b" data-dest-detail="[123,&quot;Fit&quot;]">4.5 厂际管道规划</a></li>
     <li><a title="5  工艺装置和系统单元" class="l" href="#pf7e" data-dest-detail="[126,&quot;Fit&quot;]">5 工艺装置和系统单元</a></li>
     <li><a title="5.1  一般规定" class="l" href="#pf7e" data-dest-detail="[126,&quot;Fit&quot;]">5.1 一般规定</a></li>
     <li><a title="5.2  装置内布置" class="l" href="#pf7e" data-dest-detail="[126,&quot;Fit&quot;]">5.2 装置内布置</a></li>
     <li><a title="5.3  泵和压缩机" class="l" href="#pf89" data-dest-detail="[137,&quot;Fit&quot;]">5.3 泵和压缩机</a></li>
     <li><a title="5.4  污水处理场和循环水场" class="l" href="#pf8c" data-dest-detail="[140,&quot;Fit&quot;]">5.4 污水处理场和循环水场</a></li>
     <li><a title="5.5  泄压排放和火炬系统" class="l" href="#pf8d" data-dest-detail="[141,&quot;Fit&quot;]">5.5 泄压排放和火炬系统</a></li>
     <li><a title="5.6  钢结构耐火保护" class="l" href="#pf92" data-dest-detail="[146,&quot;Fit&quot;]">5.6 钢结构耐火保护</a></li>
     <li><a title="5.7  其他要求" class="l" href="#pf99" data-dest-detail="[153,&quot;Fit&quot;]">5.7 其他要求</a></li>
     <li><a title="6  储运设施" class="l" href="#pf9b" data-dest-detail="[155,&quot;Fit&quot;]">6 储运设施</a></li>
     <li><a title="6.1  一般规定" class="l" href="#pf9b" data-dest-detail="[155,&quot;Fit&quot;]">6.1 一般规定</a></li>
     <li><a title="6.2  可燃液体的地上储罐" class="l" href="#pf9b" data-dest-detail="[155,&quot;Fit&quot;]">6.2 可燃液体的地上储罐</a></li>
     <li><a title="6.3  液化烃、可燃气体、助燃气体的地上储罐" class="l" href="#pfa5" data-dest-detail="[165,&quot;Fit&quot;]">6.3 液化烃、可燃气体、助燃气体的地上储罐</a></li>
     <li><a title="6.4  可燃液体、液化烃的装卸设施" class="l" href="#pfaa" data-dest-detail="[170,&quot;Fit&quot;]">6.4 可燃液体、液化烃的装卸设施</a></li>
     <li><a title="6.5  灌装站" class="l" href="#pfac" data-dest-detail="[172,&quot;Fit&quot;]">6.5 灌装站</a></li>
     <li><a title="6.6  厂内仓库" class="l" href="#pfad" data-dest-detail="[173,&quot;Fit&quot;]">6.6 厂内仓库</a></li>
     <li><a title="7  管道布置" class="l" href="#pfb0" data-dest-detail="[176,&quot;Fit&quot;]">7 管道布置</a></li>
     <li><a title="7.1  厂内管线综合" class="l" href="#pfb0" data-dest-detail="[176,&quot;Fit&quot;]">7.1 厂内管线综合</a></li>
     <li><a title="7.2  工艺及公用物料管道" class="l" href="#pfb1" data-dest-detail="[177,&quot;Fit&quot;]">7.2 工艺及公用物料管道</a></li>
     <li><a title="7.3  含可燃液体的生产污水管道" class="l" href="#pfb5" data-dest-detail="[181,&quot;Fit&quot;]">7.3 含可燃液体的生产污水管道</a></li>
     <li><a title="7.4  厂际管道敷设" class="l" href="#pfb8" data-dest-detail="[184,&quot;Fit&quot;]">7.4 厂际管道敷设</a></li>
     <li><a title="8  消防" class="l" href="#pfba" data-dest-detail="[186,&quot;Fit&quot;]">8 消防</a></li>
     <li><a title="8.1  一般规定" class="l" href="#pfba" data-dest-detail="[186,&quot;Fit&quot;]">8.1 一般规定</a></li>
     <li><a title="8.2  消防站" class="l" href="#pfba" data-dest-detail="[186,&quot;Fit&quot;]">8.2 消防站</a></li>
     <li><a title="8.3  消防水源及泵房" class="l" href="#pfbc" data-dest-detail="[188,&quot;Fit&quot;]">8.3 消防水源及泵房</a></li>
     <li><a title="8.4  消防用水量" class="l" href="#pfbd" data-dest-detail="[189,&quot;Fit&quot;]">8.4 消防用水量</a></li>
     <li><a title="8.5  消防给水管道及消火栓" class="l" href="#pfc1" data-dest-detail="[193,&quot;Fit&quot;]">8.5 消防给水管道及消火栓</a></li>
     <li><a title="8.6  消防水炮、水喷淋和水喷雾" class="l" href="#pfc2" data-dest-detail="[194,&quot;Fit&quot;]">8.6 消防水炮、水喷淋和水喷雾</a></li>
     <li><a title="8.7  低倍数泡沫灭火系统" class="l" href="#pfc4" data-dest-detail="[196,&quot;Fit&quot;]">8.7 低倍数泡沫灭火系统</a></li>
     <li><a title="8.8  蒸汽灭火系统" class="l" href="#pfc5" data-dest-detail="[197,&quot;Fit&quot;]">8.8 蒸汽灭火系统</a></li>
     <li><a title="8.9  灭火器设置" class="l" href="#pfc6" data-dest-detail="[198,&quot;Fit&quot;]">8.9 灭火器设置</a></li>
     <li><a title="8.10  液化烃罐区消防" class="l" href="#pfc7" data-dest-detail="[199,&quot;Fit&quot;]">8.10 液化烃罐区消防</a></li>
     <li><a title="8.11  建筑物内消防" class="l" href="#pfca" data-dest-detail="[202,&quot;Fit&quot;]">8.11 建筑物内消防</a></li>
     <li><a title="8.12  火灾报警系统" class="l" href="#pfcd" data-dest-detail="[205,&quot;Fit&quot;]">8.12 火灾报警系统</a></li>
     <li><a title="9  电气" class="l" href="#pfcf" data-dest-detail="[207,&quot;Fit&quot;]">9 电气</a></li>
     <li><a title="9.1  消防电源、配电及一般要求" class="l" href="#pfcf" data-dest-detail="[207,&quot;Fit&quot;]">9.1 消防电源、配电及一般要求</a></li>
     <li><a title="9.3  静电接地" class="l" href="#pfd0" data-dest-detail="[208,&quot;Fit&quot;]">9.3 静电接地</a></li>
     <li><a title="附录A  防火间距起止点" class="l" href="#pfd1" data-dest-detail="[209,&quot;Fit&quot;]">附录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标准文档),可发现一套可预测的命名模式:

  • 原始PDFGB50160-2008.pdf
  • 分页文件GB50160-20081.page(第1页)、GB50160-20082.page(第2页)...
  • 样式文件GB50160-2008.css
  • 基础路径https://.../20220613/165740411/
  1. 路径映射规则 :原始PDF文件与转换后的page文件,默认存储在服务器同一目录 下。在网页代码中,通常会通过absolute_path_prefix全局变量暴露这个公共存储路径,例如https://ebook.chinabuilding.com.cn/upload/resources/pdf/20220613/165740411/
  2. 文件名映射规则
    • 原始PDF文件命名格式:{基础文件名}.pdf,例如GB50160-2008.pdf
    • 转换后page文件命名格式:{基础文件名}{页码}.page,页码从1开始递增。例如第1页对应GB50160-20081.page,第10页对应GB50160-200810.page
    • 特殊页码标识:部分场景下页码超过9后会使用十六进制标识(如第10页对应pfa标签),但文件名仍遵循"基础名+数字页码"的规则。
  3. 关键特征:page文件的"基础文件名"与原始PDF的基础文件名完全一致,这是定位原始PDF的核心线索。

通用方法:手动提取原始PDF地址的步骤

无论面对何种基于pdf2htmlEX生成的预览页面,只要页面结构相似,都可以通过以下4步手动提取原始PDF地址,无需依赖任何脚本。

  1. 定位路径前缀
    • 优先查找:查看网页源代码,搜索absolute_path_prefix变量,该变量的值就是PDF与page文件的公共存储路径。
    • 备用方案:若未找到上述变量,可从任意page文件的data-page-url属性中截取路径------保留"最后一个/之前的部分",即为路径前缀。
  2. 提取基础文件名
    • 从任意page文件名中,仅删除末尾的1位页码数字和.page后缀 ,剩余部分就是基础文件名。例如从GB50160-20081.page中删除末尾的1.page,得到基础文件名GB50160-2008
    • 注意事项:避免误删文件名中的其他数字(如年份、标准编号),这是手动提取的核心易错点。
  3. 拼接完整PDF地址
    • 按照公式拼接:路径前缀 + 基础文件名 + .pdf = 原始PDF地址
    • 示例:https://xxx/20220613/165740411/ + GB50160-2008 + .pdf = https://xxx/GB50160-2008.pdf
  4. 验证地址有效性
    • 将拼接好的地址复制到浏览器地址栏,若能直接下载或预览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}`)}})();
脚本使用方法
  1. 打开基于pdf2htmlEX生成的PDF预览页面;
  2. 按下F12键打开Chrome开发者工具,切换到Console标签;
  3. 将上述脚本复制粘贴到控制台,按下回车键执行;
  4. 根据弹窗提示操作,或直接点击右上角的功能按钮。
注意事项

本文分享的方法与脚本,仅适用于个人学习、研究或获取有权限的文档。在使用过程中,需严格遵守相关法律法规和网站的用户协议,不得用于非法获取受版权保护的文档,避免侵权风险。

相关推荐
开开心心_Every7 小时前
免费进销存管理软件:云端本地双部署
java·游戏·微信·eclipse·pdf·excel·语音识别
winfredzhang9 小时前
从零构建:手写一个支持“高度定制化排版”的 Chrome 网页摘录插件
chrome·pdf·插件·epub·零碎信息归档
裴嘉靖10 小时前
前端获取二进制文件并预览的完整指南
前端·pdf
KG_LLM图谱增强大模型11 小时前
[20页中英文PDF]生物制药企业新一代知识管理:用知识图谱+大模型构建“第二大脑“
人工智能·pdf·知识图谱
开开心心就好12 小时前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
helloworld也报错?12 小时前
保存网页为PDF
前端·javascript·pdf
东方-教育技术博主12 小时前
PDF文件夹去重
pdf
eybk12 小时前
拖放pdf转化为txt文件多进程多线程合并分词版
java·python·pdf
梦凡尘12 小时前
前端web端解析 Word、Pdf 文档文本内容
pdf·js
白典典12 小时前
iTextPDF生成手册时目录页码与实际页码不匹配问题求助
java·spring·pdf·intellij-idea