Używam Visual Basic i interfejsu automatyki do pobierania ciągów z zewnętrznej aplikacji. Łańcuchy te zawierają proste kody formatowania html (<b>, <i> itd.). Czy istnieje jakaś łatwa funkcja w języku Visual Basic for Word, aby wstawić te ciągi do dokumentu programu Word i przekonwertować kody formatowania html na formatowanie słów?Jak wstawić łańcuchy sformatowane w formacie HTML do dokumentu programu Microsoft Word przy użyciu języka Visual Basic z zachowaniem formatowania?
Odpowiedz
AFAIK nie ma wbudowanej funkcji do tego w VBA. Będziesz musiał napisać to sam, co nie byłoby zbyt trudne, gdybyś na przykład wypróbował je, parsując np. <b>, <i>, <a> and <p>,
. Wszystkie inne znaczniki musiałyby zostać zignorowane.
Oto link, aby dodać HTML do schowka przy użyciu VB:
http://support.microsoft.com/kb/274326
Gdy masz HTML na schowka, wkleić go do PDF za pomocą czegoś takiego:
ActiveDocument.Range.PasteSpecial ,,,,WdPasteDataType.wdPasteHTML
Jest to odpowiednik wycinania i wklejania ręcznie.
Zastosowanie InsertFile
Set objdoc = objInsp.WordEditor
Set objword = objdoc.Application
Set objsel = objword.Selection
objsel.WholeStory
vs_html = "<html><body>" + vs_body + "</body></html>"
vs_file = "C:\temp\1.html"
Call DumptoFile(vs_file, "", vs_html, False)
RetVal = objsel.InsertFile(vs_file, , , False, False)
WOW! Prosty i kuloodporny. : D (Oczywiście będą pewne różnice w używaniu% TEMP%, czy coś takiego, i potrzebujemy jakiegoś rozwiązania DumpToFile(), ale jest to powszechnie dostępne w sieci.) – MGM
Wielką pomoc !! daj temu facetowi akceptację! –