From: Rama on 5 Mar 2007 06:44 Hi All, I'm trying to extract RTF text from a given word document and I'm using clipboard functionality to get RTF text which is as follows. I'm using ..NET technology. I dont mind accepting VB6\VBA solution. Dim data As IDataObject oParagragh.Range.CopyAsPicture() data = Clipboard.GetDataObject() If Not data Is Nothing AndAlso _ data.GetDataPresent("Rich Text Format") Then strParagraphText = data.GetData("Rich Text Format", True) End If As it intereferes with user copy\paste functionality I just want to findout whether there are any other possible ways to extract RTF text without using clipboard logic. -- Cheers, Rama
From: yves on 5 Mar 2007 13:37 On Mar 5, 12:44 pm, Rama <R...(a)discussions.microsoft.com> wrote: > Hi All, > I'm trying to extract RTF text from a given word document and I'm > using clipboard functionality to get RTF text which is as follows. I'm using > .NET technology. I dont mind accepting VB6\VBA solution. > > Dim data As IDataObject > oParagragh.Range.CopyAsPicture() > data = Clipboard.GetDataObject() > If Not data Is Nothing AndAlso _ > data.GetDataPresent("Rich Text Format") > Then > strParagraphText = data.GetData("Rich > Text Format", True) > End If > > As it intereferes with user copy\paste functionality I just want to findout > whether there are any other possible ways to extract RTF text without using > clipboard logic. > > -- > Cheers, > Rama Hi Rama, I would have Word transfer the formatted currently selected text into a brand new document (without the clipboard), then have Word save it as an RTF file, then open that RTF file into a string variable and here we are. Dim Object1 as Selection, T as String, RTF as String '1. transfer the currently selected text to a new document without the clipboard: Set Object1 = Selection Documents.Add Selection.FormattedText = Object1.FormattedText '2. Save new doc as RTF then close it ActiveDocument.SaveAs "MyRTF.rtf", FileFormat:=wdFormatRTF ActiveDocument.Close savechanges:=wdDoNotSaveChanges '3. Grab the text in that file on disk: Open "MyRTF.rtf" For Input As #1 Do While Not EOF(1) Line Input #1, T RTF = RTF + vbCr + T Loop Close #1 Kill "MyRTF.rtf" = = = = The RTF string variable contains your RTF text. Does this help? Yves Champollion www.champollion.net
From: Rama on 6 Mar 2007 04:44 Hi Yves , Thanks for the reply. But I've to collect each and every table's(20 x 70) cell value in RTF. in this case if I've more than 10 tables then using the new instance logic would consume more time and is prone to errors with many word instances open. Is there any other way to get the RTF. for example if you look at "EnhMetaFileBits" property of office 2003 you can easily capture pictures without any clipboard functionality. -- Cheers, Rama "yves(a)champollion.net" wrote: > On Mar 5, 12:44 pm, Rama <R...(a)discussions.microsoft.com> wrote: > > Hi All, > > I'm trying to extract RTF text from a given word document and I'm > > using clipboard functionality to get RTF text which is as follows. I'm using > > .NET technology. I dont mind accepting VB6\VBA solution. > > > > Dim data As IDataObject > > oParagragh.Range.CopyAsPicture() > > data = Clipboard.GetDataObject() > > If Not data Is Nothing AndAlso _ > > data.GetDataPresent("Rich Text Format") > > Then > > strParagraphText = data.GetData("Rich > > Text Format", True) > > End If > > > > As it intereferes with user copy\paste functionality I just want to findout > > whether there are any other possible ways to extract RTF text without using > > clipboard logic. > > > > -- > > Cheers, > > Rama > > Hi Rama, > > I would have Word transfer the formatted currently selected text into > a brand new document (without the clipboard), then have Word save it > as an RTF file, then open that RTF file into a string variable and > here we are. > > Dim Object1 as Selection, T as String, RTF as String > > '1. transfer the currently selected text to a new document without the > clipboard: > > Set Object1 = Selection > Documents.Add > Selection.FormattedText = Object1.FormattedText > > '2. Save new doc as RTF then close it > > ActiveDocument.SaveAs "MyRTF.rtf", FileFormat:=wdFormatRTF > ActiveDocument.Close savechanges:=wdDoNotSaveChanges > > '3. Grab the text in that file on disk: > > Open "MyRTF.rtf" For Input As #1 > Do While Not EOF(1) > Line Input #1, T > RTF = RTF + vbCr + T > Loop > Close #1 > > Kill "MyRTF.rtf" > > = = = = > > The RTF string variable contains your RTF text. > Does this help? > > Yves Champollion > > www.champollion.net > >
|
Pages: 1 Prev: Returning a find within a range Next: Watermark only appears in first section |