Rtf to Pdf poca calidad y descuadrado
Rtf to Pdf poca calidad y descuadrado
Hola a todos
He incluido una rutina que he visto en el foro para convertir en pdf archivos rtf utilizando la clase richEdi5. En este caso tiene un logo en color, el nombre de la empresa y la dirección, pero he observado que en el pdf generado el logo sale pixelado y en general sale todo desplazado hacia la derecha y hacia abajo. ¿Hay que hacer algún ajuste más?
Aquí os dejo el en lace descarga del zip que contiene el prg, el archivo rtf de ejemplo y el pdf generado.
https://mega.nz/file/hso1XYBD#hxys4DT-j ... 2jnB0rZjXA
Un saludo
He incluido una rutina que he visto en el foro para convertir en pdf archivos rtf utilizando la clase richEdi5. En este caso tiene un logo en color, el nombre de la empresa y la dirección, pero he observado que en el pdf generado el logo sale pixelado y en general sale todo desplazado hacia la derecha y hacia abajo. ¿Hay que hacer algún ajuste más?
Aquí os dejo el en lace descarga del zip que contiene el prg, el archivo rtf de ejemplo y el pdf generado.
https://mega.nz/file/hso1XYBD#hxys4DT-j ... 2jnB0rZjXA
Un saludo
FWH 20.12 BCC7
Re: Rtf to Pdf poca calidad y descuadrado
Intenta asi:
Saludos.
Code: Select all
#include "fivewin.ch"
#include "Constant.ch"
#include "RichEdit.ch"
//-----------INFORME A PDF---------------------
FUNCTION infotopdf()
LOCAL oBar, oWnd
LOCAL cRtf, cPdf, lOpen, cFile
LOCAL hDLL := LoadLibrary( "Riched20.dll" )
cFile := "modelo.RTF"
cRtf := cfile
DEFINE WINDOW oWnd TITLE "RTF to PDF" MDI
DEFINE BUTTONBAR oBar OF oWnd SIZE 100, 32 2010
DEFINE BUTTON OF oBar PROMPT "Generar PDF" ;
ACTION RTFTOPDF( cRtf, cPdf, lOpen )
oWnd:oWndClient:bPainted := ;
{ || oWnd:oWndClient:DrawImage( "c:\fwh\bitmaps\fivetech.bmp", ;
{ NIL, NIL, -10, -10 }, .f., nil, nil, nil, "BR" ) }
ACTIVATE WINDOW oWnd CENTERED
FreeLibrary( hDLL )
RETURN nil
FUNCTION RTFTOPDF( cRTF, cPDF, lOpen )
LOCAL oWnd, oRtf, cTxt := ""
IF Empty( cRtf ) .OR. .NOT. File( cRTF ) .OR. ;
Lower( cFileExt( cRtf ) ) != "rtf"
MsgInfo( "No localizo el .RTF", "Atencion" )
RETURN( .F. )
ENDIF
DEFAULT cPDF := cRTF, lOpen := .T.
cPDF := cFileSetExt( cPDF, "pdf" )
FErase( cPDF )
DEFINE WINDOW oWnd
@ 0, 0 RICHEDIT oRtf VAR cTxt OF oWnd FILE cRTF
oWnd:oClient := oRtf
ACTIVATE WINDOW oWnd HIDDEN ON INIT ;
( oRtf:SaveToPDF( cFileNoExt( cPdf ), cPDF, lOpen ), oWnd:End() )
RETURN File( cPDF )
João Santos - São Paulo - Brasil
Re: Rtf to Pdf poca calidad y descuadrado
Gracias, João, por contestar
He probado lo que me has indicado y el resultado es el siguiente:
El archivo rtf;
El archivo pdf:
Como aclaración decirte que la plantilla rtf la he creado con LibreOffice, que no sé si tendrá algo que ver, pero como podrás observar en el pdf no aparece el encabezado que está formado por una tabla con tres columnas, y además el texto, que es arial, no es fiel al original.
No sé qué puede ser. Tengo Windows 10 y FWH18.04
Un saludo
He probado lo que me has indicado y el resultado es el siguiente:
El archivo rtf;
El archivo pdf:
Como aclaración decirte que la plantilla rtf la he creado con LibreOffice, que no sé si tendrá algo que ver, pero como podrás observar en el pdf no aparece el encabezado que está formado por una tabla con tres columnas, y además el texto, que es arial, no es fiel al original.
No sé qué puede ser. Tengo Windows 10 y FWH18.04
Un saludo
FWH 20.12 BCC7
Re: Rtf to Pdf poca calidad y descuadrado
Por favor, indícame en la imagen que adjunto qué es a lo que te refieres.
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Rtf to Pdf poca calidad y descuadrado
Hola, CNavarro.
A ti te ha salido bien le pdf. Como le comentaba a João y como podrás observas en las imágenes que arriba he insertado, el pdf que me genera del rtf que tomo como base no parece en nada . ¿Has insertado alguna rutina especial en el código de João? De todas maneras, en la imagen que me adjuntas el encabezado sale desplazado un poco hacia abajo, añade más margen en la derecha y el párrafo tiene más líneas.
La imagen de la izquierda es el pdf que has adjuntado y el de la derecha el la previsualización con el LIbreOffice.
Por cierto -este ya es otro tema-, no he podido compilar testrtf5 que se encuentra en samples ya que Fivedit me arroja el siguiente error:
A ti te ha salido bien le pdf. Como le comentaba a João y como podrás observas en las imágenes que arriba he insertado, el pdf que me genera del rtf que tomo como base no parece en nada . ¿Has insertado alguna rutina especial en el código de João? De todas maneras, en la imagen que me adjuntas el encabezado sale desplazado un poco hacia abajo, añade más margen en la derecha y el párrafo tiene más líneas.
La imagen de la izquierda es el pdf que has adjuntado y el de la derecha el la previsualización con el LIbreOffice.
Por cierto -este ya es otro tema-, no he podido compilar testrtf5 que se encuentra en samples ya que Fivedit me arroja el siguiente error:
FWH 20.12 BCC7
Re: Rtf to Pdf poca calidad y descuadrado
Ramón, para que pueda linkar correctamente ( es un problema de versiones ), pon esto al final del prg
Code: Select all
FUNCTION OleUIInsertObject()
RETURN NIL
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Rtf to Pdf poca calidad y descuadrado
Muchas gracias, C. Navarro. Intentaré buscar otras alternativas. Abriré otro tema, porque la creación de pdf desde rtf me lleva de cabeza.
FWH 20.12 BCC7
Re: Rtf to Pdf poca calidad y descuadrado
Creo que el problema es:
1.- Qué aplicación genera el RTF
2.- Versión de Fw que utilizas
Esta apreciación es por lo que yo obtengo al generar el PDF con la versión actual de Fw
1.- Qué aplicación genera el RTF
2.- Versión de Fw que utilizas
Esta apreciación es por lo que yo obtengo al generar el PDF con la versión actual de Fw
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Rtf to Pdf poca calidad y descuadrado
Hola, C. Navarro.
Uso FWH FWH18.04 y Windows 10.
El RTF lo genera el propio FWH. El procedimiento es el siguiente:
Creo un plantilla con LibreOffice en la que únicamente aparece el logotipo, la dirección y poco más y la guardo en formato RTF. A partir de ahí se empieza a introducir texto en el propio archivo RTF creado y se guarda. Básicamente el procedimiento es el siguiente:
Como verás lo que hago es que ,tomando como plantilla un documento RTF en blanco (únicamente con el logotipo y la dirección), creo el RTF renombrándolo con el numero del recno() en la subcarpeta de la empresa que también se crea, lo abro, se introduce el texto y se guarda. Ni siguiera utilizo campos MEMO porque muchas veces el texto es muy extenso y además incluye tablas. Además, no tengo confianza con _ MEMO para _.
Luego con la siguiente función creo los PDF, pero el resultado no es un reflejo muy fiel al fichero RTF creado:
Uso FWH FWH18.04 y Windows 10.
El RTF lo genera el propio FWH. El procedimiento es el siguiente:
Creo un plantilla con LibreOffice en la que únicamente aparece el logotipo, la dirección y poco más y la guardo en formato RTF. A partir de ahí se empieza a introducir texto en el propio archivo RTF creado y se guarda. Básicamente el procedimiento es el siguiente:
Code: Select all
Function creainforme(nRecnoDoc, cnumero, cnombre, obrwregdoc)
local ctextbase, cplantilla, ctxtfile, cbase
Local cRaiz:="\COMPARTIDO\REGSAT\WINSAT\DOCUMENTAL"
Local cnum, cnom, CarpetaSAT, nlibro, libro, fecha, dfecha,clasedoc,cClasedoc
Local aFiles, aDir, apunte
Local cFolder
local cFile:=strzero(nRecnoDoc,8)+".RTF"
local cFichero:="\COMPARTIDO\REGSAT\WINSAT\RTFINT\"+strzero(nRecnoDoc,8)+".RTF"
nlibro = REG->NUM_LIB
dFecha = REG->FECHA
clasedoc =REG->CLASE_DOC
cNum:=Cnumero
cNom:=cnombre
CarpetaSAT:=alltrim(cnum)+"-"+alltrim(cnom)
libro:=strzero(nlibro,6)
fecha:=strzero(day(dfecha),2)+strzero(month(dfecha),2)+str(year(dfecha),4)
apunte:=libro+"-"+fecha+"-"+alltrim(clasedoc)
cFolder:=cRaiz+"\"+CarpetaSAT+"\"+Libro+"\"+fecha+"\"+Clasedoc+"\"
IF FILE("\COMPARTIDO\REGSAT\WINSAT\RTFINT\"+strzero(nRecnoDoc,8)+".RTF") .AND. FILE("\COMPARTIDO\REGSAT\WINSAT\RTFINT\"+cfichero)
MsgAlert("Ya existe el fichero."+CRLF+;
"Puede modificarlo en edición", "Archivo ya existe")
endif
ctextbase:= MEMOREAD("\COMPARTIDO\REGSAT\WINSAT\plantillas\informe.rtf") //ESTA ES LA PLANTILLA RTF
IF !FILE("\COMPARTIDO\REGSAT\WINSAT\plantillas\informe.rtf")
MsgStop("El archivo base no existe","Error")
RETURN nil
ENDIF
cFichero:=strzero(nRecnoDoc,8)+".RTF"
memoread("\COMPARTIDO\REGSAT\WINSAT\plantillas\informe.rtf")
cTxtFile:=MemoRead("\COMPARTIDO\REGSAT\WINSAT\plantillas\informe.rtf")
memowrit("\COMPARTIDO\REGSAT\WINSAT\RTFINT\"+cfichero, cTxtFile,.f. )
memowrit("\COMPARTIDO\REGSAT\WINSAT\DOCUMENTAL\"+CarpetaSAT+"\"+"DIARIO"+"\"+apunte+"\"+"i"+cfichero, cTxtFile,.f. )
if reg->(flock())
reg->fecha_ni:=date()
reg->fileint:=Cfichero
reg->(dbunlock())
oBrwregdoc:refresh()
endif
Msginfo("Se ha creado fichero "+cfichero)
obrwregdoc:refresh()
//opendoc(nRecnoDoc, cFichero, oBrwregdoc)
RETURN nil
Luego con la siguiente función creo los PDF, pero el resultado no es un reflejo muy fiel al fichero RTF creado:
Code: Select all
Function infotopdf (nRecnoDoc, cnumero, cnombre, obrwregdoc)
local oWnd, oBar
local cRtf, cPdf, lOpen, cFile
local cFichero, ctextbase, cplantilla, ctxtfile, cbase
Local cRaiz:="\COMPARTIDO\REGSAT\WINSAT\DOCUMENTAL"
Local cnum, cnom, CarpetaSAT, nlibro, libro, fecha, dfecha,clasedoc,cClasedoc
Local aFiles, aDir
Local cFolder, apunte
LOCAL hDLL := LoadLibrary( "Riched20.dll" )
cFile:=strzero(nRecnoDoc,8)+".RTF"
cFichero:="\COMPARTIDO\REGSAT\WINSAT\RTFINT\"+strzero(nRecnoDoc,8)+".RTF"
IF !FILE("\COMPARTIDO\REGSAT\WINSAT\RTFINT\"+strzero(nRecnoDoc,8)+".RTF")
//MsgNoYes( "El archivo existe. Se va a eliminar el existente y crear uno nuevo. ¿Desea continuar?","Aviso")
MsgAlert("No existe el fichero"+cfichero)
return .f.
endif
nlibro = REG->NUM_LIB
dFecha = REG->FECHA
clasedoc =REG->CLASE_DOC
cNum:=Cnumero
cNom:=cnombre
CarpetaSAT:=alltrim(cnum)+"-"+alltrim(cnom)
libro:=strzero(nlibro,6)
fecha:=strzero(day(dfecha),2)+strzero(month(dfecha),2)+str(year(dfecha),4)
apunte:=libro+"-"+fecha+"-"+alltrim(clasedoc)
cFolder:=cRaiz+"\"+CarpetaSAT+"\"+Libro+"\"+fecha+"\"+Clasedoc+"\"+cfile
cRtf:="\COMPARTIDO\REGSAT\WINSAT\DOCUMENTAL\"+CarpetaSAT+"\"+"DIARIO"+"\"+apunte+"\"+"i"+cfile
DEFINE WINDOW oWnd TITLE "PDF"
DEFINE BUTTONBAR oBar OF oWnd SIZE 100,32 2010
DEFINE BUTTON OF oBar PROMPT "Generar PDF" ;
ACTION RTFTOPDF(cRtf, cPdf, lOpen )
ACTIVATE WINDOW oWnd CENTERED
return nil
FWH 20.12 BCC7
Re: Rtf to Pdf poca calidad y descuadrado
João Santos - São Paulo - Brasil