0

任意のテキスト ファイル (iTextSharp Dll を使用した pdf も含む) を開き、その内容をリッチ tex ボックス (特定のパターンを検索できる検索フィールド) に表示する Windows フォーム アプリケーションを作成しました。色。保存ボタンを作りました。

  1. テキスト ファイル (.doc) を、テキスト形式を保持して強調表示されたテキストで上書きするにはどうすればよいですか?
  2. どうすればpdfで同じステップを実行できますか? (ファイルを上書きするとpdfがクラッシュするため)

コード:

private void open_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        tb.Clear();
        label1.Text = openFileDialog1.FileName;

        if (label1.Text.Contains(".pdf"))
        {
            // create a reader (constructor overloaded for path to local file or URL)
            string location = openFileDialog1.FileName;
            PdfReader reader = new PdfReader(location);

            StringBuilder text = new StringBuilder();

            for (int page = 1; page <= reader.NumberOfPages; page++)
            {
                ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
                string currentText = PdfTextExtractor.GetTextFromPage(reader, page, strategy);

                currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                text.Append(currentText);
                reader.Close();
            }
            tb.Text = text.ToString();
        }
        else 
        {
            tb.Text = File.ReadAllText(label1.Text);
        }

    }
}

private void save_Click(object sender, EventArgs e)
{
    SaveFileDialog saveFile1 = new SaveFileDialog();

    if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        File.WriteAllText(saveFileDialog1.FileName, tb.Text);
    }
}

private void search_Click(object sender, EventArgs e)
{
    int index = 0;
    while (index < tb.Text.LastIndexOf(sb.Text))
    {
        tb.Find(sb.Text,index,tb.TextLength,RichTextBoxFinds.None);
        tb.SelectionBackColor = Color.Gold;
        index = tb.Text.IndexOf(sb.Text, index) + 1;
    }
}

前もって感謝します!

4

1 に答える 1

0

これを使用して、すべてのリッチ テキスト形式のコードと共にテキストを取得してみてください。

string str = richTextBox.Rtf;

このコンテキストに関する詳細と実装ガイドラインについては、 http://www.codeproject.com/Articles/12932/Saving-and-Restoring-RichTextBox-Formatted-Text-Alを参照してください。

于 2012-07-13T22:51:24.377 に答える