2010-06-22 19 views
4

Je suis en train de convertir un fichier bitmap à l'aide de Delphi rtf 2007.Image non affichage dans le mot de ms après l'avoir converti de Bitmap au format RTF (mais l'affichage dans WordPad)

je le code ci-dessous pour la conversion.

function BitmapToRTF(pict: TBitmap): string; 
var 
    bi, bb, rtf: string; 
    bis, bbs: Cardinal; 
    achar: ShortString; 
    hexpict: string; 
    I: Integer; 
begin 
    GetDIBSizes(pict.Handle, bis, bbs); 
    SetLength(bi, bis); 
    SetLength(bb, bbs); 
    GetDIB(pict.Handle, pict.Palette, PChar(bi)^, PChar(bb)^); 
    rtf := '{\rtf1 {\pict\dibitmap0 '; 
    SetLength(hexpict, (Length(bb) + Length(bi)) * 2); 
    I := 2; 
    for bis := 1 to Length(bi) do 
    begin 
    achar := Format('%x', [Integer(bi[bis])]); 
    if Length(achar) = 1 then 
     achar := '0' + achar; 
    hexpict[I - 1] := achar[1]; 
    hexpict[I] := achar[2]; 
    Inc(I, 2); 
    end; 
    for bbs := 1 to Length(bb) do 
    begin 
    achar := Format('%x', [Integer(bb[bbs])]); 
    if Length(achar) = 1 then 
     achar := '0' + achar; 
    hexpict[I - 1] := achar[1]; 
    hexpict[I] := achar[2]; 
    Inc(I, 2); 
    end; 
    rtf := rtf + hexpict + ' }}'; 
    Result := rtf; 
end; 

Maintenant, mon problème est je n'ai pas pu voir l'image dans MS Word ou Viewer.

Mais Je peux voir l'image dans le pavé numérique.

S'il vous plaît me suggérer dans la résolution de ce problème.

+0

Vous voulez dire que vous convertissez un fichier BMP en un fichier RTF avec un fichier BMP intégré? –

+0

Oui, je veux dire que, l'incorporation d'un fichier bmp dans le document rtf – Bharat

+1

Prenez le fichier bmp, l'inclure manuellement dans Word, enregistrez le document au format rtf. Regardez les différences dans le fichier enregistré par rapport au vôtre. Essayez de supprimer le fichier rtf en supprimant les commandes apparemment superflues pour savoir lesquelles sont nécessaires pour Word. Mais c'est encombrant car différentes versions de Word ont différentes versions de RTF. –

Répondre

4

Je pense que le problème est que la mise en œuvre Word pour le rendu RTF demande plus d'informations que l'un (je pense que pour des raisons de sécurité débordement -éviter attacks-), mais c'est pure spéculation du Wordpad je dois avouer. Essayez d'être précis lorsque vous décrivez vos informations bitmap: par exemple si le bitmap est en 32 bits, utilisez \ wbmbitspixel32, mettez la largeur et la hauteur dans votre encodage rtf avec \ picw et \ pich, etc. Peut-être avez-vous de la chance avec cette.

Voici un exemple:

http://www.scribd.com/doc/25967552/Rtf1-Ansi-Ansicpg1252-Uc2-Deff0-Deflang1033-Fonttbl-f0-Froman-Fcharset0-Fprq2-Panose-02020603050405020304-Times-New-Roman-f1-Fswiss-Fchar

0

Comment convertir une image en fichier texte? RTF est RichtTextFormat je suppose?

Je voudrais prendre le bmp et le mettre avec l'API Microsoft Word dans un document et enregistrer le document était RTF.

Tobi

0

Si vous voulez voir l'image dans MS Word ou Word Viewer, convertir l'image en fichier EMF et l'intégrer dans les balises RTF. (Note: ici vous ne peux pas voir l'image dans Wordpad)

{\rtf1 {\pict\emfblif <emf source> }} 

Si vous voulez voir l'image dans Wordpad, convertir l'image en bitmap et incorporez à l'intérieur des balises RTF.

{\rtf1 {\pict\dibitmap0 <bitmap source> }} 

Je ne sais pas pourquoi cela se produit.