bunu mene rusdilnde duzelt gonder
创建于:2025年12月24日
使用 GPT-5.2 Thinking 回答 Chat01
创建于:2025年12月24日
使用 GPT-5.2 Thinking 回答 Chat01
pythonfrom docx import Document, shared doc = Document('/mnt/data/obeyktivka.docx') len(doc.paragraphs), len(doc.tables) (57, 2)
pythonfor i,p in enumerate(doc.paragraphs[:25]): print(i, repr(p.text))
pythonfor i,p in enumerate(doc.paragraphs[25:57], start=25): if p.text.strip(): print(i, repr(p.text))
pythonfor ti,table in enumerate(doc.tables): print("Table", ti, "rows", len(table.rows), "cols", len(table.columns))
pythont0 = doc.tables[0] for r in t0.rows: print([c.text for c in r.cells])
pythont1 = doc.tables[1] for ri,row in enumerate(t1.rows): print("Row", ri, [cell.text.strip() for cell in row.cells])
pythonimport pathlib, textwrap, os, re, json, math print(open('/home/oai/skills/docs/skill.md','r',encoding='utf-8').read()[:1200])
pythonprint(open('/home/oai/skills/docs/skill.md','r',encoding='utf-8').read()[1200:2400])
pythonprint(open('/home/oai/skills/docs/skill.md','r',encoding='utf-8').read()[2400:3600])
pythonfrom docx import Document from docx.shared import Pt, Cm from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml import OxmlElement from docx.oxml.ns import qn def set_run_font(run, name="Times New Roman", size=14, bold=False): run.font.name = name run._element.rPr.rFonts.set(qn('w:eastAsia'), name) run.font.size = Pt(size) run.bold = bold def set_paragraph_font(paragraph, name="Times New Roman", size=14, bold=False): for run in paragraph.runs: set_run_font(run, name, size, bold) def add_center_title(doc, text): p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER run = p.add_run(text) set_run_font(run, size=16, bold=True) return p def add_blank(doc, n=1): for _ in range(n): p = doc.add_paragraph("") # set minimal spacing p.paragraph_format.space_after = Pt(0) p.paragraph_format.space_before = Pt(0) def add_pair_line(doc, left, right, tab_cm=9.5): p = doc.add_paragraph() pf = p.paragraph_format pf.space_before = Pt(0) pf.space_after = Pt(0) # clear existing tab stops, then add pf.tab_stops.clear_all() pf.tab_stops.add_tab_stop(Cm(tab_cm)) run = p.add_run(left) set_run_font(run) p.add_run("\t") run2 = p.add_run(right) set_run_font(run2) return p def add_single_line(doc, text): p = doc.add_paragraph() p.paragraph_format.space_before = Pt(0) p.paragraph_format.space_after = Pt(0) run = p.add_run(text) set_run_font(run) return p def set_table_borders_none(table): tbl = table._tbl tblPr = tbl.tblPr tblBorders = OxmlElement('w:tblBorders') for edge in ('top','left','bottom','right','insideH','insideV'): elem = OxmlElement(f'w:{edge}') elem.set(qn('w:val'), 'nil') tblBorders.append(elem) tblPr.append(tblBorders) def set_table_cell_margins(table, top=0.1, start=0.15, bottom=0.1, end=0.15): tbl = table._tbl tblPr = tbl.tblPr tblCellMar = OxmlElement('w:tblCellMar') for m_name, m_val in (('top', top), ('start', start), ('bottom', bottom), ('end', end)): node = OxmlElement(f'w:{m_name}') node.set(qn('w:w'), str(int(Cm(m_val)._emu/12700))) # twips approx: 1 twip=635? hmm node.set(qn('w:type'), 'dxa') tblCellMar.append(node) tblPr.append(tblCellMar) doc_ru = Document() # Set default style font style = doc_ru.styles['Normal'] style.font.name = 'Times New Roman' style._element.rPr.rFonts.set(qn('w:eastAsia'), 'Times New Roman') style.font.size = Pt(14) add_center_title(doc_ru, "СВЕДЕНИЯ") add_blank(doc_ru, 1) add_single_line(doc_ru, " ________________ с _________ года:") add_blank(doc_ru, 1) add_pair_line(doc_ru, "Год рождения:", "Место рождения:") add_blank(doc_ru, 1) add_pair_line(doc_ru, "Национальность:", "Партийность:") add_blank(doc_ru, 1) add_pair_line(doc_ru, "Образование:", "Окончил(а):") add_single_line(doc_ru, "\t\t\t-") add_blank(doc_ru, 1) add_pair_line(doc_ru, "Специальность по образованию:", "-") add_blank(doc_ru, 1) add_pair_line(doc_ru, "Ученая степень:", "Ученое звание:") add_blank(doc_ru, 1) add_single_line(doc_ru, "Какими иностранными языками владеет:") add_blank(doc_ru, 1) add_single_line(doc_ru, "Награжден(а) ли государственными наградами:") add_blank(doc_ru, 1) add_single_line(doc_ru, "Является ли депутатом (Республики, области, города, района) или членом других выборных органов:") add_blank(doc_ru, 2) # Work activity p = doc_ru.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER run = p.add_run("ТРУДОВАЯ ДЕЯТЕЛЬНОСТЬ") set_run_font(run, bold=True) add_blank(doc_ru, 1) table_work = doc_ru.add_table(rows=1, cols=2) set_table_borders_none(table_work) table_work.autofit = False table_work.columns[0].width = Cm(4.0) table_work.columns[1].width = Cm(12.0) cell0 = table_work.cell(0,0) cell1 = table_work.cell(0,1) cell0.text = "20____ г. – по н/в." cell1.text = "" # format cell text for cell in (cell0, cell1): for para in cell.paragraphs: for r in para.runs: set_run_font(r) # add some empty space (blank paragraphs) to mimic fill area add_blank(doc_ru, 10) # Relatives section add_single_line(doc_ru, " ______________________ Сведения о близких родственниках") p = doc_ru.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.LEFT run = p.add_run("СВЕДЕНИЯ") set_run_font(run, bold=True) add_blank(doc_ru, 1) table_rel = doc_ru.add_table(rows=8, cols=6) table_rel.style = 'Table Grid' table_rel.autofit = False widths = [Cm(3.0), Cm(4.2), Cm(3.5), Cm(4.2), Cm(3.5), Cm(3.0)] for i,w in enumerate(widths): table_rel.columns[i].width = w headers = ["Степень родства", "Фамилия, имя, отчество", "Год и место рождения", "Место работы и должность", "Адрес проживания", "Телефон"] for j,text in enumerate(headers): cell = table_rel.cell(0,j) cell.text = text for para in cell.paragraphs: para.paragraph_format.space_before = Pt(0) para.paragraph_format.space_after = Pt(0) for r in para.runs: set_run_font(r, bold=True, size=12) rows_labels = ["Отец", "Мать", "Брат", "Сестра", "Брат", "Сестра", "Брат"] for i,label in enumerate(rows_labels, start=1): table_rel.cell(i,0).text = label # format all cells in row for j in range(6): for para in table_rel.cell(i,j).paragraphs: para.paragraph_format.space_before = Pt(0) para.paragraph_format.space_after = Pt(0) for r in para.runs: set_run_font(r, size=12) add_blank(doc_ru, 1) # Passport section add_single_line(doc_ru, "Паспортные данные:") add_single_line(doc_ru, "Серия: ") add_single_line(doc_ru, "Номер: ") add_single_line(doc_ru, "Кем выдан: ") add_single_line(doc_ru, "Дата выдачи: ") add_single_line(doc_ru, "тел.: ") add_blank(doc_ru, 1) add_single_line(doc_ru, "Примечание: данные должны быть заполнены точно и правильно.") out_path = "/mnt/data/obeyktivka_ru.docx" doc_ru.save(out_path) out_path '/mnt/data/obeyktivka_ru.docx'
pythonfrom docx import Document from docx.shared import Pt, Cm from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml import OxmlElement from docx.oxml.ns import qn def set_run_font(run, name="Times New Roman", size=14, bold=False): run.font.name = name run._element.rPr.rFonts.set(qn('w:eastAsia'), name) run.font.size = Pt(size) run.bold = bold def add_center_title(doc, text): p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER run = p.add_run(text) set_run_font(run, size=16, bold=True) p.paragraph_format.space_before = Pt(0) p.paragraph_format.space_after = Pt(6) return p def add_blank(doc, n=1): for _ in range(n): p = doc.add_paragraph("") p.paragraph_format.space_after = Pt(0) p.paragraph_format.space_before = Pt(0) def add_pair_line(doc, left, right, tab_cm=9.5, size=14): p = doc.add_paragraph() pf = p.paragraph_format pf.space_before = Pt(0) pf.space_after = Pt(0) pf.tab_stops.clear_all() pf.tab_stops.add_tab_stop(Cm(tab_cm)) run = p.add_run(left) set_run_font(run, size=size) p.add_run("\t") run2 = p.add_run(right) set_run_font(run2, size=size) return p def add_single_line(doc, text, size=14, bold=False, align=None): p = doc.add_paragraph() if align is not None: p.alignment = align p.paragraph_format.space_before = Pt(0) p.paragraph_format.space_after = Pt(0) run = p.add_run(text) set_run_font(run, size=size, bold=bold) return p def set_table_borders_none(table): tbl = table._tbl tblPr = tbl.tblPr tblBorders = OxmlElement('w:tblBorders') for edge in ('top','left','bottom','right','insideH','insideV'): elem = OxmlElement(f'w:{edge}') elem.set(qn('w:val'), 'nil') tblBorders.append(elem) tblPr.append(tblBorders) doc_ru2 = Document() style = doc_ru2.styles['Normal'] style.font.name = 'Times New Roman' style._element.rPr.rFonts.set(qn('w:eastAsia'), 'Times New Roman') style.font.size = Pt(14) add_center_title(doc_ru2, "СВЕДЕНИЯ") add_blank(doc_ru2, 1) add_single_line(doc_ru2, " ____________________ с ___________ года:") add_blank(doc_ru2, 1) add_pair_line(doc_ru2, "Год рождения:", "Место рождения:") add_blank(doc_ru2, 1) add_pair_line(doc_ru2, "Национальность:", "Партийность:") add_blank(doc_ru2, 1) add_pair_line(doc_ru2, "Образование:", "Окончил(а):") add_single_line(doc_ru2, "\t\t\t-") add_blank(doc_ru2, 1) add_pair_line(doc_ru2, "Специальность по образованию:", "-") add_blank(doc_ru2, 1) add_pair_line(doc_ru2, "Ученая степень:", "Ученое звание:") add_blank(doc_ru2, 1) add_single_line(doc_ru2, "Какими иностранными языками владеет:") add_blank(doc_ru2, 1) add_single_line(doc_ru2, "Награжден(а) ли государственными наградами:") add_blank(doc_ru2, 1) add_single_line(doc_ru2, "Является ли депутатом (Республики, области, города, района) или членом других выборных органов:") add_blank(doc_ru2, 2) add_single_line(doc_ru2, "ТРУДОВАЯ ДЕЯТЕЛЬНОСТЬ", bold=True, align=WD_ALIGN_PARAGRAPH.CENTER) add_blank(doc_ru2, 1) table_work = doc_ru2.add_table(rows=1, cols=2) set_table_borders_none(table_work) table_work.autofit = False table_work.columns[0].width = Cm(6.0) table_work.columns[1].width = Cm(10.0) table_work.cell(0,0).text = "20____ г. – по н/в." table_work.cell(0,1).text = "" for cell in table_work.row_cells(0): for para in cell.paragraphs: para.paragraph_format.space_before = Pt(0) para.paragraph_format.space_after = Pt(0) for r in para.runs: set_run_font(r, size=14) add_blank(doc_ru2, 12) add_single_line(doc_ru2, " ______________________ о близких родственниках") add_single_line(doc_ru2, "СВЕДЕНИЯ", bold=True) add_blank(doc_ru2, 1) table_rel = doc_ru2.add_table(rows=8, cols=6) table_rel.style = 'Table Grid' table_rel.autofit = False widths = [Cm(2.2), Cm(3.2), Cm(2.7), Cm(3.5), Cm(2.7), Cm(1.5)] # sum 15.8 for i,w in enumerate(widths): table_rel.columns[i].width = w headers = ["Степень\nродства", "Фамилия, имя,\nотчество", "Год и место\nрождения", "Место работы и\nдолжность", "Адрес\nпроживания", "Телефон"] for j,text in enumerate(headers): cell = table_rel.cell(0,j) cell.text = text for para in cell.paragraphs: para.paragraph_format.space_before = Pt(0) para.paragraph_format.space_after = Pt(0) for r in para.runs: set_run_font(r, bold=True, size=11) rows_labels = ["Отец", "Мать", "Брат", "Сестра", "Брат", "Сестра", "Брат"] for i,label in enumerate(rows_labels, start=1): table_rel.cell(i,0).text = label for j in range(6): for para in table_rel.cell(i,j).paragraphs: para.paragraph_format.space_before = Pt(0) para.paragraph_format.space_after = Pt(0) for r in para.runs: set_run_font(r, size=11) add_blank(doc_ru2, 1) add_single_line(doc_ru2, "Паспортные данные:") add_single_line(doc_ru2, "Серия: ") add_single_line(doc_ru2, "Номер: ") add_single_line(doc_ru2, "Кем выдан: ") add_single_line(doc_ru2, "Дата выдачи: ") add_single_line(doc_ru2, "тел.: ") add_blank(doc_ru2, 1) add_single_line(doc_ru2, "Примечание: данные должны быть заполнены точно и правильно.", size=12) out_path2 = "/mnt/data/obeyktivka_ru.docx" doc_ru2.save(out_path2) out_path2 '/mnt/data/obeyktivka_ru.docx'
pythonfrom docx import Document from docx.shared import Pt, Cm from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml import OxmlElement from docx.oxml.ns import qn def set_run_font(run, name="Times New Roman", size=14, bold=False): run.font.name = name run._element.rPr.rFonts.set(qn('w:eastAsia'), name) run.font.size = Pt(size) run.bold = bold def add_center_title(doc, text): p = doc.add_paragraph() p.alignment = WD_ALIGN_PARAGRAPH.CENTER run = p.add_run(text) set_run_font(run, size=16, bold=True) p.paragraph_format.space_after = Pt(6) return p def add_blank(doc, n=1): for _ in range(n): '/mnt/data/obeyktivka_ru.docx'
Rus dilində düzəldilmiş variant hazırdır (sizin göndərdiyiniz fayl əsasında). (obeyktivka.docx)