2012-03-30 13 views
5

Ho una piccola app C# che estrae il testo da un file di Microsoft Publisher tramite l'API di interoperabilità COM. Funziona bene, ma sto lottando se ho più stili in una sezione. Potenzialmente ogni carattere di una parola può avere un font, un formato, ecc. Diversi.
Devo davvero confrontare un carattere dopo l'altro? O c'è qualcosa che mi restituisce le diverse sezioni di stile? Un po 'come posso ottenere i diversi paragrafi?Ottenere diverse sezioni di stile in Microsoft Publisher tramite Interop

foreach (Microsoft.Office.Interop.Publisher.Shape shp in pg.Shapes) 
{ 
    if (shp.HasTextFrame == MsoTriState.msoTrue) 
    { 
     text.Append(shp.TextFrame.TextRange.Text); 

     for(int i = 0; i< shp.TextFrame.TextRange.WordsCount; i++) 
     { 
      TextRange range = shp.TextFrame.TextRange.Words(i+1, 1); 
      string test = range.Text; 
     } 
    } 
} 

O c'è, in generale, un modo migliore per estrarre il testo da un file di Publisher? Ma devo riuscire a scriverlo con la stessa formattazione. È per una traduzione.

risposta

0

Abbiamo provato un approccio per il confronto di ogni carattere con tutti gli stili di carattere possibili. Non bello, ma funziona nella maggior parte dei casi ...

0

Si potrebbe considerare l'utilizzo degli Appunti per copiare sezioni di testo come RTF che è possibile successivamente incollare come RTF come nell'esempio sotto per Word. Non ho familiarità con il modello a oggetti di Publisher.

string text = wordDocument.Content.Paragraphs[0]; System.Windows.Forms.Clipboard.SetText(text, TextDataFormat.Rtf);

Oltre a questo, non ho trovato una collezione di stili applicati quando si utilizza l'interoperabilità con uno qualsiasi dei prodotti per ufficio.

+0

Grazie per l'input. Ma con la conversione RTF potrei perdere alcune opzioni di formattazione, che vorrei evitare. Attualmente confronto solo ogni personaggio con il prossimo ... – Remy

Problemi correlati