使用wps2019保存的rtf文档,里面有图片的话,在winform中读取这段rtf,然后赋值给richtextbox的Rtf属性,图片不会显示,但是使用office2013保存的就可以,有知道为什么的嘛?有啥解决方案不?
目前想到的保底的解决方案是剪切板,使用com组件打开wps2019的rtf,然后复制粘贴到richtextbox中
wps存在bug,这个你要向wps的技术部门反馈啊。
实际开发中可能需要在读取文本信息时需要保留原有的文本格式,这时候就不能使用普通的文本控件 (TextBox) 了,而需要使用富文本框控件 (RichTextBox) 来完成。
RichTextBox 控件在使用时与 TextBox 控件非常类似,除具有TextBox 控件的所有功能外,还能设定文字颜色、字体和段落格式,支持字符串查找功能,支持rtf格式等功能。
此外,在 RichTextBox 控件中还提供了文件加载和保存的方法,不需要使用文件流即可完成对文件的读写操作。
往窗口添加RichTextBox控件。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
namespace WinFormLearning
{
public partial class Form1 : Form
{
public Form1() // 窗体初始化函数
{
InitializeComponent();
}
private void button5_Click(object sender, EventArgs e)
{
DialogResult dr = openFileDialog1.ShowDialog();
//获取打开文件的文件名
string filename = openFileDialog1.FileName;
if (dr == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(filename))
{
richTextBox1.LoadFile(filename, RichTextBoxStreamType.PlainText);
}
}
private void button6_Click(object sender, EventArgs e)
{
DialogResult dr = saveFileDialog1.ShowDialog();
//获取所保存文件的文件名
string filename = saveFileDialog1.FileName;
if (dr == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(filename))
{
richTextBox1.SaveFile(filename, RichTextBoxStreamType.PlainText);
}
}
}
}