thefoggiest.dev

Bad, bad Powerpoint

A couple of days ago, someone in my vicinity needed to create a Powerpoint presentation with lots and lots of JPEG files. She was doing this on a netbook which is usually pretty fast, but after adding a couple of pictures, she noticed it slowing down to a crawl. She was working on a USB key, and not on the hard drive. But that was not the reason for the computer’s slowness. It was because Powerpoint needed to keep all the images in the computer’s memory, and when memory fills up, the computer gets slower. The solution is obvious: in Powerpoint, you can link to images instead of embedding them in the presentation file itself.

After figuring out how to do it the new file appeared a fraction the size of the old file and the computer was responsive again.

Sixty slides with JPEGs later, she saved her work. The next day she copied the folder with the presentation and the image files to the computer’s hard drive. To be sure, she checked if all the images were still there when opening the presentation without the USB key inserted.

They weren’t.

It turned out that when linking to an image, Powerpoint uses the absolute path to the image, including the drive letter. The USB key was called E: and the hard drive C:, so the images couldn’t be found.

In Powerpoint’s file menu there is an option called Pack and Go. This function creates an archive file that can be extracted on another computer, so that it can be shown there. I can guess how that works. During packaging, all the absolute paths of all the file links are made into relative paths, and during unpacking they are prepended with the absolute path leading to the folder where the presentation is unpacked.

It seems to me that this is not a solution, but dirty workaround to a problem that shouldn’t exist. Simply using relative paths would have solved this and would have had no downsides. Why Microsoft would choose to use absolute paths in the first place is beyond me.

Pack and Go


Categorised as: Uncategorized


Comments are closed.