C#图像到RTF

时间:2017-12-20 18:18:02

标签: c#

我被困了几天,我有一个Image变量,我需要在RTF字符串中的某个位置追加(我是从头编程编写的)

我试过了:

img.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);

                        byte[] bytes = stream.ToArray();

                        string imgString = BitConverter.ToString(bytes, 0).Replace("-", string.Empty);

                        string imgRtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033}
    \viewkind4\uc1\pard\f0\fs17{\pict\wmetafile8\picw" + img.Width+@"\pich"+img.Height+
@"\picwgoal" + img.Width.ToString() + @"\pichgoal" + img.Height.ToString()+@"\bin " + imgString.ToLower() + @"}\par}";
    rtf.Select(rtf.TextLength, 0);
    rtf.SelectedRtf = imgRtf;

其中rtf和rtftemp都是富文本框。 这很有效。但是,使用剪贴板时存在很多问题 所以我也试过了:

{{1}}

这不起作用,最后的rtf没有附加我创建的Rtf,删除标题并从{\ pict开始,给出格式错误,将\ bin更改为\ hex也不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我实际上找到了从这个项目中获取和编辑的解决方案 Insert Plain Text and Images into RichTextBox at Runtime

我编辑了代码,所以你需要的只是定义一个静态类,并将this code放在里面。 然后只使用类型

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#021257"
android:orientation="vertical">

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/rvThumbnail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#021257"
            android:orientation="vertical"/>


    </LinearLayout>
</HorizontalScrollView>
</LinearLayout>