2013-05-16 28 views
5

Tôi cần trợ giúp với việc thêm một điểm dừng tab (vị trí ở 1cm) vào tài liệu từ sử dụng từ interop và C#. Đây là những gì tôi đã thử.Thêm một điểm dừng tab vào một phạm vi đoạn trong C#

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

Khi tôi mở tài liệu từ, tôi không thấy bất kỳ điểm dừng tab nào. tuy nhiên tôi có thể chèn sắp xếp tab sử dụng

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

Mặc dù, các tab này là tuyệt đối và tôi không thể chỉnh sửa chúng trong các tài liệu văn bản.

Vui lòng trợ giúp.

+2

Google nói rằng 1cm = 28 điểm. Không chính xác giải quyết vấn đề của bạn, nhưng FYI. – klugerama

+1

Hoặc bạn có thể sử dụng 'application.CentimetersToPoints (2f)' (trên đối tượng ứng dụng Word của bạn) hoặc 'MillimetersToPoints',' InchesToPoints', v.v. – joshuahealy

Trả lời

2

Tôi không thể tái tạo sự cố bạn đang gặp phải, nhưng tôi đang dán mã mà tôi đã thử nghiệm để bạn có thể xem liệu mã có khác với bất kỳ cách nào từ mã hiện tại của bạn hay không.

tôi thấy tab dừng xuất hiện trong cai trị tại 1 & 2 cm trong mọi trường hợp:

  • Sử dụng hoặc là một .doc hay .docx
  • Sử dụng paragraphs.TabStops thay vì range.Paragraphs.TabStops
  • Sử dụng một tài liệu trống
  • Sử dụng tài liệu có từ 1 đoạn trở lên
  • Chuyển tiếp tham số thứ 3 cho WdTabLeader trongPhương pháp.

Và điều này đã được thực hiện trong 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

Các vấn đề liên quan