Как сделать из doc в docx: Конвертировать DOC (WORD) в DOCX (WORD) онлайн — Convertio

Отслеживаем изменения в doc и docx при помощи Python / Хабр

Здравствуйте, уважаемые коллеги! Прошу не судить строго, так как это моя первая статья.

У нас появилась необходимость отслеживать изменения в doc и docx файлах с фиксацией имени пользователя, который внес эти изменения. Сами файлы находятся в расшаренной папке (да, да, общие папки это зло, но убедить у меня не получилось) и необходимо знать кто внес изменения. Подробнее под катом.

Сами изменения в файлах будем отслеживать при помощи watchdog (pip install watchdog).

Код для отслеживания всех изменений:

# Для отслеживания изменений
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# Отслеживаем изменения
class Watcher:
    def __init__(self, path):
        self.observer = Observer()
        self.path = path
    def run(self):
        event_handler = Handler()
        self.observer.schedule(event_handler, self.path, recursive=True)
        self. observer.start()
        try:
            while True:
                time.sleep(1)
        except:
            self.observer.stop()
            print("Error")
        self.observer.join()
class Handler(FileSystemEventHandler):
    @staticmethod
    def on_any_event(event):
        if event.is_directory:
            return None
        print(
            "[{}] noticed: [{}] on: [{}] ".format(
                time.asctime(), event.event_type, event.src_path
            )
        )
        
if __name__ == "__main__":
    w = Watcher('C:\\Users\\user\\Desktop\\')
    w.run()

Такой код позволяет отслеживать изменения во всех файлах (не показывая кто изменил) на рабочем столе пользователя. Естественно, папку «C:\Users\user\Desktop\» эту указал для примера.

Пример вывода:

[Mon Dec 5 14:32:37 2022] noticed: [modified] on: [C:\Users\user\Desktop\Документ Microsoft Word.docx]

Тут нет информации о том, кто изменил файл. Эту информацию можно получить из самого docx файла.

Нам нужно отслеживать изменения именно в doc и docx файлах, поэтому переделаем код:

# -*- coding: utf-8 -*-
# Для атрибутов файла
import docx
# Для отслеживания изменений
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# Отслеживаем изменения
class Watcher:
    def __init__(self, path):
        self.observer = Observer()
        self.path = path
    def run(self):
        event_handler = Handler()
        self.observer.schedule(event_handler, self.path, recursive=True)
        self.observer.start()
        try:
            while True:
                time.sleep(1)
        except:
            self.observer.stop()
            print("Error")
        self.observer.join()
class Handler(FileSystemEventHandler):
    @staticmethod
    def on_any_event(event):
        # if event.is_directory:
        #     return None
        # print(
        #     "[{}] noticed: [{}] on: [{}] ".format(
        #         time.asctime(), event.
event_type, event.src_path # ) # ) # Получаем атрибуты файла if '.tmp' in event.src_path: return None try: document = docx.Document(docx = event.src_path) core_properties = document.core_properties print(f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}') except: pass if __name__ == "__main__": w = Watcher('C:\\Users\\user\\Desktop\\') w.run()

В данном примере изменения просто печатаются в консоль при помощи строки:

print(f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}’)

Пример вывода:

Иванов Иван Иванович в 2022-12-05 07:35:00 модифицировал файл C:\Users\user\Desktop\Документ Microsoft Word.docx

Для журналирования можно использовать простейшую запись в файл:

f = open('change-doc.log','w')  # открытие в режиме записи
f. write(f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}\n')  # запись в файл
f.close()  # закрытие файла

Или можно отправлять изменения на почту (если это востребовано):

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
 
fromaddr = "[email protected]"
toaddr = "[email protected]"
mypass = "password"
 
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = f'Модифицирован файл {event.src_path}'
 
body = f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}'
msg.attach(MIMEText(body, 'plain'))
 
server = smtplib.SMTP_SSL('smtp.mail.ru', 465)
server.login(fromaddr, mypass)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

Также приведу полный список атрибутов docx файла, которые можно таким же образом получить:

file_name = 'C:\\Users\\user\\Desktop\\123.docx'
document = docx. Document(docx = file_name)
core_properties = document.core_properties
print('author', core_properties.author)
print('created', core_properties.created)
print('last_modified_by', core_properties.last_modified_by)
print('last_printed', core_properties.last_printed)
print('modified', core_properties.modified)
print('revision', core_properties.revision)
print('title', core_properties.title)
print('category', core_properties.category)
print('comments', core_properties.comments)
print('identifier', core_properties.identifier)
print('keywords', core_properties.keywords)
print('language', core_properties.language)
print('subject', core_properties.subject)
print('version', core_properties.version)
print('keywords', core_properties.keywords)
print('content_status', core_properties.content_status)

Спасибо за внимание!!!

Что такое файл .DOCX и чем он отличается от файла .DOC в Microsoft Word?

На протяжении большей части своей истории Microsoft Word использовал собственный формат для сохраненных файлов, DOC. Начиная с 2007 года с обновленной версией Word (и Microsoft Office), формат сохранения по умолчанию был изменен на DOCX. Это была не просто запоздалая «крайняя» версия формата 1990-х годов — дополнительный X означает стандарт Office Open XML. Какая разница, и какой вы должны использовать?

DOC — это формат документа, используемый Microsoft Word, а DOCX — его преемник. Оба относительно открыты, но DOCX более эффективен и создает меньшие, менее испорченные файлы. Если предоставляется выбор, используйте DOCX. DOC необходим, только если файл будет использоваться в версиях Word до 2007 года.

Краткая история формата DOC

Microsoft Word начал использовать формат DOC и расширение файла более 30 лет назад в самом первом выпуске Word для MS-DOS. Как расширение явно для проприетарного процессора документов Microsoft, этот формат также был проприетарным: Word была единственной программой, которая официально поддерживала файлы DOC, пока Microsoft не открыла спецификацию в 2006 году, после чего она была переработана.

Microsoft Word использует формат файла DOC более 30 лет.

В 90-х и начале 2000-х различные конкурирующие продукты могли работать с файлами DOC, хотя некоторые из более экзотических форматов и опций Word не были полностью поддержаны в других текстовых процессорах. Так как Office и Word были де-факто стандартами для офисных пакетов и текстовых процессоров, соответственно, закрытая природа формата файлов, несомненно, помогла Microsoft сохранить свое господство над такими продуктами, как WordPerfect от Corel. С 2008 года Microsoft несколько раз выпускала и обновляла спецификацию формата DOC для использования в других программах, хотя не все расширенные функции Word поддерживаются открытой документацией.

После 2008 года формат DOC был интегрирован в платные и бесплатные программы обработки текста от многих поставщиков. Это значительно упростило работу со старыми форматами текстовых процессоров, и многие пользователи по-прежнему предпочитают сохранять в старом стандарте DOC, если нет вероятности, что другу или клиенту со старой версией Microsoft Office может понадобиться открыть его.

Введение в Office Open XML (DOCX)

Под давлением растущей конкуренции свободного и открытого программного обеспечения с открытым исходным кодом и его конкурирующего формата открытых документов (ODF) Microsoft подтолкнула к принятию еще более широкого открытого стандарта в начале 2000-х годов. Кульминацией этого стала разработка формата файлов DOCX вместе с его компаньонами, такими как XLSX для электронных таблиц и PPTX для презентаций.

Стандарты были представлены под названием «Office Open XML» (никакого отношения к программе Open Office), поскольку форматы были основаны на расширяемом языке разметки, а не на более старом и менее эффективном двоичном формате. Этот язык позволил получить несколько преимуществ, в частности, меньший размер файла, меньшую вероятность повреждения и лучший внешний вид сжатых изображений.

Основанный на XML формат DOCX стал файлом сохранения по умолчанию для Word в версии программного обеспечения 2007 года. В то время многие пользователи полагали, что новый формат DOCX и его современники Microsoft Office были всего лишь средством для Microsoft отказаться от старых версий программного обеспечения и продавать новые копии, поскольку старые версии Word и Office не могли читать новый XML файлы. Это было не совсем так; Word 2003 может читать специальные форматы файлов Word XML, и обновления совместимости были позже применены к другим версиям. Но в любом случае некоторые пользователи вручную сохраняли файлы в более старом стандарте DOC вместо DOCX для совместимости … несколько иронично, поскольку он был более совместим со старыми версиями Word, а не с другими кроссплатформенными инструментами, такими как Open Office Writer ,

Современные текстовые процессоры поддерживают, помимо прочего, форматы DOC и DOCX.

Десять лет спустя DOCX стал новым стандартом де-факто, хотя он не настолько универсален, как прежний формат файлов DOC, благодаря конкурентам, таким как ODF, и общему снижению использования традиционных текстовых процессоров.

Какой из них вы должны использовать?

Этот же документ является лишь частью размера в формате DOCX по сравнению со старым DOC.

DOCX — лучший выбор практически для любой ситуации. Формат создает небольшие, легкие файлы, которые легче читать и передавать. Открытый характер стандарта Office Open XML означает, что он может быть прочитан практически любым полнофункциональным текстовым процессором, включая онлайн-инструменты, такие как Google Docs. Единственной причиной использования старого формата файлов DOC сейчас является восстановление некоторых файлов старше десяти лет или работа с очень устаревшим текстовым процессором. В любом случае, было бы лучше повторно сохранить файл в DOCX или в каком-либо другом современном стандарте, таком как ODF, для простого преобразования.

Изображение предоставлено: WinWorld

Преобразовать DOC в DOCX Python

Преобразовать DOC в DOCX с помощью Python

Нужно преобразовать файлы DOC в DOCX программно? С помощью Aspose.Words для Python через .NET любой разработчик может преобразовать DOC в формат DOCX всего несколькими строками кода Python.

Современный API Python для обработки документов создает DOCX из DOC с высокой скоростью. Проверьте качество преобразования DOC в DOCX прямо в браузере. Мощная библиотека Python позволяет конвертировать файлы DOC во многие популярные форматы.

Сохранить DOC как DOCX в Python

В следующем примере показано, как преобразовать DOC в DOCX в Python.

Следуйте простым шагам, чтобы преобразовать файл DOC в формат DOCX. Прочитайте файл DOC с локального диска, затем просто сохраните его как DOCX, указав нужный формат файла по расширению DOCX. Как для чтения DOC, так и для записи DOCX вы можете использовать полные имена файлов. Содержимое и форматирование выходного DOCX будут идентичны исходному документу DOC.

Входной файл

Загрузить файл

Загрузите файл, который хотите конвертировать

Выполнить код

Выходной формат

DOCXPDFMDHTMLTXTDOCDOTDOCMDOTXDOTMRTFEPUBPSPCLMHTMLXHTMLODTOTTXPSPNGBMPEMFGIFSVGTIFFJPG

Выберите целевой формат из списка

 импортировать aspose.words как aw

документ = aw. Document("Ввод.doc")
doc.save("Вывод.docx")
 

импортировать aspose.words как aw документ = aw.Document("Ввод.doc") doc.save("Вывод.docx") импортировать aspose.words как aw doc = aw.Document(Input.doc) для страницы в диапазоне (0, doc.page_count): ExtractedPage = doc.extract_pages(страница, 1) ExtractedPage.save(f"Output_{page + 1}.docx") импортировать aspose.words как aw документ = aw.Документ() строитель = aw.DocumentBuilder (док) builder.insert_image("Ввод.doc") doc.save("Вывод.docx") импортировать aspose.words как aw документ = aw.Документ() строитель = aw.DocumentBuilder (док) shape = builder.insert_image("Input.doc") shape.image_data.save("Вывод.docx")

Выполнить код

Как преобразовать DOC в DOCX

  1. Установите «Aspose.Words для Python через .NET».
  2. Добавьте ссылку на библиотеку (импортируйте библиотеку) в свой проект Python.
  3. Откройте исходный файл DOC в Python.
  4. Вызвать метод ‘save()’, передав имя выходного файла с расширением DOCX.
  5. Получить результат преобразования DOC в формате DOCX.

Библиотека Python для преобразования DOC в DOCX

Мы размещаем наши пакеты Python в репозиториях PyPi. Следуйте пошаговым инструкциям по установке Aspose.Words для Python через .NET в среду разработки.

Системные требования

Этот пакет совместим с Python 3.5, 3.6, 3.7, 3.8 и 3.9.. Если вы разрабатываете программное обеспечение для Linux, ознакомьтесь с дополнительными требованиями для gcc и libpython в документации по продукту.

Вы можете конвертировать DOC во многие другие форматы файлов:

Конвертер DOC в DOCX • Онлайн и бесплатно • MConverter

Уронить Нажмите, чтобы выбрать Файлы DOC здесь

Или Обзор

Чтобы выбрать несколько, удерживайте и перетащите значки файлов

Как преобразовать DOC в DOCX?

Вы можете преобразовать DOC в DOCX с помощью MConverter в три простых шага:

  1. Выберите файлы DOC на вашем устройстве

    В верхней части этой страницы перетащите файлы DOC.
    Вы также можете щелкнуть, чтобы выбрать файлы DOC, используя средство выбора файлов вашей операционной системы.
    Другой способ — нажать сочетание клавиш Ctrl+V (⌘+V на Mac), чтобы вставить скопированный файл DOC в буфер обмена.
    Также поддерживается преобразование папки с файлами DOC в DOCX: просто вставьте или перетащите ее.

  2. Нажмите или коснитесь DOCX из списка целевых форматов

    Кроме того, вы можете использовать поле поиска, чтобы быстро найти нужный формат, будь то DOCX или что-то еще.

  3. Загрузите ваши файлы DOCX после того, как MConverter закончит их обработку

    Существует возможность автоматической загрузки преобразованных файлов DOCX, поэтому вам не нужно нажимать значок загрузки для каждого DOCX.

    На настольных платформах вы можете загрузить файлы DOCX в другую папку, нажав СОХРАНИТЬ В…
    Вы также можете увидеть значок общего доступа. Используйте его, чтобы напрямую делиться DOCX с другими приложениями.


Общие вопросы о преобразовании DOC в DOCX

Могу ли я массово конвертировать DOC в DOCX?

Да, MConverter поддерживает одновременное пакетное преобразование нескольких DOC в DOCX. Вы даже можете перетаскивать папки, содержащие DOC, для преобразования в DOCX.
Вставка DOC-файлов и папок, скопированных в буфер обмена, также работает: используйте Ctrl+V.

Могу ли я преобразовать файл DOC в DOCX, если его размер составляет 1 ГБ?

Да, с MConverter Premium вы можете конвертировать большие файлы DOC, до 1 гигабайта каждый.

Бесплатная версия позволяет конвертировать файлы размером до 100 МБ. Если вам нужно конвертировать файлы DOC размером более 100 мегабайт, попробуйте MConverter Premium.

Безопасно ли конвертировать DOC в DOCX с помощью MConverter?

Да, мы шифруем ваше соединение с использованием отраслевых стандартов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *