Запрет печати паролем
Модератор: Naeel Maqsudov
Здравствуйте. Подскажите, пожалуйста, как в Word-овском документе запретить копирование текста и вывод текста на печать.
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Для этой цели нужно использовать не Word а PDF (Cм. посты на этом форму).
И всё равно при большом желании всегда можно скопировать или распечатать
документ.
Кстати 8-й Finereader от ABBYY прекрасно распознаёт текст с экрана ...
И всё равно при большом желании всегда можно скопировать или распечатать
документ.

Кстати 8-й Finereader от ABBYY прекрасно распознаёт текст с экрана ...
В том то и дело, что требуют в Wordе, а там 150 страниц текста, очень уж не хочется просто так отдавать.Aent писал(а):Для этой цели нужно использовать не Word а PDF (Cм. посты на этом форму).
И всё равно при большом желании всегда можно скопировать или распечатать
документ.
Кстати 8-й Finereader от ABBYY прекрасно распознаёт текст с экрана ...
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
если это авторский текст - можно поступить стандартно - отправить себе заказным письмом с уведомлением о вручении. Там будет стоять дата, посылку не вскрывать, в случае чего - в суде будет серьёзный аргумент.

Требуют в электронном виде, и есть подозрение, что скинут на лево.Игорь Акопян писал(а):если это авторский текст - можно поступить стандартно - отправить себе заказным письмом с уведомлением о вручении. Там будет стоять дата, посылку не вскрывать, в случае чего - в суде будет серьёзный аргумент.
Поэтому и хочу, именно для этого документа поставить запрет на копирование текста, и на печать.
Неужели через Vba никак нельзя запретить?
Защитить докуменет в Ворде от печати можно немного... но довольно слабо...
Например, можно сделать так (для начала, во всяком случае)
1. Создать в VBA модуль класса под именем EventClass (Редактор VBA-Menu-Insert-Class - F4 - в окне свойств установить имя - EventClass)
2. В окне этого модуля класса написать следующее:
3. В молуле самой книги написать следующее:
4. Сохранить, закрыть и открыть (с активными макросами)
Если все сделано верно, то любая попытка печати документа будет перехватываться и отменяться.
Последующими шагами я бы предложил сделать:
- менять цвет или видимость (скрытый) шрифта при открыти, сохранении так, чтобы если документ открывается без активных макросов шрифт был бы белый (под цвет бумаги) или невидимый, но при активных макросах при открытии эти макросы делали бы шрифт автоматически видимым (или нужного цвета)
- защитить книгу от сохранения изменений
- защитить модули VBA от доступа
- перехватывать события выделения, копирования и изменения подобно тому, что я предложил выше.
Например, можно сделать так (для начала, во всяком случае)
1. Создать в VBA модуль класса под именем EventClass (Редактор VBA-Menu-Insert-Class - F4 - в окне свойств установить имя - EventClass)
2. В окне этого модуля класса написать следующее:
Код: Выделить всё
Public WithEvents AppWord As Word.Application
Private Sub AppWord_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
If Doc Is ThisDocument Then
MsgBox "Нельзя печатать этот документ!"
Cancel = True
End If
End Sub
Код: Выделить всё
Dim X As New EventClass
Private Sub Document_Open()
Set X.AppWord = Word.Application
End Sub
Если все сделано верно, то любая попытка печати документа будет перехватываться и отменяться.
Последующими шагами я бы предложил сделать:
- менять цвет или видимость (скрытый) шрифта при открыти, сохранении так, чтобы если документ открывается без активных макросов шрифт был бы белый (под цвет бумаги) или невидимый, но при активных макросах при открытии эти макросы делали бы шрифт автоматически видимым (или нужного цвета)
- защитить книгу от сохранения изменений
- защитить модули VBA от доступа
- перехватывать события выделения, копирования и изменения подобно тому, что я предложил выше.
Всякое решение плодит новые проблемы.
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Genyaa,
Так как работа с Clipboard реализована на уровне Windows - запретить её из
Word c разумными трудозатратами (без написания перехватчиков клавиатуры и системных вызовов) полагаю невозможным.
А возможность копирования (в.т.ч. внешними программами) делает совершенно бессмысленным перехват печати.
Вашим способом копирование не перехватишь.перехватывать события выделения, копирования и изменения подобно тому, что я предложил выше
Так как работа с Clipboard реализована на уровне Windows - запретить её из
Word c разумными трудозатратами (без написания перехватчиков клавиатуры и системных вызовов) полагаю невозможным.
А возможность копирования (в.т.ч. внешними программами) делает совершенно бессмысленным перехват печати.
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
vserg4, ваша задача принципиально не решается с использованием любых программных средств. Если документ отчуждается - нет проблемы вывести его на большой ЖК экран, сфотографировать цифровой камерой и распознать в Word, используя программу OCR (b.e. - тот же FineReader). Практика показывает, что на 200 страничный документ уходит около 4 часов работы 
Word же в принципе не даст Вам возможности защитить от копирования читаемый документ.
Резюме: Такие проблемы решаются только через суд. Поддерживаю предложение Игорь Акопян.

Word же в принципе не даст Вам возможности защитить от копирования читаемый документ.
Резюме: Такие проблемы решаются только через суд. Поддерживаю предложение Игорь Акопян.
Копирование может быть и не перхватишь ... это верно... но выделение текста перехватить можно с легкостью, а значит и ограничить копирование текста в буфер... например, можно сбрасывать любое выделение одной и более букв до нулевого количества букв в выделении (просто поставить Collapse в WindowSelectionChange)...Aent писал(а):Genyaa,
Вашим способом копирование не перехватишь.
Так как работа с Clipboard реализована на уровне Windows - запретить её из
Word c разумными трудозатратами (без написания перехватчиков клавиатуры и системных вызовов) полагаю невозможным.
А возможность копирования (в.т.ч. внешними программами) делает совершенно бессмысленным перехват печати.
Впрочем, это понятно, как я и сказал сначала, что защита это слабенькая... для маленького заварочного чайничка...
Всякое решение плодит новые проблемы.
А можно немного по подробнее про эти шаги.Genyaa писал(а): Последующими шагами я бы предложил сделать:
- менять цвет или видимость (скрытый) шрифта при открыти, сохранении так, чтобы если документ открывается без активных макросов шрифт был бы белый (под цвет бумаги) или невидимый, но при активных макросах при открытии эти макросы делали бы шрифт автоматически видимым (или нужного цвета)
- защитить книгу от сохранения изменений
- защитить модули VBA от доступа
- перехватывать события выделения, копирования и изменения подобно тому, что я предложил выше.