Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   ¿Cuantas páginas tiene un documento? (https://www.clubdelphi.com/foros/showthread.php?t=82469)

Angel.Matilla 09-03-2013 20:02:45

¿Cuantas páginas tiene un documento?
 
¿Cómo podemos saber cuantas páginas tiene un documento, PDF u ODT por ejemplo, sin tener que abrirlo con el porgrama asociado? Quiero decir: Leyendo por ejemplo con un fread el fichero ¿dónde encuentro algún dato que me indique cuantas páginas tiene ese fichero?

Casimiro Notevi 09-03-2013 20:17:48

Cita:

Empezado por Angel.Matilla (Mensaje 456325)
PDF u ODT por ejemplo, sin tener que abrirlo..

En principio no puedes, salvo que tuvieras algún componente/controlador/plugin/etc. que "entendiera" el tipo de fichero que quieres abrir y supiera contar las páginas, o leerlo si está almacenado en algún sitio del documento.
Pero esto cambiaría con cada tipo de fichero, así que "en principio", no puedes hacerlo.

Al González 09-03-2013 20:55:22

Un documento .odt, del estándar ODF, es un paquete ZIP que contiene varios archivos XML.

No lo he hecho pero parece algo sencillo. Primero debes descomprimir el documento (para ello hay muchas bibliotecas de componentes), luego abrir el archivo llamado meta.xml, localizar su elemento /office:document-meta/office:meta/meta:document-statistic y leer de él su atributo meta:page-count.

Si usaras Delphi 7 te diría que para esto último te apoyaras en la clase TghXMLDoc. Pero tampoco en esto te será mayor problema usar directamente MSXML o el componente XML que prefieras (o incluso leer "en crudo" el archivo de texto meta.xml).

Para documentos .odt, el dato que buscas está en el nodo XML que te comento.

Aquí algo más sobre el tema.

Saludos.

Al González.

Angel.Matilla 11-03-2013 13:15:55

Gracias por las respuestas. Estaba ayer pensado en este tema y se ma ha ocurrido que tal vez bastaría con contar los saltos de página (ASCCI 12) que haya en el fichero. ¿Voy desencaminado?

Al González 11-03-2013 18:07:45

Cita:

Empezado por Angel.Matilla (Mensaje 456384)
Gracias por las respuestas. Estaba ayer pensado en este tema y se ma ha ocurrido que tal vez bastaría con contar los saltos de página (ASCCI 12) que haya en el fichero. ¿Voy desencaminado?

Sí. :)

Con ODT no serviría. Un camino relativamente fácil es como dije antes: descomprimir el archivo y leer lo que viene después de "meta:page-count".

Y con PDF, al ser un formato binario, dudo que baste con buscar caracteres especiales.

Saludos.


La franja horaria es GMT +2. Ahora son las 07:17:15.

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