Перейти к содержимому
Ghostchars

Очистить документ

DOCX, ODT, HTML, Markdown или обычный текст. Файл открывается в вашем браузере и никуда не отправляется: отправлять его просто некуда.

  • Работает в браузере
  • DOCX · ODT · HTML · MD · TXT
  • Исходный файл не меняется никогда

Перетащите файл сюда

DOCX, ODT, HTML, Markdown или обычный текст, до 25 МБ.

Что проверяется в каждом формате

Текстовые узлы очищаются в любом формате. Что ещё попадёт в отчёт, зависит от того, что формат умеет прятать.

ФорматОчищаетСообщает
DOCXТекст в документе, колонтитулах, сносках, концевых сносках и примечаниях, включая символы, записанные числовыми сущностями.Скрытые фрагменты, белое по белому и мелкий текст, исправления, примечания, сеансы rsid, метаданные об авторстве, пользовательские свойства, макросы, медиафайлы.
ODTКаждый текстовый узел content.xml. Атрибуты не трогаются никогда.Аннотации, области исправлений, скрытые стили, generator, авторы, циклы редактирования, поля, заданные пользователем.
HTMLТолько текстовые узлы. Теги, атрибуты, комментарии, script и style проходят побайтово без изменений.Комментарии, элементы с display:none / hidden / font-size:0, метатег generator, подозрительные символы в атрибутах alt/title/aria.
Markdown · TXTФайл целиком. Концы строк сохраняются, если вы не попросите свести их.Кроме самих символов, сообщать нечего: в обычном тексте прятаться просто негде.

Как это работает

  1. Выберите файл

    Перетащите .docx, .odt, .html, .md или .txt на страницу или выберите файл кнопкой. Его читает браузер; никуда ничего не уходит.

  2. Прочитайте отчёт

    Каждый скрытый символ показан с позицией, кодовой позицией и именем Unicode, рядом с тем, что файл прячет вокруг текста: невидимые фрагменты, примечания, исправления, метаданные об авторстве.

  3. Решите, что удалять

    По умолчанию удаляются символы, которым в прозе не место нигде. Тринадцать дополнительных переключателей, а также метаданные и rsid, включаются вручную, потому что каждый меняет что-то видимое.

  4. Скачайте очищенную копию

    Новый файл создаётся в памяти и предлагается к скачиванию. Ваш оригинал не меняется никогда.

Посмотрите отчёт по документу

Файл .docx открывается в браузере, и отправлять его просто некуда. Отчёт сначала считает скрытые знаки в тексте по кодовым позициям, а затем переходит к тому, что прячется вокруг текста: исправления, примечания и метаданные авторства, пришедшие вместе с файлом. О них сообщается, но за вас их никто не удаляет.

Смотреть

Чтение отчёта по документу

30 секунд · Субтитры включены

Чего это не делает

  • PDF. Текст в PDF нельзя безопасно переписать на месте; проверка и удаление метаданных запланированы, а редактирование нет.
  • Изображения. EXIF, XMP и C2PA относятся к другой задаче и другому инструменту.
  • Он никогда не удаляет скрытый фрагмент, исправление или примечание. О них сообщается, чтобы решали вы.
  • Статистические водяные знаки вроде SynthID-Text живут в выборе слов, а не в символах. Здесь их ничто не трогает.

То же самое в командной строке

clean_file.py остаётся эталонной реализацией, портом которой является эта страница. Она работает офлайн, принимает те же флаги и имеет режим --check для pre-commit-хуков.

./clean_file.py --show essay.docx
./clean_file.py -i --metadata --rsids essay.docx
./clean_file.py -s --punct essay.docx

Вопросы о документах

Мой документ куда-нибудь отправляется?

Нет. Ghostchars работает как статический сайт без бэкенда. Файл читает ваш браузер через FileReader API, обрабатывает его во вкладке, и очищенная копия создаётся в памяти. Ничего не передаётся, и нет сервера, который мог бы это принять.

Какие форматы поддерживаются?

DOCX, ODT, HTML, Markdown и обычный текст. DOCX и ODT устроены как ZIP-пакеты с XML, которые браузер распаковывает и запаковывает обратно; в HTML очищаются только текстовые узлы; Markdown и обычный текст очищаются целиком.

Почему не PDF?

PDF хранит позиции глифов, а не редактируемые фрагменты текста, поэтому замена символа может изменить вёрстку или сломать файл. Отчёт по PDF и удаление его метаданных выполнимы и запланированы; а вот переписывать его текст втихую инструменту не следует.

Почему скрытые фрагменты и примечания только в отчёте, а не удалены?

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

Что такое rsid и зачем его удалять?

Word помечает каждый сеанс правки случайным восьмизначным шестнадцатеричным идентификатором ревизии и проставляет его на фрагментах, набранных в этом сеансе. Документ, у которого на весь текст один-два разных rsid, был вставлен за один раз, а не написан со временем. Их удаление убирает и этот вывод.

Word откроет очищенный файл?

Да. Каждая часть пакета сохраняет своё место и способ сжатия; переписывается только текст внутри изменившихся узлов, а там, где очистка иначе позволила бы Word проглотить краевой пробел, добавляется xml:space="preserve". С --metadata часть с пользовательскими свойствами удаляется, из-за чего остаётся висячая связь, которую Word терпит; тот же размен делает и инструмент командной строки.

А если скрытый символ записан сущностью?

Он всё равно будет пойман. Каждый текстовый узел декодируется из сущностей перед очисткой и экранируется обратно после неё, поэтому пробел нулевой ширины, записанный как ​, удаляется точно так же, как обычный.

Анонимная статистика?

Ghostchars обрабатывает ваш текст в браузере и никуда его не отправляет. Мы хотели бы считать просмотры страниц через собственный сервер аналитики, почти без cookie: содержимое не собирается никогда.