Saludos amigos, estoy intentando crear una funcion que realice esta tarea, para ello hago los siguientes pasos:
1. Leo el archivo RTF y lo almaceno en un componente TRxRichEdit creado en tiempo de ejecucion para no usar la alternativa visual.
2. Ese RTF lo cambio a texto plano usando las propiedades del TRxRichEdit.
3. El Texto Plano lo uso como insumo para generar el PDF (para lo cual estoy usando la libreria VisLib).
La funcion que uso es la siguiente:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
a: TRxRichEdit;
p: TForm;
contenido: TMemoryStream;
begin
contenido:=TMemoryStream.Create;
p := TForm.Create(nil);
a := TRxRichEdit.Create(p);
a.Parent := p;
a.Lines.LoadFromFile('doc1.rtf');
a.PlainText := True;
a.Lines.SaveToStream(contenido);
VPDF1.FileName:='salida.pdf';
VPDF1.BeginDoc; VPDF1.CurrentPage.TextOut(10, 10, 0, a.Text);
VPDF1.EndDoc;
a.Free;
p.Free;
end;
Debido a que los textos en el archivo RTF son documentos, ellos tienen saltos de carro para separar los parrafos.
Por ejemplo si tengo el texto:
/////////////////////////////////////////
Rioja, 24 de Octubre del 2012
Señor Alamiro Rojas Valverde
Estimado Señor: ...
/////////////////////////////////////////
A la hora de Generar el PDF se ve lo siguiente:
Rioja, 24 de Octubre del 2012Señor Alamiro Rojas ValverdeEstimado Señor: ...
Es decir no toma en cuenta los saltos de carro. Por eso estaba intentando cargar los datos a un TMemoryStream, pero me kede en esa parte.
Agradezco las ideas que puedan aportarse en este tema.
Un Abrazo.
Americo