Как скопировать содержимое одного docx в другой docx в определенной позиции
Я хотел скопировать содержимое одного docx/документа в другой docx/документ в определенной позиции.
Примечание: контент может содержать текстовые данные с цветом фона, таблицы, smartart и изображения.
Что я уже пробовал:
def add_para_data(output_doc_name, paragraph): """ Write the run to the new file and then set its font, bold, alignment, color etc. data. """ output_para = output_doc_name.add_paragraph() for run in paragraph.runs: # output_run = output_para.add_run(run.text) output_run = output_para.add_run() # Run's bold data output_run.bold = run.bold # Run's italic data output_run.italic = run.italic # Run's underline data output_run.underline = run.underline # Run's color data output_run.font.color.rgb = run.font.color.rgb # Run's font data output_run.font.name = run.font.name output_run.font.highlight_color = run.font.highlight_color output_run.font.size = run.font.size # output_run.style.name = run.style.name output_run.style = run.style # Paragraph's alignment data output_para.style = paragraph.style output_para.alignment = paragraph.alignment output_para.paragraph_format.alignment = paragraph.paragraph_format.alignment output_para.paragraph_format.widow_control = paragraph.paragraph_format.widow_control
Richard MacCutchan
И в чем же вопрос?
Raman_patil
Как скопировать абзац docx в другой docx и сохранить все стили
Richard MacCutchan
Вам нужно изучить документацию для пакета, который вы используете, чтобы увидеть, как он идентифицирует различные типы данных.
Raman_patil
Я просмотрел документацию python-docx.
Он читает только содержимое и не идентифицирует изображения и таблицы внутри абзаца между текстовыми данными. Python-docx будет идентифицировать все изображения и таблицы, присутствующие во всем документе, не особенно с абзацем.
Я использовал еще несколько модулей, пожалуйста, ознакомьтесь с наблюдениями ниже:
1. Python-docx:
• Возможность считывания текстовых данных путем итерации по абзацу, однако абзац не будет обнаруживать таблицу и изображения в ней
• Мы должны использовать объект document, который будет обнаруживать все таблицы и изображения, присутствующие во всем документе
2. Тика:
• Tika считывает как текстовые данные, так и метаданные(например, изображения) в отдельной переменной
• Тика читает весь контент в одной строке, так что перебирать его будет невозможно
3. Win32:
• Невозможно прочитать данные в форматах
4. Конвертации docx в XML:
• Пули не копировались вместе с содержимым
• Изображение будет присутствовать в другом каталоге, который должен быть скопирован отдельно в выходной файл, даже если мы сможем получить путь к изображению, мы не сможем добавить его в определенную позицию в выходном файле docx
5. преобразование docx в HTML:
• Невозможно скопировать маркерную точку
• Изображение хранится в html-странице с кодировкой Base64, которая не будет храниться в каталоге
• Base64 в основном используется для представления данных в строковом формате ASCII
6. Байтезио:
• Возможность чтения и записи полных данных, однако эти данные не будут повторяться строка за строкой, пожалуйста, ознакомьтесь с документацией
7. Мамонт:
• Похоже на синтаксический анализ HTML
8. Pydocx:
• Похоже на синтаксический анализ HTML
Richard MacCutchan
Похоже, вам придется найти какой-то другой способ их чтения. Если вы знаете C#, вы можете использовать предоставленные Microsoft библиотеки взаимодействия.
Raman_patil
Я читаю входные разделы/абзацы файла docx, а затем копирую-вставляю содержимое в него в другой файл docx в определенном разделе. Контент содержит изображения, таблицы и маркированные точки между данными. Однако я получаю только текст, а не изображения, таблицы и маркированные точки, присутствующие между текстом.
Модуль Tika способен читать весь контент, но весь docx приходит в одной строке, поэтому я не могу перебирать раздел, а также не могу редактировать(копировать-вставлять содержимое) выходной файл docx.
Пробовал использовать python-docx, тогда как он читает только контент и не идентифицирует изображения и таблицы внутри абзаца между текстовыми данными. Python-docx будет идентифицировать все изображения и таблицы, присутствующие во всем документе, не особенно с абзацем
Попробовал распаковать word в XML, но XML содержит изображения в отдельной папке. Кроме того, код не будет идентифицировать пули
Я ожидал, что в выходном файле все разделы будут заменены скопированным содержимым входного раздела(изображения, таблицы, смарт-арт и форматы)
Выходной файл содержит только текстовые данные.