Creating RTF headings compatible with Microsoft Word - ms-word

I am producing a script which creates RTF documents and want to add a table of contents. I've opted for this:
{\field\flddirty\fldedit{\*\fldinst TOC}{\fldrslt \i Use this page to add the table of contents, right click to update field \i0}}
and the user will open the RTF in Microsoft Word and update the field. However, I'm unsure of how to format the sections in my RTF code to create headings so that when I update my TOC in Word it will show the sections. For now, when I "update field", I only get "No tables of contents entries found"
I've tried {\tc My heading here} with no luck.
Is there some code I can insert into my RTF to format my text as headers for TOC formatting in Word?

I've figured out how to solve my problem. In Microsoft word, in order for {\tc Heading here } to appear in your table of contents, you must include Table entry fields. To incorporate this into your RTF code, instead of {\*\fldinst TOC} use {\*\fldinst TOC \o \h \f} \h enables HTML links and \f enables table entry fields. Now when you update the field, your {\tc Heading here } will appear in the table of contents.
This article helped me out: https://support.office.com/en-ca/article/Table-of-Contents-III-Use-fields-to-create-a-TOC-and-create-multiple-TOCs-f1509cfe-b48f-4ac5-8241-89a6619d7d6f

Related

How to autoupdate an MS word field based on typed text?

Is there a way to automatically update the content of a word field based on a text I type?
i.e. I have a table with two cells. The left cell contains a QR Code generated by
{ Displaybarcode "Just a Text " QR \s 40 \t }
The rigtht cell contains "Just a text"
Is there a way to update the QR code (actually a word field) based on what I type in the right cell?
So, if I change the text to "I just changed that text!"
I would get this:
I do not mind pressing Ctrl-F9, but I would not want to edit the field itself.
Is that possible?
Dan
I would put the area for the text in a mapped Content Control and use a copy of that control in the DisplayBarCode field as the text portion. The field would need to be updated.
Here is another Add-In to produce Mapped Content Controls by MVP Graham Mayor.
Here is a video by Laura Townsend on how to do it yourself.
Here is the Walkthrough page on mapping to an XML part from Microsoft.

Format hyperlinks that span multiple lines

I have an Access database (Screenshot is attached) in which the text of an editor is stored line by line in the DB (called StoryLine column). I have the problem that URLs are stored as hypertext "URL" display names. Sometimes only hyperlinks are displayed in one line and the "URL" goes over several lines and then the display name is displayed.
Thank you very much for your help and hints.
I have merged all entries (with Formula) that are assigned to the same entry (all connected texts have the same StoryID). The problem is that the formatting is completely lost.
Only the display text of the URL should be displayed, if it exists, otherwise the complete URL.
HYPERLINK "http://votetandem.org" votetandem.org
should be
voteandem.org (formatted as Hyperlink)
and
HYPERLINK enter link description here
Acquista ora i
biglietti!
should be
Acquista ora i biglietti! (formatted as Hyperlink)
If I understand your question correctly, the below should work for you;
Create a Formula and type the desired text and hyperlink using the HTML tag like:
Insert the Formula Field on the report. Right click on the "Formula Field" inserted on the report, and select "Format Field"
In the "Format Editor" window, select the tab "Paragraph". For the option "Text Interpretation", select "HTML Text"
Note that the SAP Hyperlink text displayed above is the actual hyperlink and selectable by the user. In your case, it may be a matter of just doing option 3 from above on the required fields. I don't know your current structure of the report to give you an exact answer.
Concat Strings
Create a formula with something as such. I haven't tested this so it may need some tweaking.
if {Command_Main.StoryLinesK} in ['45','46','47', '48',''49] then {Command_Main.StoryLine} & "" & {Command_Main.StoryLine}

See raw code/text from copy paste

I doing some formatting from copy/paste. When I copy a table from Word, and I want to insert it in my program, I need to edit the table formatting to show the info like I want.
When I copy from word I can view whats copy in clipboard magic:
Is there a way to get the formatting, or do I need to create a new table for scratch with the data listed in clipboard magic?
I Clipdiary the "copy" is read as HTML
This makes me wounder, is it possible to get the html code?
Yes, the HTML is present as CF_HTML. See reference on MSDN: http://msdn.microsoft.com/en-us/library/aa767917(v=vs.85).aspx
If you just want to SEE it, ClipMate has a Binary display that will show you a binary dump of the data. It's available in the trial version. If you don't see the Binary tab in the display window, turn it on in the Tools | Options | Editor dialog.

Add Variable Hyperlink in Mail Merge in Word 2013

I'm trying to add a hyperlink to a mail merge field. So something like this:
{HYPERLINK "{MERGEFIELD "Links" }"}
So I create a field like this.
{ MERGEFIELD Links }
And the above works (it displays different links for different recipients).
However, when I go to Edit Field, and then attempt to add HYPERLINK to { MERGEFIELD Links}, Word will not allow me. Meaning that when I type HYPERLINK followed by a space, the "variable" field is gone. Instead of word displaying...
LINK
it displays...
{HYPERLINK "{MERGEFIELD "Links" }"}
even after I press "update field". So Word is not letting me enter HYPERLINK for some reason.
How do I solve this?
From the Microsoft Web Site,
On the Insert menu, click Field (under Quick Parts in later office versions).
In the Field names list, click Hyperlink,
and then click OK. The text Error! Hyperlink reference not valid
appears in the document.
Press ALT+F9 to open the { HYPERLINK \* MERGEFORMAT } field code.
Put the insertion point after HYPERLINK and then add a space.
On the Insert menu, click Field. In the Field names list, click MergeField. In the Field name text box, type the name of the data source field that contains the hyperlink, and then click OK. For example, if the name of the data source field is "Address1," the field code appears as follows: { HYPERLINK { MERGEFIELD "Address1" } \* MERGEFORMAT }
Press ALT+F9 to close the field code. You now have Error! Hyperlink reference not valid text.
Put the insertion point at some arbitrary place in the middle of the Error! Hyperlink reference not valid text, and insert the text you want to appear. If you would like a merge field, insert that from the "Insert Merge Field" option on the menu.
Delete the remaining text of Error! ... before and after the text you want to keep.
Note: If your merge field only contains an identifier, with the URL to be provided as a static part of the merge document, this can work also. On Step 5, you will need to insert the URL text as well as the MergeField, for example:
{ HYPERLINK "https://www.myurl.com/EditForm.aspx?ID={ MERGEFIELD ID }" \* MERGEFORMAT }
I also have been struggling with this. What I found to be the key is creating the document from SCRATCH and not saving it before executing the mail merge. Here are the steps I used:
open a new document and click on the step by step mail merge wizard; add your generic text.
To add the variable hyperlink go to insert>quick parts>fields
select hyperlink on the left and click okay
Use alt + F9 to see the hyperlink field code
Type “” and between them insert your merged field so that {HYPERLINK \* MERGEFORMAT} -> becomes {HYPERLINK"{MERGEFIELD"Constructed_URL"}"\*MERGEFORMAT}
Press ALT+F9 to hide the field code
Click in the text "Error! Hyperlink reference not valid" and replace with something generic like click here.
Complete the mail merge BEFORE you save the document.
Hope this helps and good luck!
Start with the process here:
http://support.microsoft.com/kb/912679
However, like user1867326 indicated, the hyperlink (which should be variable with the mail merge) is converted into a static link when the Word file is reopened.
A solution that seems to work is adding a bookmark within the hyperlink field code immediatly after the mergefield.
{ HYPERLINK { MERGEFIELD "Link" } \* MERGEFORMAT }
Click between the } and \ and go to INSERT > Bookmark, give it a name, and this seems to prevent Word from replacing the mergefield with a static hyperlink.
This answer is adapted and hopefully clarified from the clever solution described here:
Mailmerge dynamic hyperlink fields lost after save/reload of document - Word 2010
This is what worked for me for an email mail merge with variable hyperlinks that all display the same text. I am using Office 2016 Word.
Put the insertion point where you would like the link display text to be in the document.
On the Insert menu, click Quick Parts, and select Field.
In the Field Names list, click Hyperlink, and then click OK. The text Error! Hyperlink reference not valid appears in the document.
Press ALT+F9 to open the { HYPERLINK * MERGEFORMAT } field code. 5. Put the insertion point after HYPERLINK.
On the Insert menu, click Quick Parts, and select Field. In the Field Names list, click MergeField.
In the Field name text box, type the name of the data source field that contains the hyperlink, and then click OK. For example, if the name of the data source field is "Address1," the field code appears as follows: { HYPERLINK { MERGEFIELD Address1 } * MERGEFORMAT }
Press ALT+F9 to close the field code. You now have Error! Hyperlink reference not valid text.
Put the insertion point just before the period in ‘Error! Hyperlink reference not valid text.’ and delete all the text except for the period. Write in the link display text. Make sure not to delete the period (this is important).
To check that the hyperlinks are mapping, right click on the link display text and click edit hyperlink. You will see the correct link in the address field for each record.
I like to style the period text color to white so it looks invisible.
I have had limited success with the other suggestions - basically, Word is buggy in this area. There is a simple alternative - indeed the only alternative AKAIK if you want the hyperlink to vary AND the text that is displayed to vary too (not an unreasonable requirement).
Note that this only works for DOCUMENT MERGES, not for EMAIL MERGES, since it relies on processesing the output document.
The trick is to add a place marker (text that serves as an ID) wherever you want a hyperlink. Insert this via a regular mergefield. In your table of source data, you need columns
place marker, text_for_display, hyperlink
You then need to put your source data into Excel (if that isn't where you have it already) and put this formula
="Set Rng = ActiveDocument.Content: Rng.Find.Execute FindText:="""&[place marker]&""": ActiveDocument.Hyperlinks.Add Anchor:=Rng, Address:="""&[hyperlink]&""", TextToDisplay:="""&[text_for_display]&""""
into a blank column in the first row, and fill down.
You need to amend [place marker],[hyperlink] and [text_for_display] to the appropriate cell references.
If the [hyperlink] includes a query string, you may find you want to build it using a formula, based on other data in the source.
The resulting formulae can then be pasted into a macro and run on the output document.
You may then want to use the "Robbins/Mayor" macro http://www.wordbanter.com/showthread.php?t=18346 to split the generated documents.
I got this working thanks to this thread, but then it stopped working and I figured out why so I thought I'd say thanks by posting what I discovered here.
The issue is that word has a special type of curly brace. Copying the code text from this thread may not work for that reason. To get the curly braces Word wants, I used Fn + Command + F9 on my Mac running Catalina and Office 365. Apparently some Mac users may find Command + F9 works -- just test to find out. I'm sure Windows has a similar keystroke set. I found the Mac solution in this post.
Also, the syntax that works for me is: { HYPERLINK { MERGEFIELD "url" } * MERGEFORMAT } where "url" is the label of the column with the link in my Excel file. Note the position of the quotes. This differs from other posts here (I tried the other combinations) but I wouldn't be surprised if the syntax may vary across Word versions and operating systems.
To get this method to work in Mac Office 365 (Big Sur), you need to know about the Toggle Field Codes in the context menu. The shortcut above to replicate the Alt-F9 behavior will create a new field, instead of allowing you to edit the field that exists.
At these steps:
Press ALT+F9 to open the { HYPERLINK * MERGEFORMAT } field code.
OR
Press ALT+F9 to close the field code. You now have Error! Hyperlink reference not valid text.
Instead of the keyboard shortcut, right click on the error message and select Toggle Field Codes from the context menu.
Answer worked great for me with this adjustment! Thank you!

Insert a table in an unalterable format into a Word 2010 file while retaining font size and sharpness

I am trying to insert a table in an unalterable format into a Word 2010 file while retaining font size and sharpness.
So far, I have tried preparing the table as a pdf, then using Insert -> Object -> Adobe Acrobat File to get it into Word. Unfortunately, this inserts the table within margins automatically created on the Word page, and distorts lines and font size within the table.
Here are some things I've tried:
- Setting the margins of the page in the recipient Word file to 0" before importing the pdf.
- Printing the pdf on on a smaller page (7" x 9") then importing onto a page 8.5" x 11".
Neither worked; the imported pages were resized and the table printed badly.
The pdf I used was prepared from Word using PrimoPDF.
Please feel free to suggest formats other than pdf for the transfer if they can be more easily incorporated into the final Word document.
Your help will be appreciated.
First, prepare the table as a Word document. Go to the Review tab, and select Restrict Editing. Set Editing Restrictions to allow No changes (Read only). Press Yes, Start Enforcing Protection. Save file.
Next prepare the recipient document in Word. Go to the Insert tab, select Object, Create from File, and browse to find and insert the file.
The table will be inserted into the recipient Word file as a document within a document, and its 'Read Only' protection is maintained. All fonts and line styles remain as originally set.