2009-02-27 43 views
16

Tôi có trên cơ sở dữ liệu của mình một cột chứa văn bản ở định dạng RTF.Nhận văn bản thuần tuý từ văn bản RTF

Tôi chỉ có thể nhận được văn bản thuần túy của nó bằng cách sử dụng C# như thế nào?

Thanks: D

+0

[Đây là một câu hỏi khác] (http://stackoverflow.com/questions/188545/regular-expression-for-extracting-text-from-an-rtf-string) thảo luận về cách thức regex. – dkretz

Trả lời

28

Microsoft cung cấp an example nơi họ về cơ bản dính văn bản rtf trong một RichTextBox và sau đó đọc .Text tài sản ... nó cảm thấy hơi kludgy, nhưng nó hoạt động.

static public string ConvertToText(string rtf) 
{ 
    using(RichTextBox rtb = new RichTextBox()) 
    { 
     rtb.Rtf = rtf; 
     return rtb.Text; 
    } 
} 
+1

Điều này luôn làm tôi khó chịu. Ngoài ra, bạn phải làm điều này trong một chủ đề STA, thường gây rối với hầu hết các mô hình luồng của chương trình. – Will

+0

@Will: Tôi không tuyên bố đó là cách tốt nhất ... –

+0

Sau khi xem mã RichTextBox cơ bản ... vâng, bạn sẽ muốn sử dụng nó vì nó là một con thú phức tạp. –

0

Nếu bạn muốn có phiên bản mã thuần túy, bạn có thể phân tích cú pháp chính rtf và chỉ giữ lại các bit văn bản. Đó là một chút công việc, nhưng không phải là công việc rất khó khăn - các tập tin RTF có một cú pháp rất đơn giản. Read about it in the RTF spec.

+0

vâng, cho đến khi bạn nhận được bảng với các cột :) Nhưng định dạng in đậm/nghiêng đơn giản là dễ dàng. – crashmstr

+0

Điểm tốt. Devil trong chi tiết. –

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