PDA

Ver la Versión Completa : Ayuda para enviar pdf por fax, usando Delphi 7


manolop
14-03-2007, 13:43:12
Hola a todos, estoy ya varios dias dandole vueltas a un tema. Necesito enviar por fax archivos pdf y no consigo saber la forma de hacerlo. He leido algo de instalar el fax de windows pero lo he intentado y nada, y en todo caso preferiría hacerlo desde la aplicación si fuera posible. Pero ya en este punto acepto cualquier posible solución, muchas gracias de antemano por leer estas lineas.

Neftali [Germán.Estévez]
14-03-2007, 13:53:31
No estoy muy "puesto" en el tema, pero recuerdo que hace tiempo se podían enviar FAX desde el Outlook (Exchange) como si enviaras un correo (en lugar de la dirección colocabas el número de teléfono).
Si no lo usas, pues nada, pero si lo usas puedes invertigar por ahí...

ArdiIIa
14-03-2007, 14:32:54
La idea es que has de generar gráficos de tus PDF.
Una vez generados los gráficos, se envían mediante fax (por supuesto instalado en la máquina).

A ver si te sirve:


procedure TFormPresupuesto_Prov.Generar_Fax(Sender: TObject);
Var
sr: TSearchRec;
OpenFileBmp,SaveFileName,Anchor : OleVariant;
Fax,FaxDoc: Variant;
begin

TRY
IsFax := True;
Prepare_Documento;
WordDocument1.Connect;
WordDocument1.PageSetup.Orientation := wdOrientLandscape;
WordDocument1.PageSetup.LeftMargin := 42.55; //Puntos (1,5 centímetros)
WordDocument1.PageSetup.TopMargin := 42.55; //Puntos (1,5 centímetros)
WordDocument1.PageSetup.BottomMargin := 56.7; //Puntos (2 centímetros)

SaveFileName := ExtractFilePath(Application.Exename) + 'FAX\FAX.DOC';


if findFirst(ExtractFilePath(Application.Exename) + 'FAX\*.bmp',faAnyFile ,sr) = 0 THEN
REPEAT
OpenfileBMP := ExtractFilePath(Application.Exename) + 'FAX\' + SR.Name;
Anchor := DataModulePedProv.WordDocument1.Words.Last;

WordDocument1.InlineShapes.AddPicture(OpenFileBmp,EmptyParam,EmptyParam,Anchor);
WordDocument1.InlineShapes.Item(1).ScaleHeight := 95;
WordDocument1.InlineShapes.Item(1).ScaleWidth := 95;
until FindNext(sr) <> 0;

FindClose(sr);

WordDocument1.SaveAs2000(SaveFileName);
WordDocument1.Close;
WordDocument1.Disconnect;

Fax := CreateOleObject('FaxServer.FaxServer');
Fax.Connect(FormMain.HostName);
FaxDoc := Fax.CreateDocument(ExtractFilePath(Application.Exename) + 'FAX\FAX.DOC');

if IBQueryPresupuesto_Cab.FieldByName('SYS_EMPRESA').AsString = 'S' then
FaxDoc.FaxNumber := IbQueryContactos.FieldByName('emp_fax').AsString
else
FaxDoc.FaxNumber := IbQueryContactos.FieldByName('fax').AsString ;


FaxDoc.RecipientName := IbQueryContactos.FieldByName('emp_nombre').AsString;


(******* DATOS DE LA EMPRESA ****************)
FaxDoc.SenderName := 'TU EMPRESA';
FaxDoc.SenderCompany := 'NOMBRE EMPRESA';
FaxDoc.SenderDepartment := 'GESTIÓN Y DESARROLLO';
FaxDoc.DisplayName := 'PETICION DE PRESUPUESTO';
FaxDoc.Send;
Fax.Disconnect;
Fax := NULL;
FaxDoc := NULL;

finally
IsFax := False;
End;

Aviso('FAX ENVIADO CORRECTAMENTE');

end;

ArdiIIa
14-03-2007, 14:38:25
Se me olvidaba decirte que el procedimiento Prepare_Documento, lo que hace es generar los gráficos, en mis caso tomo un documento con sus líneas y mediante FastReport, genero el gráfico del documento.... y está separado del anterior, porque también lo utilizo para el envío de mails.



if IsFax then
frReportPed_Presupuesto.ExportTo(DataModulePedProv.frBMPExport1, Result + 'Presupuesto')
Else
frReportPed_Presupuesto.ExportTo(DataModulePedProv.frJPEGExport1, Result + 'Presupuesto')

Saludos.

manolop
15-03-2007, 11:40:41
Perdona ardilla pero yo solo tengo un archivo pdf y todo lo que me has puesto me ha liado un poco. En cuanto al fax instalado en la maquina, supongo que te refieres a la impresora fax de windows, verdad?. Y en cuando al ejemplo, te agradezco un montón tu interes pero si fueras un pelin más concreto te lo agradecería más aun.

ArdiIIa
15-03-2007, 12:35:55
En cuanto al fax instalado en la maquina, supongo que te refieres a la impresora fax de windows, verdad?.
Ciertamente.

Veamos:
Es obvio que un PDF no lo vas a enviar por fax "tal cual", primeramente has de convertirlo a algún formato gráfico; luego anteriormente yo te explicaba a modo de ejemplo que mis listados primeramente los convertía a gráficos (utilizando FastReport), en ese caso a tipo bmp, y una vez convertidos en archivos gráficos, son "enchufados" y enviados al FAX.

En tu caso necesitarás algo para hacer esa conversión de PDF a gráfico y seguidamente dar los pasos oportunos para el envío del fax.

Puedes buscar algoritmos de conversión de PDF a gráfico o herramientas tales como esta... (http://www.verypdf.com/pdf2tif/pdf-to-fax.html).

Otra opción sería imprimir directamente el PDF en la impresora FAX...

Neftali [Germán.Estévez]
15-03-2007, 12:48:19
No estoy muy "puesto" en el tema, pero recuerdo que hace tiempo se podían enviar FAX desde el Outlook (Exchange) como si enviaras un correo (en lugar de la dirección colocabas el número de teléfono).
Si no lo usas, pues nada, pero si lo usas puedes invertigar por ahí...

Esto es a lo que me refería:
http://www.byui.edu/help/outlookhelp/mailing/fax.htm