Как удалить первую страницу 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. Но тогда форматирование изменится.