Domanda

Ho ereditato un progetto che archivia la formattazione HTML di base (ovvero - < b >, <=> i <=> tag) in un database e lo scrive in un documento di Word. Questo è il mio primo incarico di automazione di Word, quindi sii gentile!

Attualmente esiste una funzione complicata che viene eseguita dopo il completamento del documento che cerca e sostituisce questi tag. Tuttavia, poiché viene eseguito dopo il completamento del documento, qualsiasi logica determinata in fase di esecuzione (ovvero, inserire qui un'interruzione di pagina) può portare a risultati disastrosi. Ad esempio, se ho una grande porzione di testo in grassetto, questo testo in grassetto occupa più spazio e spinge la linea di interruzione alla pagina successiva, risultando in una pagina per lo più vuota.

Credo che la soluzione sia formattare il testo come viene dal database in modo che la logica di posizionamento sia corretta. Non voglio chiamare la complicata procedura più volte in quanto richiede tempo e i nostri utenti finali hanno bisogno di questo documento il più rapidamente possibile.

Esiste un modo semplice per scrivere testo in formato HTML in un documento Word senza la necessità di trovare e sostituire tutti i tag supportati? Penserei che ci sarebbe qualcosa in Word che potesse gestirlo automaticamente. Grazie in anticipo se puoi indicarmi la giusta direzione.

È stato utile?

Soluzione

Prova questo:

Per prima cosa, salva l'HTML che stai per inserire come un normale " .htm " file.

Quindi usa l'oggetto Range ed è Metodo InsertFile da inserire il " .htm " file in una determinata posizione:

Dim r As Range

Set r = ActiveDocument.Range
r.InsertFile FileName:=TempFilePath, Link:=False, ConfirmConversions:=False

Word dovrebbe essere abbastanza intelligente da gestire l'HTML e fare tutta la conversione del formato da solo. Usa CSS per controllare le parti più fini della formattazione.

Elimina il " .htm " file al termine.

Altri suggerimenti

forse puoi invocare un IE incorporato (IWebBrowser2) per impaginare il testo, quindi copiarlo negli appunti come richtext e infine incollare in Word come RichText (formattato).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top