找回密码
 立即注册

QQ登录

只需一步,快速开始

mjhcad
初级会员   /  发表于:2014-8-11 10:56  /   查看:7256  /  回复:8
在TX中用如下方式插入图片:
        dim NewImage As TXTextControl.Image = New TXTextControl.Image
        NewImage.FileName = "d:\vb7sam\hz.emf"
        NewImage.SaveMode = TXTextControl.ImageSaveMode.SaveAsData
        NewImage.VerticalScaling = 100
        NewImage.HorizontalScaling = 100
        TextControl1.Images.Add(NewImage, TXTextControl.HorizontalAlignment.Right,   

                                                30,TXTextControl.ImageInsertionMode.DisplaceText)
如果保存后再打开文件复制粘贴到word中,图片是以嵌入文件的方式存在的。
如果直接在TX中复制粘贴到word中,图片是外部引用的方式存在的,删掉外部图片,再打开word文件无法显示图片。
我的问题是:如何设置才能直接在TX中复制粘贴到word中后,图片以嵌入文件的方式存在?

8 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-8-11 18:16:00
沙发
回复 1楼mjhcad的帖子

你好,
我通过以下步骤测试:
1.运行1#中的代码,图片路径为绝对路径
2.点击图片,复制到word中
3.关闭 tx 窗体,关闭word窗体
4.移除 image
4.重新打开word

图片可以正常显示,请问我们操作步骤相同吗?
回复 使用道具 举报
mjhcad
初级会员   /  发表于:2014-8-12 09:22:00
板凳
我测试了一下:
   如果只是点击图片复制到word中,图片是以嵌入方式存在的。
  如果连带文字图片一起复制到word中,图片是以外部引用的方式存在的。
  查看了下TX中的文件实际内容分如下:

  {\rtf1\ansi\ansicpg936\uc1\deff0{\fonttbl
{\f0\fnil\fcharset134\fprq2 \'cb\'ce\'cc\'e5;}
{\f1\fnil\fcharset1\fprq2 Arial;}
{\f2\froman\fcharset2\fprq2 Symbol;}}
{\colortbl;}
{\stylesheet{\s0\itap0\nowidctlpar\f0\fs24 [Normal];}{\*\cs10\additive Default Paragraph Font;}}
{\*\generator TX_RTF32 19.0.542.501;}
\paperw12240\paperh15840\margl1440\margt1440\margr1440\margb1440\deftab1134\widowctrl\lytexcttp\formshade\sectd
\headery720\footery720\pgwsxn12240\pghsxn15840\marglsxn1440\margtsxn1440\margrsxn1440\margbsxn1440\pgbrdropt32\pard\itap0\nowidctlpar\plain\f1\fs20
{\shp{\*\shpinst\shpleft3645\shptop0\shpright9360\shpbottom6645\shpfhdr0\shpbxcolumn\shpbxignore\shpbypara\shpbyignore\shpwr2\shpwrk0\shpz0\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn wzName}{\sv _tx_id_1_}}{\sp{\sn pibName}{\sv d:\'5cvb7sam\'5chz.emf}}{\sp{\sn pibFlags}{\sv 13}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 0}}{\sp{\sn posh}{\sv 3}}{\sp{\sn posrelh}{\sv 2}}{\sp{\sn fLayoutInCell}{\sv 1}}}
{\shprslt{\field{\*\fldinst INCLUDEPICTURE "d:\\\\vb7sam\\\\hz.emf" \\d}{\fldrslt {}}}}}this is a  pictrue:\par }

说明在Tx中图片是以引用的方式存在的,只有保存后再打开才以嵌入方式存在的。
如果图片较多的话,单个图片复制就太麻烦了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-12 15:49:00
地板
回复 3楼mjhcad的帖子

问题我已经重现,并且提交给产品组,有进一步结果会反馈给你。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-12 16:32:00
5#
回复 3楼mjhcad的帖子

你好,
这个问题需要先保存 tx 文件,使图片作为嵌入模式保存,再加载进来,代码如下:

  1. Dim temp As Byte() = Nothing
  2.         Dim saveSettings As New TXTextControl.SaveSettings()
  3.         saveSettings.ImageSaveMode = TXTextControl.ImageSaveMode.SaveAsData

  4.         TextControl1.Save(temp, TXTextControl.BinaryStreamType.InternalUnicodeFormat, saveSettings)
  5.         TextControl1.Load(temp, TXTextControl.BinaryStreamType.InternalUnicodeFormat)
复制代码


这种做法比较耗费性能,但目前只有这一种解决方法。
回复 使用道具 举报
mjhcad
初级会员   /  发表于:2014-8-12 16:53:00
6#
谢谢版主。真是很耐心!:strong:
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-12 16:55:00
7#
回复 6楼mjhcad的帖子

恩,不客气。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢

评分

参与人数 1满意度 +5 收起 理由
mjhcad + 5 很专业,很耐心

查看全部评分

回复 使用道具 举报
什么跟什么啊
新手上路   /  发表于:2014-9-21 08:35:00
8#
谢谢版主
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-9-22 10:18:00
9#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部