Here is a hack that I did to openjade.1.3 (http://openjade.sourceforge.net/)
I don't know if it will help or not.
bool RtfFOTBuilder::includePicture(const ExternalGraphicNIC &nic)
{
  StringC filename;
  char fileNbuf[30];
  char fileCbuf[35];
  char scalex[35];
  char scaley[35];
  char picw[35];
  char pich[35];
  char picwgoal[35];
  char pichgoal[35];
  char x, y, *ptr;
  int buf;
  int ii = 1;
  FILE *inFile;
  FILE *inCFile;
  size_t i;
  if (systemIdFilename(nic.entitySystemId, filename)) {
   if(getenv("JADE_EMBED") != (char *)0) {
       for (i = 0; i < filename.size(); i++) {
          fileNbuf[i] = filename[i];
       }
       fileNbuf[i] = 0;
       if((ptr = strrchr(fileNbuf, '.')) == NULL){
         printf("ERROR: graphic file %s those not have extension\n",
fileNbuf);
         exit(1);
       }
       ptr++;
       if(strcmp(ptr, "jpg") == 0)       { os() <<
"\r\n{\\pict\\jpegblip\r\n"; }
       else if (strcmp(ptr, "gif") == 0) { os() <<
"\r\n{\\pict\\pngblip\r\n"; }
       else if (strcmp(ptr, "wmf") == 0) { os() <<
"\r\n{\\pict\\wmetafile8"; }
       else {
         printf("ERROR:graphic file %s has a NONsupported extension\n",
fileNbuf);
         exit(1);
       }
      strcpy(fileCbuf, "C.");
      strcat(fileCbuf, fileNbuf);
      if((inCFile = fopen((const char *)&fileCbuf[0], "r")) != NULL){
      // fscanf(inCFile, "%s %s %s %s %s %s", scalex, scaley, picw, pich,
picwgoal, pichgoal);
         fscanf(inCFile, "%s %s", scalex, scaley);
         os() << "\\picscalex";
         os() << scalex;
         os() << "\\picscaley";
         os() << scaley;
      // os() << "\\picw";
      // os() << picw;
      // os() << "\\pich";
      // os() << pich;
      // os() << "\\picwgoal";
      // os() << picwgoal;
      // os() << "\\pichgoal";
      // os() << pichgoal;
         os() << "\r\n";
         fclose(inCFile);
      }

       if((inFile = fopen((const char *)&fileNbuf[0], "r")) == NULL){
         printf("ERROR:opening graphic file %s errno=%i\n", fileNbuf,
errno);
         exit(1);
       }
       while((buf = fgetc(inFile)) != EOF){
         x = (buf & 0xF0) >> 4;
         y = (buf & 0x0F);
         x = ((x < 10) ? (x + 48) : (x + 87));
         os() << x;
         y = ((y < 10) ? (y + 48) : (y + 87));
         os() << y;
         if(!(ii++ % 78)){os() << "\r\n";}
       }
       fclose(inFile);
       os() << "\r\n}";
   } else {
       os() << "{\\field\\flddirty{\\*\\fldinst INCLUDEPICTURE \"";
       // FIXME non-ascii characters
       for (i = 0; i < filename.size(); i++) {
         if (filename[i] == '\\')
      os() << "\\\\\\\\";
         else
      os() << char(filename[i]);
       }
       os() << "\" }{\\fldrslt }}";
   }
   return 1;
  }
  return 0;
}

The part you may be interested in is:

while((buf = fgetc(inFile)) != EOF){
         x = (buf & 0xF0) >> 4;
         y = (buf & 0x0F);
         x = ((x < 10) ? (x + 48) : (x + 87));
         os() << x;
         y = ((y < 10) ? (y + 48) : (y + 87));
         os() << y;
         if(!(ii++ % 78)){os() << "\r\n";}
       }

you have to convert the binary image to 7bit


Steven Oney
[EMAIL PROTECTED]


-----Original Message-----
From: Kin-Yip Tsang [mailto:[EMAIL PROTECTED]]
Sent: Monday, July 30, 2001 9:22 AM
To: [EMAIL PROTECTED]
Subject: Re: FO to RTF


i'm also looking for it. i'm a student working on this RTF converter. do
you know anything about OLE? i want to try embedding a bmp image into
RTF to see if it works, but i've found there's something more than that.
what i mean is there seems to be some more hex data apart from the
proper bmp data. and i've spent the whole day looking for the
documentation in microsoft.com but still can't find the OLE
documentation.

and the \par is also a problem. sometimes \par can't be applied to the
end of some blocks, otherwise there'll be extra linefeeds, and i really
don't know how to make the program very general.

marco

Jean-François Selber wrote:
> 
> Do you know a way to transforme XSL-FO to RTF?
> 
> Thanks
> JF
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to