** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Extraer el número de páginas de un documento
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoExtraer el número de páginas de un documento

 Responder Responder Página  <12
Autor
Mensaje
happy Ver desplegable
Moderador
Moderador


Unido: 29/Enero/2005
Localización: España
Estado: Sin conexión
Puntos: 3192
Enlace directo a este mensaje Enviado: 04/Junio/2023 a las 13:17
Hola Jesús, yo creo que sí, que debe ser la herramienta con la que se crea el PDF. No entiendo mucho de PDFs, al menos de creación de PDFs, los PostScript y todo eso, pero sé que hay muchas plataformas, lenguajes de programación y cosas así que son capaces de crear PDFs, y muchas veces cada una de esas herramientas presumen de ser las que mayor compresión, calidad o lo que sea consiguen. Imagino que eso es porque utilizan diferentes técnicas para generar este tipo de documentos. Pero ya te digo, no lo sé bien
Saludos,

Juan M. Afan de Ribera
Arriba
RobertoCarlos Ver desplegable
Habitual
Habitual


Unido: 12/Marzo/2013
Localización: Bolivia
Estado: Sin conexión
Puntos: 168
Enlace directo a este mensaje Enviado: 28/Agosto/2023 a las 19:16
creo que el tema aún esta abierto, también creo haber dado la solución, de todas formas este código que me proporcionaron me funciono muy, solo tuve que adaptarlo a mi proyecto

Function funContarPaginasPDF(PonFichero As String) As Integer
      On Error GoTo Err_Local
      Rem www.accessdemo.info

      Dim objRegExp As Object
      Dim strInput As String
      Dim strNumPages As String
      Dim strRetVal As String
      Dim intFileNum As Integer
      Dim intPosN1 As Integer
      Dim intPosN2 As Integer
      Dim intPosCount1 As Integer
      Dim intPosCount2 As Integer


      If LCase(Right(PonFichero, 3)) <> "pdf" Then
            funContarPaginasPDF = 0
            Exit Function
      End If

      intFileNum = FreeFile
      Open PonFichero For Binary Lock Read Write As #intFileNum


      Set objRegExp = CreateObject("VBscript.RegExp")
      objRegExp.Global = True
      objRegExp.Pattern = "/Type\s*/Page[^s]"


      On Error Resume Next
      strRetVal = Space(LOF(intFileNum))
      Get #intFileNum, , strRetVal
      strNumPages = objRegExp.Execute(strRetVal).Count
      On Error GoTo Err_Local


      If strNumPages = "" Then

            Do Until EOF(intFileNum)
                  Input #1, strInput
                  strInput = UCase(strInput)
                  intPosN1 = InStr(1, strInput, "/N ") + 3
                  intPosN2 = InStr(intPosN1, strInput, "/")
                  intPosCount1 = InStr(1, strInput, "/COUNT ") + 7
                  intPosCount2 = InStr(intPosCount1, strInput, "/")

                  If intPosN1 > 3 Then
                        strNumPages = Mid(strInput, intPosN1, intPosN2 - intPosN1)
                        Exit Do
                  End If

                  If intPosCount1 > 7 Then
                        strNumPages = Mid(strInput, intPosCount1, intPosCount2 - intPosCount1)
                        Exit Do
                  End If

            Loop

      End If


Close_Local:
      Set objRegExp = Nothing
      Close #intFileNum
      funContarPaginasPDF = CInt(strNumPages)

Exit_Local:
      On Error GoTo 0
      Exit Function

Err_Local:
      MsgBox Err.Description, vbCritical, "Error N°:  " & Err.Number
      Resume Exit_Local
End Function

por favor cierren la pregunta ya que pude dar con la solición.
gracias

Roberto
Arriba
 Responder Responder Página  <12
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable