I don't really know where to put out this question. Because it touches several subjects. We've got a Sharepoint 2010 site where we're trying to build a document Library for thousands of documents. There are workflows of approval in there to make sure the quality of each document stays intact.

Now, the problem lies within certain documents that's not supposed to be edited at all. Besides for a handful of People. But thousands of People need to be able to view the documents. I know, one can open it in Word as Write protected, but that doesn't stop anyone from actually saving the document as a New file and work on that.

So, I've thought out a couple of options:

  1. Convert the document to html format and display it inside an iFrame in Sharepoint.
  2. Convert the document to PDF at the end of the workflow. (How can I run a custom command in workflows anyway?)
  3. Run a macro on the Save event handler in Word that creates the PDF. But this will create the PDF before the document is approved.

Option 1 is doable, just testet it. BUT, there are hundreds of these documents. And that means we have to og through each one and move the header outside of the actual header and into the top of the document. We also lose Our margins on the documents.

Any thoughts? I think the best option is to create a PDF as a custom workflow on the very end of the workflow. But I can't find any way of running a custom command in workflows. Do I need Visual Studio? Seems kinda awkward to have to buy Visual Studio just for this one thing. I can Write console programs in Express Edition though.

2 Answers 2


Even if you would display it as HTML, it wouldn't prevent anyone from copy-pasting the text into a new word document. Even in pdf-files you can mark text and copy it to a new word document, so this wouldn't prevent users to do so, completely.

Maybe it would be more efficient to instruct your users, so they don't create new documents from existing ones. As you already mentionend that you have approval workflows for changes, you could prevent this unwanted behavior by applying approval workflows to new documents, too. This would make sure, no user "accidently" submits such a copy.

  • Well, I don't think people will bother to actually select the entire text and paste into a new document if it's converted to PDF. Workflows for New documents doesn't sound that bad :) Nov 1, 2012 at 9:02
  • You can encrypt PDFs and disable the ability to copy/paste (or even print). See blog.muhimbi.com/2010/12/… (wrote this post so the usual disclaimers apply) Nov 1, 2012 at 10:10

Although anything can be programmed from scratch, based on your description, and the fact that you only have VS Express edition, I think you are a bit out of your depth (forgive me if I am wrong).

There is third party software available that does exactly what you need (Convert to PDF and prevent Copy/Paste). I actually worked on a similar product, but StackExchange frowns on linking to commercial software so just Google for "Using the PDF Converter from a SharePoint workflow" (including the quotes).

The first few (non advertisement results) should contain your answer.

  • Hmm, so I have the option of buying Third party Products to do this. OR, somehow manage to fire off a custom command. That way I can Write console Applications that does the job. But then I'd have no way of Reporting back. Nov 1, 2012 at 10:48
  • You can find some details about writing your own workflow activity at the following URL, but please don't try to do MS-Word automation from within this code as you will run into loads of problems, even though it may appear to work well at first. blogs.3sharp.com/2011/11/03/… (I have been through it all and it is not pretty, you want to run this inside a separate process and interact with that process from your own workflow activity). Nov 1, 2012 at 11:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.