PDA

Ver la Versión Completa : Convertir de .doc a .pdf


santiago14
22-05-2014, 01:01:14
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,


...¿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:

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:

Convert doc to pdf programmatically with out using WORD / thirdparty tools (http://stackoverflow.com/questions/20950155/convert-doc-to-pdf-programmatically-with-out-using-word-thirdparty-tools)


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
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,


...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
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,


...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.


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


Revisa esta información:

Complemento de Microsoft Office 2007: Guardar como PDF o XPS de Microsoft (http://www.microsoft.com/es-es/download/details.aspx?id=7)
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.