Stop Printing

J

Jame

Problem: I want to put a Visual Basic command in the
Open_Document() command of selected Word documents which
will stop printing of that document alone! It will be
something like CurrentDocument.Print.Enabled = False but I
can not fathom it out. Conversely there will be an
EnablePrint command in theC lose_Document() command.

Why you may ask? (Well even if you didn't here is the
reason).
We want to put our Procedure Manual on line. This must be
read only so that people don't go printing off copies then
following that version of the procedures for ever more.
Crude solution is to put a header/footer saying "Valid on
23/09/03 for one day only" or similar! Not very good really

Cheers

James
 
J

Jonathan West

Hi James,

Any kind of security that you might try to put into the document can be
evaded in about a minute by a user who is sufficiently knowledgeable and
determined.

I suspect that you are trying to do this in order to have your documentation
and procedures ready for an ISO 9000 quality systems inspection.

For documentation to be ISO 9000-compliant, it is not necessary for you to
ensure that there are no uncontrolled copies of controlled documents lying
around. All that is necessary is for uncontrolled copies to be readily
identifiable as such, and for the controlled up-to-date version to be easily
accessible in a location known to all who need it.

This requirement is fully met if you place a note in the footer of every
page of the document, saying words to the effect "Printed copies of this
document are uncontrolled and should not be assumed to be current. The
current version can be found at location xyz" where xyz is the full pathname
of the file, in a folder which is accessible read-only to all relevant
people, or a location on the company intranet.

ISO 9000 and good management practice doesn't require that you make it
impossible for people to do things wrong - if you get too restrictive,
people find ways round you out of sheer bloody-mindedness. Much better is to
find ways of making it easier to do things right and to help them understand
what is better about the "right" way.

--
Regards
Jonathan West - Word MVP
MultiLinker - Automated generation of hyperlinks in Word
Conversion to PDF & HTML
http://www.multilinker.com
 
K

Kemosabe

Hi James,

Any kind of security that you might try to put into the document can be
evaded in about a minute by a user who is sufficiently knowledgeable and
determined.

I suspect that you are trying to do this in order to have your documentation
and procedures ready for an ISO 9000 quality systems inspection.

For documentation to be ISO 9000-compliant, it is not necessary for you to
ensure that there are no uncontrolled copies of controlled documents lying
around. All that is necessary is for uncontrolled copies to be readily
identifiable as such, and for the controlled up-to-date version to be easily
accessible in a location known to all who need it.

This requirement is fully met if you place a note in the footer of every
page of the document, saying words to the effect "Printed copies of this
document are uncontrolled and should not be assumed to be current. The
current version can be found at location xyz" where xyz is the full pathname
of the file, in a folder which is accessible read-only to all relevant
people, or a location on the company intranet.

ISO 9000 and good management practice doesn't require that you make it
impossible for people to do things wrong - if you get too restrictive,
people find ways round you out of sheer bloody-mindedness. Much better is to
find ways of making it easier to do things right and to help them understand
what is better about the "right" way.

Jonathan West is absolutely correct. However, if you are intent on
stopping most people from printing, there are at least two things that
you can do.

1. Put macros named "FilePrint" and "FilePrintDefault" in a module in
the document that you don't want printed. Put no code in the macros,
or put this code in the macros:

MsgBox ThisDocument.Name, vbCritical, "Printing this document is not
allowed!"

These macros will replace the built-in "FilePrint" and
"FilePrintDefault" word commands (accessible through the menu and
toolbar buttons) for that particular document only. This is true if
these macros are stored in the document. If they are stored in
Normal.dot, then they will replace them in all documents. Now,
anytime sombody attempts to print your document, they will get your
message instead of successfully printing (or they will get no action
at all if you choose to leave no code in the substitute macros).

To see a list of all Word Commands that can be substituted by macros
of the same name, from the Tools|Macro|Macros... menu, in the "Macros
in:" combobox, select "Word Commands".

2. Create a pdf file from your document if you have Adobe Acrobat,
and set the security settings to forbid printing.
 
J

JGM

Kemosabe said:
Jonathan West is absolutely correct. However, if you are intent on
stopping most people from printing, there are at least two things that
you can do.

1. Put macros named "FilePrint" and "FilePrintDefault" in a module in
the document that you don't want printed. Put no code in the macros,
or put this code in the macros:
MsgBox ThisDocument.Name, vbCritical, "Printing this document is not
allowed!"

These macros will replace the built-in "FilePrint" and
"FilePrintDefault" word commands (accessible through the menu and
toolbar buttons) for that particular document only. This is true if
these macros are stored in the document. If they are stored in
Normal.dot, then they will replace them in all documents. Now,
anytime sombody attempts to print your document, they will get your
message instead of successfully printing (or they will get no action
at all if you choose to leave no code in the substitute macros).

To see a list of all Word Commands that can be substituted by macros
of the same name, from the Tools|Macro|Macros... menu, in the "Macros
in:" combobox, select "Word Commands".
Very clever but totally useless! Sorry! All I have to do is use the Insert
file command from another file, or do a CTRL-A, CTRL-C and then CTRL-V in
another document, or use a INCLUDETEXT Field.... there is no way you I know
of that can stop someone from printing a Word document if they really want
to....
2. Create a pdf file from your document if you have Adobe Acrobat,
and set the security settings to forbid printing.

This, on the other hand, is absolutely true... (don't forget to set a
password or I could chage the settings with Acrobat Write...) still... I
could do a PrintScreen and play with the Pasted result in Photoshop to
enhance the result and print it anyway...

It is really hard to stop someone from printing... all you can do is make it
diifficult so they may not bother with it!

Good luck
 
J

Jonathan West

JGM said:
Very clever but totally useless! Sorry! All I have to do is use the Insert
file command from another file, or do a CTRL-A, CTRL-C and then CTRL-V in
another document, or use a INCLUDETEXT Field.... there is no way you I know
of that can stop someone from printing a Word document if they really want
to....

You don't even need to do an Insert File. With the document open, press
Alt-F8 to bring up the macros dialog, set "Macros in" to "Word Commands",
and then scroll down until you find FilePrint, and double-click.

You could try to remove the Alt-F8 key combination and the Macros entry from
the Tools menu, but there are ways of putting them back.

This, on the other hand, is absolutely true... (don't forget to set a
password or I could chage the settings with Acrobat Write...) still... I
could do a PrintScreen and play with the Pasted result in Photoshop to
enhance the result and print it anyway...

It is really hard to stop someone from printing... all you can do is make it
diifficult so they may not bother with it!

For documentation of this kind I would be quite inclined to use PDF anyway,
but without print protection enabled. The reason is that with Acrobat
Reader, it is that much harder to make accidental modifications of the text
before printing. If people find it easer to understand the document by
reading a paper copy, there is no reason why they should be prevented from
ding that, so long as they realise that when they have to refer to it, they
should check the online version.

--
Regards
Jonathan West - Word MVP
MultiLinker - Automated generation of hyperlinks in Word
Conversion to PDF & HTML
http://www.multilinker.com
 
K

Kemosabe

You don't even need to do an Insert File. With the document open, press
Alt-F8 to bring up the macros dialog, set "Macros in" to "Word Commands",
and then scroll down until you find FilePrint, and double-click.

You could try to remove the Alt-F8 key combination and the Macros entry from
the Tools menu, but there are ways of putting them back.

You guys are both right. Any document can be printed by a person with
the knowledge and determination to do so. If it can be viewed, it can
be printed, it is that simple. But I assume that he is talking about
the ordinary reader, not the person with the knowledge and desire to
circumvent his security.
For documentation of this kind I would be quite inclined to use PDF anyway,
but without print protection enabled. The reason is that with Acrobat
Reader, it is that much harder to make accidental modifications of the text
before printing. If people find it easer to understand the document by
reading a paper copy, there is no reason why they should be prevented from
ding that, so long as they realise that when they have to refer to it, they
should check the online version.

Good point. Just protect the document from modifications, and his
intent is achieved.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top