Hej, Kanske du kan göra så här: Håller med André om att det är ett bra sätt att göra men svarar på din fråga om du kan tagga som någon annat. Tackar för svaren! Om det gäller Word 2007 så skulle jag använda CustomXML och Content Controls. Flera Content Controls kan kopplas mot samma nod i XMLen.Integration med Microsoft Word
Jag har en applikation(Windows Forms).
Härifrån öppnar jag ett Word dokument. I detta dokument har jag ett gäng bookmarks som jag ifrån min applikation byter ut text.
I exemplet så säger vi att dokumentet skriver ut "Studie Titel" och detta vill jag ändra till rätt studietitel som jag har i databasen.
Jag loopar alltså igenom alla bookmarks och ändrar texten så här(lite förenklat):
<code>
private void ReplaceBookMarks()
{
foreach (Word.Bookmark bmk in _doc.Bookmarks)
{
if (bmk.Name.Equals("STUDY_TITLE"))
bmk.Range.Text = mittObject.StudyTitle;
else if (bmk.Name.Equals("STUDY_DIRECTOR"))
bmk.Range.Text = mittObject.StudyDirector;
//......osv
}
}
</code>
Nu är problemet att t ex studietiteln kan förekomma på många ställen i Word dokumentet. Då vill jag ju byta ut studietiteln på alla ställen, eller kanske inte på alla men på de ställen jag bestämmer i alla fall.
Min första tanke var att ha ett bookmark som heter STUDY_TITLE och använda det på alla ställen där jag vill byta ut texten.
Nu verkar det som man inte kan ha ett bookmark mer än en gång, det måste vara unikt.
Finns det något annat sätt att "tagga" i Word? Så att jag kan komma åt dom från .NET?
Tackar på förhand!!
/JockeSv: Integration med Microsoft Word
Namnge bokmärkena STUDY_TITLE_1, STUDY_TITLE_2, STUDY_TITLE_3 etc.
Istället för att köra Equals("STUDY_TITLE"), använd StartsWith("STUDY_TITLE").Sv: Integration med Microsoft Word
Du kan tagga som formatmall, du kan också märka upp ord som innehållsförteckningsord. Kanske det finns några fler trix att tillgå men dessa är de jag på rak arm kommer ihåg.Sv:Integration med Microsoft Word
Ja, det kanske är en bra idé att göra som du skriver André.
Jag kör på det, tackar!!!!
/JockeSv:Integration med Microsoft Word