So reading Microsoft's KnowledegeBase article on this gives the infuriating answer that this is by design, so you need to write a macro to do this. Handily they provide a Macro which updates the fields when you open the file, rather than save. This actually makes more sense for a number of fields, so as long as you use LASTSAVEDBY and SAVEDATE these will make sense.
Just remember that you won't see the updates applied until you open the document again. For footers this is absolutely fine.
And since this is a Macro you definitely need to save as dotm.
For anyone who needs to update fields on save, there is a discussion at VBA Express forums, or you could just adapt the macro from Microsoft's document.
Update
The vbscript from Microsoft is good, but results in a document that always thinks it has been edited, so always prompts to save when closing. Most users will always click on this, which would result in the LASTSAVEDBY and SAVEDATE values showing when the doc was last read, and who by.
So I added a line to immediately mark the document as unchanged after updating the fields. Any further edits to the document will reset this, giving the save prompt on close.
Here's the macro code:
Sub AutoOpen()
'
' AutoOpen Macro
'
'
Dim aStory As Range
Dim aField As Field
For Each aStory In ActiveDocument.StoryRanges
For Each aField In aStory.Fields
aField.Update
Next aField
Next aStory
' set document as unchanged (prevents save dialog popping up when closing)
' further edits will set this back to false and restore
' the save dialog on close
ActiveDocument.Saved = True
End Sub
Update
The above code works fine, unless you save this to your Normal.dotm template, in which case it runs everytime you open any document. If the document is opened in Protected View (i.e. it was downloaded from the internet or came as an email attachment) then ActiveDocument isn't available. The solution is to check that the document isn't in Protected View before running the functions inside the macro. Here is the updated macro code, including the If statement to check the doc isn't in Protected Mode:
Sub AutoOpen()
'
' AutoOpen Macro
'
'
Dim aStory As Range
Dim aField As Field
' Check that document is not in Protected View before doing anything
If Application.ActiveProtectedViewWindow Is Nothing Then
For Each aStory In ActiveDocument.StoryRanges
For Each aField In aStory.Fields
aField.Update
Next aField
Next aStory
' set document as unchanged (prevents save dialog popping up when
'closing) - further changes will set this back
ActiveDocument.Saved = True
End If
End Sub
I managed to find a solution for my problem, and want to share with you guys. But it is only applicable with MS Word, since it is what I am having issues with.
So basically you need to use ShareX, and set it so that the image format output is JPG. Then, MOST IMPORTANTLY, use the “save, copy image file” option from the quick task menu that popped out whenever you take a screenshot. If the menu does not pop up, set it so. Now when you paste it into MS Word, it will automatically be pasted as JPG.
Why this works is because I think MS Word only recognize the image type copied from certain source. If it doesn’t recognize the source, it will be pasted as PNG/bitmap by default. So when you setup ShareX per above steps, you are saving the pictures in your PC. Then ShareX will automatically copy from the image file itself (which Word recognize), so you can directly paste it as JPG into Word.
Best Answer
After looking at the source document I will add a more accurate answer.
The reason for the problem is the image is inline (it is treated as one giant character in the paragraph between other characters). The paragraph that the image belongs has Line Spacing: Exactly set (under Paragraph -> Indents and spacing -> Line Spacing). You can fix this problem by changing the Line Spacing value to anything else (such as At Least or Single).
Since the paragraph has exact spacing any glyph which is larger than the line is cut off which is what you see. You may need to fiddle with the image options to position it in the way you want.