Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Eliminar páginas de un Word con Delphi (https://www.clubdelphi.com/foros/showthread.php?t=96455)

joanfran55 25-10-2023 09:56:18

Eliminar páginas de un Word con Delphi
 
Buenos días a todos.

Lo primero agradecer al foro la gran cantidad de dudas que he resuelto. Sin embargo, esta que propongo no la he encontrado en ninguna parte. Igual es demasiado sencillo pero llevo toda la mañana con esto y, la verdad, no encuentro nada parecido.

Es bastante sencillo, partimos de una plantilla de 58 páginas, y lo que quiero es decirle a Delphi que borre ciertas páginas, y deje el documento con las restantes. También me valdría definir el número de páginas, para que las últimas las elimine: por ejemplo, dejar este documento solo con las 14 primeras páginas.

Cita:

Word := CreateOleObject('Word.Application');

''Añadimos un documento basado en la plantilla
Word.Documents.Add('ubicacion de la plantilla');
Documento := Word.Documents.Item(1);
no sé si existe por ahí algún manual o documento para poder leer y revisar todo lo relacionado con el tratamiento de archivos de Office, Delphi ofrece millones de posibilidades, pero no he encontrado un manual donde esté todo lo relacionado.

saludos y gracias de antemano.

Neftali [Germán.Estévez] 25-10-2023 13:44:51

No se si todavía funcionará, pero yo en su día y para que sirviera de guía, lo que hacía era grabar una macro en Word/Excel con los pasos que quería hacer y luego revisar el código de la Macro.
Eso da una pista de por dónde van los métodos o de cómo hacerlo.

pgranados 25-10-2023 16:27:14

Respuesta de ChatGPT:

Si deseas eliminar una página específica, como la tercera página, en un documento de Word utilizando Delphi, necesitas identificar la ubicación de la página y luego eliminarla. Las páginas en Word no son objetos directos que se puedan eliminar de manera sencilla, por lo que una forma común de hacerlo es mediante la selección y eliminación del contenido de la página. Aquí tienes un ejemplo de cómo hacerlo:

Código Delphi [-]
uses
  ComObj, WordXP;

var
  WordApp: _Application;
  WordDoc: _Document;
  PageNumber: Integer;
begin
  WordApp := CreateOleObject('Word.Application') as _Application;
  WordApp.Visible := True;

  WordDoc := WordApp.Documents.Open('C:\Ruta\Al\Documento.docx');

  // Define el número de la página que deseas eliminar (por ejemplo, la tercera página).
  PageNumber := 3;

  // Selecciona el contenido de la página que deseas eliminar.
  WordApp.Selection.GoTo(wdGoToPage, wdGoToAbsolute, PageNumber);
  WordApp.Selection.EndKey(wdStory, wdMove);
  WordApp.Selection.Delete;

  WordDoc.Save;
  WordDoc.Close;
  WordApp.Quit;

  WordDoc := nil;
  WordApp := nil;
end.

Asegúrate de ajustar el valor de PageNumber al número de página que deseas eliminar. Este código se encargará de seleccionar el contenido de la página específica y eliminarlo, lo que efectivamente eliminará la página. Después de realizar la operación, el documento se guarda y se cierra.


La franja horaria es GMT +2. Ahora son las 07:02:21.

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