Re: .NET/Link and two-dimensional strings
- To: mathgroup at smc.vnet.net
- Subject: [mg67116] Re: .NET/Link and two-dimensional strings
- From: David Bailey <dave at Remove_Thisdbailey.co.uk>
- Date: Fri, 9 Jun 2006 01:09:41 -0400 (EDT)
- References: <e63msq$kqp$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
colin wrote: > The following two lines export a jpeg file containing RED text when > executed in a notebook: > > myText="\!\(\*StyleBox[\"my text\",\nFontColor->RGBColor[1, 0, 0]]\)"; > Export["C:\\Temp\\myText.jpg",Show[Graphics[Text[myText,{0,0}]]]]; > > If I put these same lines in a file called myText.txt, and then read > this file with the following .NET code, the kernel produces a jpeg file > containing BLACK text. > > using System; > using System.IO; > using Wolfram.NETLink; > > namespace WriTest > { > static class Program > { > static void Main() > { > MathKernel mathKernel = new MathKernel(); > > StreamReader streamReader = new > StreamReader(@"C:\Temp\myFile.txt"); > string command1 = streamReader.ReadLine(); > string command2 = streamReader.ReadLine(); > streamReader.Close(); > > mathKernel.Compute(command1); > string result1 = mathKernel.Result.ToString(); > > mathKernel.Compute(command2); > string result2 = mathKernel.Result.ToString(); > } > } > } > > Note an examination of command1 within the debugger, just before it is > sent to the kernel, produces the following string: > > "myText=\"\\!\\(\\*StyleBox[\\\"my text\\\",\\nFontColor->RGBColor[1, > 0, 0]]\\)\";" > > Wrapping ToExpression around this string in a Mathematica notebook > results in the desired red text. This problem seems to be related to > the need for the StyleBox which can only be found in a two-dimensional > string. Other two dimensional string also lead to problems. > > What is my problem? > > > Colin > I am much more familiar with J/Link rather than .NET/Link, but the point is that you can't expect strings containing 2-D expressions and/or font/style changes to work in .NET. I suggest you use Export to convert your string (or the expression that it represents) into a GIF file, and then pass that to .NET/Link and use it as an image. David Bailey http://www.dbaileyconsultancy.co.uk