Monday, February 24, 2014

“The linked image cannot be displayed, the file may have been moved, renamed or deleted. Verify that the link points to the correct file or location” – Microsoft Word 2010.


“The linked image cannot be displayed, the file may have been moved, renamed or deleted. Verify that the link points to the correct file or location” – Microsoft Word 2010.

Problem Statement:-

Recently I have migrated our word document automation from Word 2007 to Word 2010. I have found that image below error message in place of image.












In our automation I just insert the html file into Word Document by using the below code.

this.wordDocument.Application.Selection.InsertFile(strpath, ref this.missingValue, 
                        ref this.objFalse, ref this.objFalse, ref this.objFalse);

Which works fine in Word 2007, but not in Word 2010. In the html file we have absolute path to image and after html file inserted into Word document, I delete the original file. Means word remove the links to external file and saves the image in document file itself as it does for insert of normal image file(like *.bmp, *.JPEG,…etc) below.

InlineShape picture = this.wordDocument.Application.Selection.InlineShapes.AddPicture(
                path, ref this.objTrue, ref this.objTrue, ref this.missingValue);

Here is the change in Word 2010, which retains the links to external image instead of saving them into document as it does for adding of inline normal image. (One of the reason by guess why Word 2010 does retain the original image file link could be Word not able to confirm as image file of extension because our  file doesn’t have proper image extension like *.bmp, *.JPEG…etc). Because have deleted the original image file after insertion into Word document…it couldn’t able to find the file. So above message will be displayed.


Solution:-
After spend almost two to three days goggling and doing the trial and error, finally contacted the Microsoft support. Support team really very good with technical knowledge about the product.
After careful examination in the macro editor about how many external links the document holds currently and found that it has all the external file as inserted.


Same can be viewed in File->Info->Related documents ->Edit links to file in the  lower right corner in below.














Click the Edit links to file will open up below dialog, which will have all the external file links and type of file and options for document links…etc.












we have found that still it’s pointing to links which got deleted it. So we decided to delete the links yourself automatically in our automation before deleting the original file and works perfectly in both Word 2007 and Word 2010.

Below is the code which remove the external file links automatically in c#

if (this.wordDocument.Application.Selection != null)
            {
                if (this.wordDocument.Application.ActiveDocument.InlineShapes.Count > 0)
                {
                    foreach (InlineShape inlineShape in this.wordDocument.Application.ActiveDocument.InlineShapes)
                    {
                        if (inlineShape.LinkFormat != null && !inlineShape.LinkFormat.SavePictureWithDocument)
                        {
                            inlineShape.LinkFormat.SavePictureWithDocument = true;
                            inlineShape.LinkFormat.BreakLink();
                        }
                    }
                }
            }

Before finally saving the document just remove the links which are “SavePictureWithDocument” flag false. Means which just image file inside the html document not as just inline image, anyway which is working fine and Word intelligently add them as “SavePictureWithDocument” flag set in the “options for documents links” options.

Microsoft support team really helped us their timely response to release the product on time without any delay.

I thought of share the knowledge as it would save someone two days of effort as have spend it already.

Please post the comments if anyone required any more information.