Как удалить первую страницу word через python

Я попробовал сделать нумерацию с второго страницы, но добавляются пустая страница(первая страница). Как удалить первую пустую страницу?

Код:

import docx
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml import OxmlElement, ns
from data import post_data
from docx.enum.section import WD_SECTION

DEFAULT_FONT_NAME = "Times New Roman"

# Функция для создания элемента
def create_element(name):
    return OxmlElement(name)

# Функция для создания атрибута
def create_attribute(element, name, value):
    element.set(ns.qn(name), value)

# Функция для добавления номера страницы
def add_page_number(section):
    # Получаем параграф из нижнего колонтитула
    p = section.footer.paragraphs[0]
    p.alignment = 1
    p.style.font.size = Pt(12)
    p.style.font.name = DEFAULT_FONT_NAME

    # Создаем текстовый элемент для номера страницы
    run = p.add_run()
    fldChar1 = create_element('w:fldChar')
    create_attribute(fldChar1, 'w:fldCharType', 'begin')

    instrText = create_element('w:instrText')
    create_attribute(instrText, 'xml:space', 'preserve')
    instrText.text = "PAGE"

    fldChar2 = create_element('w:fldChar')
    create_attribute(fldChar2, 'w:fldCharType', 'end')

    # Добавляем элементы в параграф для форматирования номера страницы
    run._r.append(fldChar1)
    run._r.append(instrText)
    run._r.append(fldChar2)

# Ваш существующий код
def add_heading(document, text, level=1):
    heading = document.add_heading(text, level=level)
    heading.bold = True
    for run in heading.runs:
        run.font.name = 'Times New Roman'
        run.font.size = Pt(16)
        run.font.color.rgb = RGBColor(0, 0, 0)
        run.text = run.text.upper()
    heading.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

def add_subheading(document, text, level=2):
    heading = document.add_heading(level=level)
    heading_run = heading.add_run(text)
    for run in heading.runs:
        run.font.name = 'Times New Roman'
        run.font.size = Pt(14)
        run.font.color.rgb = RGBColor(0, 0, 0)
    heading.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

def add_text(document, text):
    style = document.styles['Normal']
    font = style.font
    font.name = 'Times New Roman'
    font.size = Pt(14)
    style.paragraph_format.line_spacing = 1.5
    style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY

    paragraphs = text.split("\n")
    for paragraph_text in paragraphs:
        paragraph = document.add_paragraph()
        paragraph.add_run("\t" + paragraph_text)
        paragraph.paragraph_format.right_indent = docx.shared.Inches(-0.590551)

theme, subtopics, texts = post_data()

doc = Document()
doc.sections[0].top_margin = docx.shared.Cm(1.5)

# Добавляем раздел, из которого мы хотим получить номера страниц
doc.add_section(WD_SECTION.NEW_PAGE)

# Добавляем текст на первой странице
doc.sections[1].footer.is_linked_to_previous = False
#doc.add_paragraph("text of my first page")

add_heading(doc, subtopics[0])
add_text(doc, texts[0])
doc.add_page_break()

add_heading(doc, "ГЛАВА 1. " + subtopics[1])
add_subheading(doc, "1.1. " + subtopics[2])
add_text(doc, texts[1])
doc.add_page_break()

add_subheading(doc, "1.2. " + subtopics[3])
add_text(doc, texts[2])
doc.add_page_break()

add_subheading(doc, "1.3. " + subtopics[4])
add_text(doc, texts[3])
doc.add_page_break()

add_heading(doc, "ГЛАВА 2. " + subtopics[5])
add_subheading(doc, "2.1. " + subtopics[6])
add_text(doc, texts[4])
doc.add_page_break()

add_subheading(doc, "2.2. " + subtopics[7])
add_text(doc, texts[5])
doc.add_page_break()

add_subheading(doc, "2.3. " + subtopics[8])
add_text(doc, texts[6])
doc.add_page_break()

add_heading(doc, subtopics[9])
add_text(doc, texts[7])
doc.add_page_break()

add_heading(doc, subtopics[10])
doc.add_paragraph()
bibliography = texts[8].split("\n")
for i, reference in enumerate(bibliography, start=1):
    doc.add_paragraph(f"{i}. {reference.strip()}")


# Добавляем номера страниц
add_page_number(doc.sections[1])

doc.save(theme + ".docx")

Я попробовал конвертировать на pdf и удалить первую страницу и снова конвертировать на word. Но тогда форматирование изменится.


Ответы (0 шт):