2012-03-30 8 views
5

COM Interop API aracılığıyla bir Microsoft Publisher dosyasından metin ayıklayan küçük bir C# uygulamasına sahibim. Bu iyi çalışıyor, ancak bir bölümde birden çok stile sahip olsam mücadele ediyorum. Bir kelimedeki olası her karakter farklı bir yazı tipine, biçime, vs. sahip olabilir.
Karakterden sonra karakteri karşılaştırmalı mıyım? Ya da bana farklı stil bölümlerini getiren bir şey var mı? Farklı Paragrafları alabildiğim gibi mi?Microsoft Publisher'da farklı stil bölümlerini Interop aracılığıyla edinme

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; 
     } 
    } 
} 

Veya genel olarak bir Publisher dosyasındaki metni ayıklamanın daha iyi bir yolu var mı? Ama aslında aynı formatta yazabilmem gerekiyor. Bir çeviri için.

cevap

0

Her karakter için mümkün olduğunca çok yazı tipi stili olarak karşılaştırdığımız bir yaklaşım denedik. Hoş değil, ama çoğu durumda çalışır ...

0

Metin bölümlerini daha sonra RTF olarak Word için aşağıdaki örnekte olduğu gibi yapıştırabileceğiniz RTF olarak kopyalamak için panoyu kullanmayı düşünebilirsiniz. Publisher'ın nesne modeline aşina değilim. ofis ürünlerle birlikte birlikte çalışma kullanırken Bunun dışında

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

, ben uygulamalı tarzı bir koleksiyon bulamadı.

+0

Giriş için teşekkürler. Ancak RTF dönüşümü ile kaçınmak istediğim bazı formatlama seçeneklerini kaybedebilirim. Şu anda her karakteri bir diğerine göre karşılaştırıyorum. – Remy

İlgili konular