fangjiasheng 3 years ago
parent
commit
d42a880343

+ 2 - 2
format_convert/convert.py

@@ -2606,8 +2606,8 @@ else:
 if __name__ == '__main__':
     if get_platform() == "Windows":
         # file_path = "C:/Users/Administrator/Desktop/error2.swf"
-        # file_path = "D:/BIDI_DOC/比地_文档/2022/Test_Interface/转账支付说明.txt"
-        file_path = "D:/BIDI_DOC/比地_文档/2022/Test_ODPS/1624595704316.pdf"
+        # file_path = "D:/BIDI_DOC/比地_文档/2022/Test_Interface/2020年南通市职业学校教学大赛结果的通知(扫描件).pdf"
+        file_path = "D:/BIDI_DOC/比地_文档/2022/Test_ODPS/未命名4.pdf"
     else:
         file_path = "1.doc"
 

+ 0 - 2
format_convert/convert_image.py

@@ -66,8 +66,6 @@ def image_process(image_np, image_path, use_ocr=True):
                                                 bbox[2][0], bbox[2][1]], b_text))
             lt = LineTable()
             tables, obj_in_table, _ = lt.recognize_table(list_text_boxes, list_lines, False)
-            text = [tables, obj_in_table]
-            column_list = []
 
             obj_list = []
             for table in tables:

+ 48 - 28
format_convert/convert_pdf.py

@@ -633,7 +633,9 @@ class PDFConvert:
         if self.has_init_pdf[0] == 0:
             self.init_package("pdfminer")
         if self._doc.error_code is not None:
+            self._doc.error_code = None
             # pdfminer读不了直接转成图片识别
+            self.get_all_page_image()
             return
 
         # 判断是否能读pdf
@@ -712,7 +714,8 @@ class PDFConvert:
                     self._page.add_child(_table)
 
                 list_sentences = ParseUtils.recognize_sentences(lt_text_list, filter_objs,
-                                                                layout.bbox, page_no)
+                                                                layout.bbox, page_no,
+                                                                sourceP_LB=False)
                 for sentence in list_sentences:
                     _sen = _Sentence(sentence.text, sentence.bbox)
                     # _sen.x = sentence.x0
@@ -852,6 +855,31 @@ class PDFConvert:
                 traceback.print_exc()
                 return [-3]
 
+    def get_all_page_image(self):
+        if self.has_init_pdf[1] == 0:
+            self.init_package("PyMuPDF")
+        if self._doc.error_code is not None:
+            return
+
+        page_count = self.doc_pymupdf.page_count
+        for page_no in range(page_count):
+            # 限制pdf页数,只取前10页后10页
+            if page_count > 20:
+                if 10 <= page_no < page_count - 10:
+                    continue
+
+            self._page = _Page(None, page_no)
+            page_image = self.get_page_image(page_no)
+            if judge_error_code(page_image):
+                self._page.error_code = page_image
+            else:
+                _image = _Image(page_image[1], page_image[0])
+                self._page.add_child(_image)
+            # 报错继续读后面页面
+            if self._doc.error_code is None and self._page.error_code is not None:
+                continue
+            self._doc.add_child(self._page)
+
     def get_html(self):
         self.convert()
         if self._doc.error_code is not None:
@@ -998,10 +1026,11 @@ class ParseUtils:
                         break
 
     @staticmethod
-    def recognize_sentences(list_textbox,filter_objs,page_bbox,page_no,remove_space=True):
+    def recognize_sentences(list_textbox, filter_objs, page_bbox, page_no,
+                            remove_space=True, sourceP_LB=True):
 
-        list_textbox.sort(key=lambda x:x.bbox[0])
-        list_textbox.sort(key=lambda x:x.bbox[3],reverse=True)
+        list_textbox.sort(key=lambda x: x.bbox[0])
+        list_textbox.sort(key=lambda x: x.bbox[3], reverse=sourceP_LB)
 
         cluster_textbox = []
         for _textbox in list_textbox:
@@ -1010,32 +1039,28 @@ class ParseUtils:
 
             _find = False
             for _ct in cluster_textbox:
-                if abs(_ct["y"]-_textbox.bbox[1])<5:
+                if abs(_ct["y"]-_textbox.bbox[1]) < 5:
                     _find = True
                     _ct["textbox"].append(_textbox)
             if not _find:
-                cluster_textbox.append({"y":_textbox.bbox[1],"textbox":[_textbox]})
+                cluster_textbox.append({"y": _textbox.bbox[1], "textbox": [_textbox]})
 
-        cluster_textbox.sort(key=lambda x:x["y"],reverse=True)
+        cluster_textbox.sort(key=lambda x: x["y"], reverse=sourceP_LB)
         list_sentences = []
         for _line in cluster_textbox:
             _textboxs = _line["textbox"]
-            _textboxs.sort(key=lambda x:x.bbox[0])
-
-
+            _textboxs.sort(key=lambda x: x.bbox[0])
 
             _linetext = _textboxs[0].get_text()
-            for _i in range(1,len(_textboxs)):
+            for _i in range(1, len(_textboxs)):
                 if abs(_textboxs[_i].bbox[0]-_textboxs[_i-1].bbox[0])>30:
-                    if _linetext[-1] not in (",",",","。",".","、",";"):
+                    if _linetext[-1] not in (",", ",", "。", ".", "、", ";"):
                         _linetext += "=,="
                 _linetext += _textboxs[_i].get_text()
 
-
-
-
-            _linetext = re.sub("[\s\r\n]","",_linetext)
-            _bbox = (_textboxs[0].bbox[0],_textboxs[0].bbox[1],_textboxs[-1].bbox[2],_textboxs[-1].bbox[3])
+            _linetext = re.sub("[\s\r\n]", "", _linetext)
+            _bbox = (_textboxs[0].bbox[0], _textboxs[0].bbox[1],
+                     _textboxs[-1].bbox[2],_textboxs[-1].bbox[3])
 
             _title = None
             _pattern_groups = None
@@ -1055,33 +1080,28 @@ class ParseUtils:
             if not _title:
                 _title = ParseUtils.rec_incenter(_bbox,page_bbox)
 
-
             title_degree = 2
             if not _title:
-                _linetext = _linetext.replace("=,=",",")
+                _linetext = _linetext.replace("=,=", ",")
             else:
-                _linetext = _linetext.replace("=,=","")
+                _linetext = _linetext.replace("=,=", "")
                 title_degree = int(_title.split("_")[1])
 
-
-            #页码
-            if ParseUtils.rec_incenter(_bbox,page_bbox) and re.search("^\d+$",_linetext) is not None:
+            # 页码
+            if ParseUtils.rec_incenter(_bbox,page_bbox) and re.search("^\d+$", _linetext) is not None:
                 continue
 
-            if _linetext=="" or re.search("^,+$",_linetext) is not None:
+            if _linetext == "" or re.search("^,+$", _linetext) is not None:
                 continue
 
-
             is_outline = False
             outline_location = -1
-            _search = re.search("(?P<text>.+?)\.{5,}(?P<nums>\d+)$",_linetext)
+            _search = re.search("(?P<text>.+?)\.{5,}(?P<nums>\d+)$", _linetext)
             if _search is not None:
                 is_outline = True
                 _linetext = _search.group("text")
                 outline_location = int(_search.group("nums"))
 
-
-
             list_sentences.append(ParseSentence(_bbox,_textboxs[-1].__dict__.get("fontname"),_textboxs[-1].__dict__.get("fontsize"),_linetext,_title,title_text,_pattern_groups,title_degree,is_outline,outline_location,page_no))
 
         # for _sen in list_sentences:

+ 1 - 3
format_convert/convert_tree.py

@@ -27,7 +27,6 @@ class _Document:
         for child in self.children:
             # 先调用get_html才能更新error_code
             child_html_text = child.get_html()
-            print("Document", self.error_code, child.error_code, type(child), child.page_no)
             if child.error_code is not None:
                 self.error_code = child.error_code
                 return self.error_code
@@ -61,7 +60,6 @@ class _Page:
         for child in self.children:
             # 先调用get_html才能更新error_code
             child_html_text = child.get_html()
-            print("Page", self.error_code, child.error_code, type(child))
             if child.error_code is not None:
                 self.error_code = child.error_code
                 return ""
@@ -105,7 +103,6 @@ class _Image:
         for child in self.children:
             # 先调用get_html才能更新error_code
             child_html_text = child.get_html()
-            print("Image", self.error_code, child.error_code, type(child))
             if child.error_code is not None:
                 self.error_code = child.error_code
                 return ""
@@ -163,6 +160,7 @@ class _Sentence:
     def get_html(self):
         if self.error_code is not None:
             return ""
+        print("_Sentence", self.content, self.bbox)
         if self.is_html:
             return self.content
         else:

+ 9 - 10
format_convert/utils.py

@@ -43,7 +43,7 @@ def add_div(text):
     text = re.sub("\n", "</div>\n<div>", text)
     # text += "</div>"
     if text[-5:] == "<div>":
-        print("add_div has cut", text[-30:])
+        # print("add_div has cut", text[-30:])
         text = text[:-5]
     return text
 
@@ -501,11 +501,10 @@ def slash_replace(_str, reverse=False):
 
 
 class LineTable:
-    def recognize_table(self,list_textbox, list_line,sourceP_LB=True):
+    def recognize_table(self, list_textbox, list_line, sourceP_LB=True):
         self.list_line = list_line
         self.list_crosspoints = self.recognize_crosspoints(list_line)
 
-  
         # 聚类
         cluster_crosspoints = []
         for _point in self.list_crosspoints:
@@ -537,7 +536,7 @@ class LineTable:
         in_objs = set()
         list_tables = []
         for l_rect in list_l_rect:
-            _ta = self.rect2table(list_textbox,l_rect,in_objs,sourceP_LB=sourceP_LB)
+            _ta = self.rect2table(list_textbox, l_rect, in_objs, sourceP_LB=sourceP_LB)
             if _ta:
                 list_tables.append(_ta)
         self._plot(list_line, list_textbox)
@@ -874,7 +873,7 @@ class LineTable:
         ta = {"bbox":table_bbox,"table":_table}
         return ta
 
-    def rect2table(self, list_textbox, list_rect, in_objs, margin=0.2, fixspan=True,sourceP_LB=True):
+    def rect2table(self, list_textbox, list_rect, in_objs, margin=0.2, fixspan=True, sourceP_LB=True):
         _table = []
         set_x = set()
         set_y = set()
@@ -894,7 +893,7 @@ class LineTable:
                 clusters_rects.append([_rect])
 
         print("clusters_rects", len(clusters_rects))
-        clusters_rects.sort(key=lambda x:x[0].bbox[3],reverse=sourceP_LB)
+        clusters_rects.sort(key=lambda x: x[0].bbox[3], reverse=True)
         for l_cr in clusters_rects:
             l_cr.sort(key=lambda x:x.bbox[0])
 
@@ -912,7 +911,7 @@ class LineTable:
         list_y = list(set_y)
 
         list_x.sort(key=lambda x:x)
-        list_y.sort(key=lambda x:x,reverse=sourceP_LB)
+        list_y.sort(key=lambda x:x, reverse=True)
 
         pop_x = []
         for i in range(len(list_x)-1):
@@ -920,7 +919,7 @@ class LineTable:
             l_i = _i-1
             if abs(list_x[_i]-list_x[l_i])<2:
                 pop_x.append(_i)
-        pop_x.sort(key=lambda x:x,reverse=True)
+        pop_x.sort(key=lambda x:x, reverse=True)
         for _x in pop_x:
             list_x.pop(_x)
         #
@@ -930,7 +929,7 @@ class LineTable:
             l_i = _i-1
             if abs(list_y[_i]-list_y[l_i])<2:
                 pop_x.append(_i)
-        pop_x.sort(key=lambda x:x,reverse=True)
+        pop_x.sort(key=lambda x:x, reverse=True)
         for _x in pop_x:
             list_y.pop(_x)
 
@@ -949,7 +948,7 @@ class LineTable:
             _table.append(table_line)
 
         list_textbox.sort(key=lambda x:x.bbox[0])
-        list_textbox.sort(key=lambda x:x.bbox[3],reverse=sourceP_LB)
+        list_textbox.sort(key=lambda x:x.bbox[3],reverse=True)
         for textbox in list_textbox:
             (x0,y0,x1,y1) = textbox.bbox
             _text = textbox.get_text()

+ 1271 - 1
result.html

@@ -1,2 +1,1272 @@
-<!DOCTYPE HTML><head><meta charset="UTF-8"></head><body><div>啊啊啊啊啊啊啊啊啊啊啊啊啊啊是水水水水噜啦噜啦嘞绿绿绿绿绿绿绿</div>
+<!DOCTYPE HTML><head><meta charset="UTF-8"></head><body><div>-13-</div>
+<table border="1">
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>序
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=3 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>序
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>材料名称 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>推荐品牌 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>号 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>材料名称 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>推荐品牌 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>号 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=3 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>抛光砖、防滑地砖、墙面瓷砖 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>萨米特、冠军、斯米克或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>1 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>抛光砖、防滑地砖、墙面瓷砖 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>萨米特、冠军、斯米克或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>抛光砖、防滑地砖、墙面瓷砖 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>萨米特、冠军、斯米克或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>瓷砖胶泥 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>雷帝、德高、亚细亚或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>2 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>瓷砖胶泥 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>雷帝、德高、亚细亚或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>瓷砖胶泥 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>雷帝、德高、亚细亚或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>防火卷帘 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>新欣、蓝盾、永安或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>3 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>防火卷帘 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>新欣、蓝盾、永安或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>防火卷帘 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>新欣、蓝盾、永安或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>乳胶漆、防霉涂料 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>嘉宝莉、华润、立邦或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>4 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>乳胶漆、防霉涂料 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>嘉宝莉、华润、立邦或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>乳胶漆、防霉涂料 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>嘉宝莉、华润、立邦或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>外墙涂料、仿石涂料 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>立邦、嘉宝莉、多乐士或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>5 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>外墙涂料、仿石涂料 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>立邦、嘉宝莉、多乐士或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>外墙涂料、仿石涂料 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>立邦、嘉宝莉、多乐士或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>油漆 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>立邦、多乐士、大师或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>6 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>油漆 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>立邦、多乐士、大师或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>油漆 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>立邦、多乐士、大师或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>防水卷材 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>东方雨虹、上海月皇、广东科顺或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>7 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>防水卷材 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>东方雨虹、上海月皇、广东科顺或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>防水卷材 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>东方雨虹、上海月皇、广东科顺或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>8 
+</td>
+<td colspan=1 rowspan=1>8 
+</td>
+<td colspan=1 rowspan=1>8 
+</td>
+<td colspan=3 rowspan=1>防水涂料 
+</td>
+<td colspan=3 rowspan=1>东方雨虹、上海月皇、广东科顺或相当于 
+</td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>9 
+</td>
+<td colspan=1 rowspan=1>9 
+</td>
+<td colspan=1 rowspan=1>9 
+</td>
+<td colspan=3 rowspan=1>外墙保温系统(无机保温砂浆) 
+</td>
+<td colspan=3 rowspan=1>浙江瑞锦、南京臣功、杭州赛科或相当于 
+</td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>10 
+</td>
+<td colspan=1 rowspan=1>10 
+</td>
+<td colspan=1 rowspan=1>10 
+</td>
+<td colspan=3 rowspan=1>石膏板 
+</td>
+<td colspan=3 rowspan=1>龙牌、拉法基、可耐福或相当于 
+</td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>11 
+</td>
+<td colspan=1 rowspan=1>11 
+</td>
+<td colspan=1 rowspan=1>11 
+</td>
+<td colspan=3 rowspan=1>轻钢龙骨 
+</td>
+<td colspan=3 rowspan=1>龙牌、拉法基、可耐福或相当于 
+</td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>12 
+</td>
+<td colspan=1 rowspan=1>12 
+</td>
+<td colspan=1 rowspan=1>12 
+</td>
+<td colspan=3 rowspan=1>九夹板、细木工板 
+</td>
+<td colspan=3 rowspan=1>千年舟、兔宝宝、莫干山或相当于 
+</td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>13 
+</td>
+<td colspan=1 rowspan=1>13 
+</td>
+<td colspan=1 rowspan=1>13 
+</td>
+<td colspan=3 rowspan=1>铝扣板 
+</td>
+<td colspan=3 rowspan=1>欧普、友邦、奥普或相当于 
+</td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1>14 
+</td>
+<td colspan=1 rowspan=1>14 
+</td>
+<td colspan=1 rowspan=1>14 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=3 rowspan=1>钢质门(防盗门) 
+</td>
+<td colspan=3 rowspan=1></td>
+<td colspan=3 rowspan=1>赛银将军、浙江香乡木业、新多、盼盼、王力、步阳或
+相当于 
+</td>
+<td colspan=3 rowspan=1></td>
+</tr>
+</table>
+<div>人承担;未作特别要求的材料都必须采用中档以上品牌,在采购前报招标人书面确认。</div>
+<div>要提出品牌档次要求,投标人必须按照招标人要求的档次提供材料(设备),费用差价风险由投标</div>
+<div>人也可在备注栏中标明选择的品牌,若投标人未列出材料品牌,在施工期间,招标人可根据工程需</div>
+<div>品牌且投标单位不得有异议,价格不变;招标人未作品牌要求的材料设备,能提供材料品牌的投标</div>
+<div>而未填报或漏填报品牌的投标文件在中标后,招标人有权在推荐品牌中指定任一品牌作为施工使用</div>
+<div>(3)招标人有材料品牌要求的,投标人应在招标人推荐品牌之内选择品牌,所有未根据要求</div>
+<div>(2)投标人在投标报价时在投标文件《表1-6主要材料(设备)价格表》中明确其所选品牌。</div>
+<div>可的本行业优质产品。</div>
+<div>表中的品牌已停止生产的材料需变更时,更换的品牌必须是省级(含省级)以上名牌产品或业主认</div>
+<div>(1)主要材料(设备)品牌详见附件。如本表中未提供品牌的其他材料和招标人提供的品牌</div>
+<div>主要材料(设备)品牌与要求</div>
+<div>-14-</div>
+<table border="1">
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>15 
+</td>
+<td colspan=1 rowspan=1>钢质防火门 
+</td>
+<td colspan=1 rowspan=1>赛银将军、浙江香乡木业、盼盼、王力、浙江采丰或相
+当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>16 
+</td>
+<td colspan=1 rowspan=1>木质防火门 
+</td>
+<td colspan=1 rowspan=1>杭木杜鹃、杭州金盾、杭州钱江、浙江香乡木业或相当
+于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>17 
+</td>
+<td colspan=1 rowspan=1>铝型材 
+</td>
+<td colspan=1 rowspan=1>坚美、兴发、凤铝、中亚或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>18 
+</td>
+<td colspan=1 rowspan=1>玻璃原片品牌 
+</td>
+<td colspan=1 rowspan=1>南玻、台玻、金晶或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>19 
+</td>
+<td colspan=1 rowspan=1>球形锁、执手锁 
+</td>
+<td colspan=1 rowspan=1>西玛、GMT、汇泰龙(要求
+304
+不锈钢)或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>20 
+</td>
+<td colspan=1 rowspan=1>平开平推式不锈钢防火锁 
+</td>
+<td colspan=1 rowspan=1>西玛、GMT、汇泰龙(要求
+304
+不锈钢)或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>21 
+</td>
+<td colspan=1 rowspan=1>铝合金门窗五金配件 
+</td>
+<td colspan=1 rowspan=1>广东坚朗、广东合和、春光五金或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>22 
+</td>
+<td colspan=1 rowspan=1>密封胶、耐候胶 
+</td>
+<td colspan=1 rowspan=1>杭州之江、广州白云、道康宁或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>23 
+</td>
+<td colspan=1 rowspan=1>防护密闭门、密闭门、防爆波活门
+等其他人防产品 
+</td>
+<td colspan=1 rowspan=1>杭州人防、钱江人防、杭州三益或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>24 
+</td>
+<td colspan=1 rowspan=1>铝板 
+</td>
+<td colspan=1 rowspan=1>上海吉祥、阿姆斯壮、上海浦飞尔或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>25 
+</td>
+<td colspan=1 rowspan=1>电线、电缆(房产) 
+</td>
+<td colspan=1 rowspan=1>杭州永通、浙江万马、江苏上上或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>26 
+</td>
+<td colspan=1 rowspan=1>开关、插座 
+</td>
+<td colspan=1 rowspan=1>杭州鸿雁、浙江正泰、德力西或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>27 
+</td>
+<td colspan=1 rowspan=1>桥架 
+</td>
+<td colspan=1 rowspan=1>浙江浩翔、浙江远大、浙江宸奥或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>28 
+</td>
+<td colspan=1 rowspan=1>配电箱成套 
+</td>
+<td colspan=1 rowspan=1>需符合杭州市电力局验收的相关规定, 
+(元器件成套)西门子(SIEMENS)、 
+施耐德(Schneider)、ABB
+或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>29 
+</td>
+<td colspan=1 rowspan=1>火灾报警系统 
+</td>
+<td colspan=1 rowspan=1>上海松江、北京利达、秦皇岛海湾或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>30 
+</td>
+<td colspan=1 rowspan=1>阀门 
+</td>
+<td colspan=1 rowspan=1>上海开维喜、上海冠龙、桐庐春江、宁波埃美柯或相当
+于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>31 
+</td>
+<td colspan=1 rowspan=1>安全出口、疏散指示灯、应急电源 
+</td>
+<td colspan=1 rowspan=1>杭州台谊、杭州金盾、浙江乐思达或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>32 
+</td>
+<td colspan=1 rowspan=1>灯具 
+</td>
+<td colspan=1 rowspan=1>三雄极光、欧普、雷士或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>33 
+</td>
+<td colspan=1 rowspan=1>镀锌钢管、钢塑管 
+</td>
+<td colspan=1 rowspan=1>浙江金洲、衡水华岐、天津利达或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>34 
+</td>
+<td colspan=1 rowspan=1>PVC-U
+排水管及电线套管 
+</td>
+<td colspan=1 rowspan=1>浙江中财、浙江亿通、浙江伟星、台州公元或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>35 
+</td>
+<td colspan=1 rowspan=1>PP-R
+给水管 
+</td>
+<td colspan=1 rowspan=1>浙江中财、浙江亿通、浙江伟星、台州公元或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1>36 
+</td>
+<td colspan=1 rowspan=1>消防泵、污水泵、稳压设备 
+</td>
+<td colspan=1 rowspan=1>上海凯泉、上海熊猫、格兰富、上海连成、上海东方、
+杭州双轮或相当于 
+</td>
+</tr>
+</table>
+<div>-15-</div>
+<table border="1">
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>37 
+</td>
+<td colspan=1 rowspan=1>风机 
+</td>
+<td colspan=1 rowspan=1>浙江专风、浙江双阳、上虞上风或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>38 
+</td>
+<td colspan=1 rowspan=1>KBG、JDG
+管 
+</td>
+<td colspan=1 rowspan=1>武陵源、萧通、天一或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>39 
+</td>
+<td colspan=1 rowspan=1>喷淋设备(喷头、湿式报警阀、信
+号阀、水流指示器等) 
+</td>
+<td colspan=1 rowspan=1>杭州永安、杭州金盾、杭州建安或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>40 
+</td>
+<td colspan=1 rowspan=1>空气源热泵 
+</td>
+<td colspan=1 rowspan=1>格力、海尔、美的或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>41 
+</td>
+<td colspan=1 rowspan=1>卫生洁具 
+</td>
+<td colspan=1 rowspan=1>箭牌、美标、科勒或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>42 
+</td>
+<td colspan=1 rowspan=1>电梯 
+</td>
+<td colspan=1 rowspan=1>通力、三菱、日立或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>43 
+</td>
+<td colspan=1 rowspan=1>周界电子围栏 
+</td>
+<td colspan=1 rowspan=1>杭州锐盾、杭州坚盾、上海高升或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>44 
+</td>
+<td colspan=1 rowspan=1>入侵报警系统 
+</td>
+<td colspan=1 rowspan=1>BOSCH、霍尼韦尔、艾礼富或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>45 
+</td>
+<td colspan=1 rowspan=1>监控系统设备(硬盘录像机、摄像
+机等) 
+</td>
+<td colspan=1 rowspan=1>大华、海康威视、宇视或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>46 
+</td>
+<td colspan=1 rowspan=1>监视器部分 
+</td>
+<td colspan=1 rowspan=1>海信、创维、TCL
+或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>47 
+</td>
+<td colspan=1 rowspan=1>硬盘 
+</td>
+<td colspan=1 rowspan=1>希捷、西部数据、三星或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>48 
+</td>
+<td colspan=1 rowspan=1>门禁、可视对讲系统 
+</td>
+<td colspan=1 rowspan=1>数源、西雅特、赋安或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>49 
+</td>
+<td colspan=1 rowspan=1>背景音乐系统 
+</td>
+<td colspan=1 rowspan=1>BOSCH、TOA、松下或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>50 
+</td>
+<td colspan=1 rowspan=1>停车场管理系统 
+</td>
+<td colspan=1 rowspan=1>披克、捷顺、富士或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>51 
+</td>
+<td colspan=1 rowspan=1>电子巡更系统设备 
+</td>
+<td colspan=1 rowspan=1>兰卡、中创、兰德华或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>52 
+</td>
+<td colspan=1 rowspan=1>UPS
+不间断电源系统 
+</td>
+<td colspan=1 rowspan=1>APC、艾默生(Emerson)、GE、伊顿(EATON)或相当
+于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>53 
+</td>
+<td colspan=1 rowspan=1>电视墙、控制台 
+</td>
+<td colspan=1 rowspan=1>建云、兴信、鸿雁或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>54 
+</td>
+<td colspan=1 rowspan=1>电脑 
+</td>
+<td colspan=1 rowspan=1>DELL、联想、华硕或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>55 
+</td>
+<td colspan=1 rowspan=1>多媒体箱 
+</td>
+<td colspan=1 rowspan=1>杭州鸿雁、普天天纪、正泰、德力西或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>56 
+</td>
+<td colspan=1 rowspan=1>交换机 
+</td>
+<td colspan=1 rowspan=1>H3C、华为、CISCO
+或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>57 
+</td>
+<td colspan=1 rowspan=1>光端机 
+</td>
+<td colspan=1 rowspan=1>大华、海康威视、英飞拓或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>58 
+</td>
+<td colspan=1 rowspan=1>智能化线缆、光缆部分 
+</td>
+<td colspan=1 rowspan=1>秋叶原、爱谱华顿、江苏天诚、宇洪或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>59 
+</td>
+<td colspan=1 rowspan=1>抗震支架 
+</td>
+<td colspan=1 rowspan=1>浙江优嘉、江苏申芳、浩翔或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>60 
+</td>
+<td colspan=1 rowspan=1>室内生活钢塑给水管 
+</td>
+<td colspan=1 rowspan=1>浙江金洲、华岐、天津利达或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1>61 
+</td>
+<td colspan=1 rowspan=1>风口、风阀 
+</td>
+<td colspan=1 rowspan=1>杭州恒通、杭州金盾、浙江银盛或相当于 
+</td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1>62 
+</td>
+<td colspan=1 rowspan=1>智能疏散指示及照明系统 
+</td>
+<td colspan=1 rowspan=1>上海莫鼎、宏威智慧、珠海西默或相当于 
+</td>
+</tr>
+</table>
+<div>-16-</div>
+<table border="1">
+<tr>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1>矿物绝缘电缆 
+浙江华晨、浙江久盛、上海高桥或相当于 
+63 
+配电箱 
+白象、杭开、元通、金盾或相当于 
+64 
+杭州金盾、杭州信达、杭州东盛、杭州永安、杭州三顺、
+65 
+消火栓箱(成套) 
+浙江发达或相当于 
+66 
+消火栓、水泵接合器 
+杭州金盾、杭州信达、杭州东盛、杭州永安或相当于 
+67 
+管道保温材料 
+江苏赢胜、凯门福乐斯、河北华美或相当于 
+电气火灾监控、防火门监控、消防
+上海美礼实、上海拜徽、上海庄城、北京中科恒电、度
+68 
+设备电源监控系统 
+朗格迪、安博瑞尼或相当于 
+ 
+</td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+</tr>
+<tr>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+<td colspan=1 rowspan=1></td>
+</tr>
+</table>
+<div>-17-</div>
+<div>人民币(大写)元整(¥元);</div>
+<div>(1)安全文明施工费:</div>
+<div>其中:</div>
+<div>人民币(大写)元整(¥元);</div>
+<div>1.签约合同价为:</div>
+<div>四、签约合同价与合同价格形式</div>
+<div>工程质量符合国家有关工程施工质量验收规范标准。</div>
+<div>三、质量标准</div>
+<div>数不一致的,以工期总日历天数为准。</div>
+<div>工期总日历天数:天。工期总日历天数与根据前述计划开竣工日期计算的工期天</div>
+<div>计划竣工日期:年月日。</div>
+<div>计划开工日期:年月日。</div>
+<div>二、合同工期</div>
+<div>施工图及招标文件中明确的内容(详见招标文件、施工图、工程量清单)。</div>
+<div>6.工程承包范围:</div>
+<div>群体工程应附《承包人承揽工程项目一览表》(附件1)。</div>
+<div>5.工程内容:。</div>
+<div>4.资金来源:。</div>
+<div>3.工程立项批准文号:。</div>
+<div>2.工程地点:。</div>
+<div>1.工程名称:。</div>
+<div>一、工程概况</div>
+<div>同达成如下协议:</div>
+<div>遵循平等、自愿、公平和诚实信用的原则,双方就工程施工及有关事项协商一致,共</div>
+<div>根据《中华人民共和国民法典》、《中华人民共和国建筑法》及有关法律规定,</div>
+<div>承包人(全称):</div>
+<div>发包人(全称):</div>
+<div>第一部分合同协议书</div>
+<div>六、合同条款及格式</div>
 </body>