2013-05-16 4 views
5

Potrzebuję pomocy w dodawaniu tabulatora (pozycja w odległości 1 cm) do dokumentu tekstowego za pomocą programu word interop i C#. To już próbowałem.Dodawanie zatrzymania tabulatora do zakresu akapitowego w C#

Range range = paragraph.Range; 
int firstTabStart = range .Start; 
range .SetRange(firstTabStart, firstTabStart); 
range .Paragraphs.TabStops.Add(5, WdTabAlignment.wdAlignTabRight); 

Po otwarciu dokumentu programu Word nie widzę żadnych tabulatorów. jednak mogę wstawić wyrównania zakładki za pomocą

range .InsertAlignmentTab((int)WdAlignmentTabAlignment.wdCenter, 
    (int)WdAlignmentTabRelative.wdMargin); 

Chociaż te klapki są absolutne i nie mogę edytować je w dokumencie tekstowym.

Proszę o pomoc.

+2

Google mówi, że 1cm = 28 punktów. Nie rozwiązuje dokładnie twojego problemu, ale dookoła. – klugerama

+1

Możesz też użyć 'application.CentimetersToPoints (2f)' (na obiekcie aplikacji Word) lub 'MillimetersToPoints',' InchesToPoints' itd. – joshuahealy

Odpowiedz

2

Nie mogę odtworzyć problemu, który mam, ale wklejam kod, który przetestowałem, aby sprawdzić, czy różni się on od istniejącego kodu.

Widziałem tabulatory pojawiają się w linijce na 1 & 2 cm w każdym przypadku:

  • Korzystanie albo .doc lub .docx
  • Korzystanie paragraphs.TabStops zamiast range.Paragraphs.TabStops
  • Korzystanie pusty dokument
  • Używanie dokumentu z 1 lub więcej akapitami
  • Podanie trzeciego argumentu za WdTabLeader wMetoda.

I to zostało wykonane w programie Word 2010

class Start 
{ 
    public static void Main() 
    { 
     // Open a doc file. 
     Application application = new Application(); 
     Document document = application.Documents.Open(@"C:\Users\mmonkan\Documents\word.docx"); 

     Paragraphs paragraphs = document.Paragraphs; 
     Paragraph paragraph = paragraphs[1]; 
     Range range = paragraph.Range; 
     range.SetRange(0, 0); 

     range.Paragraphs.TabStops.Add(28, WdTabAlignment.wdAlignTabRight); 
     range.Paragraphs.TabStops.Add(56, WdTabAlignment.wdAlignTabRight); 

     // Close word. 
     application.Quit(WdSaveOptions.wdSaveChanges); 

     Console.ReadLine(); 
    } 
} 

enter image description here

Powiązane problemy