CONTADOR DE PAGINAS DE UM PDF

SCASTRO 29/07/2011 15:58:56
#380308
Como posso saber o total de paginas de um PDF. Com arquivos TIF utilizando Imgedit era atraves da propriedade PageCount.
TECLA 29/07/2011 21:18:09
#380343
Não testei, mas segue um código que tem esse objetivo.

Dim pages As Long

Public Sub pagecount(sfilename As String)
On Error GoTo a
Dim nFileNum As Integer
Dim s As String
Dim c As Integer
Dim pos, pos1 As Integer
pos = 0
pos1 = 0
c = 0
[ô] Get an available file number from the system
nFileNum = FreeFile
[ô]OPEN the PDF file in Binary mode
Open sfilename For Binary Lock Read Write As #nFileNum
[ô] Get the data from the file
Do Until EOF(nFileNum)
Input #1, s
c = c + 1
If c <= 10 Then
pos = InStr(s, [Ô]/N[Ô])
End If
pos1 = InStr(s, [Ô]/count[Ô])
If pos > 0 Or pos1 > 0 Then
Close #nFileNum
s = Trim(Mid(s, pos, 10))
s = Replace(s, [Ô]/N[Ô], [Ô][Ô])
s = Replace(s, [Ô]/count[Ô], [Ô][Ô])
s = Replace(s, [Ô] [Ô], [Ô][Ô])
s = Replace(s, [Ô]/[Ô], [Ô][Ô])
For i = 65 To 125
s = Replace(s, Chr(i), [Ô][Ô])
Next
pages = Val(Trim(s))
If pages < 0 Then
pages = 1
End If
Close #nFileNum
Exit Sub
End If
[ô]imp only 1000 lines searches
If c >= 1000 Then
GoTo a
End If
Loop
Close #nFileNum
Exit Sub
a:
Close #nFileNum
pages = 1
Exit Sub
End Sub

Private Sub Command1_Click()
pagecount ([Ô]c:\path    o\your.pdf[Ô])
Label1.Caption = pages
End Sub
ALTAFIN 29/07/2011 22:43:20
#380346
Nossa, Tecla!!!! hahahaha . A tempos que não via uma rotina com o comando GoTo... usei muito nos tempos do Basic para MSX.
SCASTRO 04/08/2011 07:56:09
#380776
Obrigado, mas não esta legal. Para qualquer arquivo PDF a resposta é sempre 1 página.
SCASTRO 04/08/2011 11:00:20
#380804
Consegui um codigo mas falta o componente para criar o objeto:

Set AcroPDDoc = CreateObject([Ô]AcroExch.PDDoc[Ô])
Set pdDoc = CreateObject([Ô]AcroExch.PDDoc[Ô])

Erro:Activex component can't create object
Tópico encerrado , respostas não são mais permitidas