Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Convertir de .doc a .pdf (https://www.clubdelphi.com/foros/showthread.php?t=85904)

santiago14 22-05-2014 01:01:14

Convertir de .doc a .pdf
 
Bueno, el título es autoexplicativo.
¿Cómo hago para convertir un .doc que tengo en un directorio a un .pdf?
Lo quiero de manera nativa, los clientes no quieren usar pdfcreator o parecidos.
¿Algún código que resuelva el problema?

Gracias.

nlsgarcia 22-05-2014 07:53:01

santiago14,

Cita:

Empezado por santiago14
...¿Cómo hago para convertir un .doc que tengo en un directorio a un .pdf?...¿Algún código que resuelva el problema?...

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
   ExportFormatPDF = 17;

var
   Word, Doc: Variant;
   FileNameInput, FileNameOutput : String;

begin

   FileNameInput := 'C:\Document.docx';
   FileNameOutput := 'C:\Document.pdf';

   Word := CreateOLEObject('Word.Application');
   Word.Visible := False;

   Doc := Word.Documents.Open(FileNameInput);
   Doc.ExportAsFixedFormat(FileNameOutput, ExportFormatPDF);

   Word.Quit(False);

end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, convierte un documento de Word 2010 en formato docx a formato pdf por medio de Automatización.

Revisa esta información:
Espero sea útil :)

Nelson.

Casimiro Notevi 22-05-2014 10:37:39

Pensé que no se podía hacer.
^\||/

radenf 22-05-2014 13:14:37

Excelente aporte[nlsgarcia].
El código funciona perfecto en D2007 y Win7 64bits.
Saludos

santiago14 22-05-2014 14:00:22

1 Archivos Adjunto(s)
Cita:

Empezado por radenf (Mensaje 476716)
Excelente aporte[nlsgarcia].
El código funciona perfecto en D2007 y Win7 64bits.
Saludos

Lamentablemente no funciona en WXP y D7. Igual para W8 64 bits y D7.
Habría que dar una vuelta mas de tuerca.
Me sale el siguiente error:

nlsgarcia 22-05-2014 14:43:49

santiago14,

Cita:

Empezado por santiago14
...Lamentablemente no funciona en WXP y D7. Igual para W8 64 bits y D7...

Pregunto:

1- ¿Que versión de Office tienes instalada en Windows XP x32 y Windows 8 x64?.

2- ¿Que instrucción genera el error mencionado?.

3- ¿Tu versión de Office puede salvar documentos como PDF?.

Espero sea útil :)

Nelson.

santiago14 22-05-2014 15:04:09

Cita:

Empezado por nlsgarcia (Mensaje 476719)
santiago14,



Pregunto:

1- ¿Que versión de Office tienes instalada en Windows XP x32 y Windows 8 x64?.

2- ¿Que instrucción genera el error mencionado?.

3- ¿Tu versión de Office puede salvar documentos como PDF?.

Espero sea útil :)

Nelson.

1) Versión de Office: W8, Office 2007. WXP, Office 2003.
2) Instrucción que genera el error: Doc.ExportAsFixedFormat(FileNameOutput, ExportFormatPDF);
3) En W8 tengo Office 2007 pero no tiene la opción de salvar a PDF. Si es ese el problema. ¿Cómo agrego esa opción a Office 2007?
En WXP mi Office tampoco tiene la opción de salvar en PDF.

Supongo que será eso.

nlsgarcia 22-05-2014 17:28:50

santiago14,

Cita:

Empezado por santiago14
...Versión de Office: W8, Office 2007. WXP, Office 2003...

Te comento:

1- Las funciones de automatización dependen de la versión de Office instalada.

2- Office 2003 y Office 2007 no tienen la opción de salvar en formato PDF.

3- A partir de Office 2010 se incluyo la opción de salvar en formato PDF.

Cita:

Empezado por santiago14
...¿Cómo agrego esa opción a Office 2007?...

Revisa esta información:
Te comento:

1- El link anterior permite instalar un complemento a Office 2007 que habilita la opción de salvar un documento de Word en formato PDF.

2- El código del Msg #2, fue probado en Delphi 7 bajo Windows 8 Professional x32 y Office 2007 con el complemento sugerido y funciono correctamente según lo esperado.

Espero sea útil :)

Nelson.

santiago14 22-05-2014 18:15:04

Todo lo que pones es verdad, instalé el complemento en mi Office 2007 y pude exportar.

Gracias.

santiago14 03-06-2014 00:58:17

La verdad que la exportación vía objetos OLE está muy buena.
Lo único es que depende de tener instalado Office 2007 o superior.

Pregunto.
¿Alguien conoce un buen componente que sea capaz de pasar archivos .doc o .docx a .pdf? Estuve viendo Gnostice y no lo hace del todo bien.
QuickReport está descartado por la empresa (no se si hace eso)...
No importa si hay que comprarlo, si es gratis; mejor... pero no determinante.

Gracias.

Santiago.

MAXIUM 03-06-2014 01:48:24

Se me ocurre que talves puedas usar un utilitario externo. Uno de esos gratuitos de escasos kilobytes, donde pasas por parametro vía linea de comando. Dentro de Delphi lo haces correr background.

Dejame buscar.


La franja horaria es GMT +2. Ahora son las 22:02:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi