How can I view pdf meta-data in Windows Explorer?

I unsuccessfully used the "pages" feature in Windows Explorer, as well as in Directory Opus 10 and Free Commander XT (which I installed just for that reason, to try it out) to display the page count of multiple PDFs in a folder.

All my PDF's are free to edit, i.e. not write-protected. I don't understand why any PDF reader can display the (correct) page number, but none of the file explorers can? (In the "details" view of course.)

The only documents whose page count is displayed are MS Word documents.

As you know for such information a Shell Extension Handler for PDF should be installed, but is there any?

On a side-note: Did that change in Windows 8?

Initial research: Google search was unsuccessful, the only slightly related SE topic I found was "How to count pages in multiple PDF files?".

Windows 7 Home Professional 64b


For non-natively supported file types the Windows Shell needs shell extension handlers (sort of a plugin) to extend some of the Shell functionality to these file types.

Under Windows XP or earlier, the Shell uses the called Column Handler extension to show files metadata in the Windows Explorer details view columns.

Since Vista, the Shell uses the more versatile Property (or Metadata) Handler. This extension is also used to show and edit the files metadata on the Windows Explorer details pane and file properties details tab, and to show metadata on many other file dialogs (file delete confirmation, etc.). It's also required to have these files metadata indexed by the Windows Search indexer. The indexer may also use a IFilter extension to index the files text content.

The PDF file type is not natively supported by the Windows Shell (this has not changed in Windows 8.x, nor Windows 10), so you will need to install a PDF Property Handler in order to access the PDFs metadata.

I develop a commercial tool, the PDF-ShellTools, that provides the Windows Shell with a PDF Property Handler.


The free utility PDF Property Extension! by CoolSoft provides those columns, and also shows the information in the file properties dialog.

This utility appears to be quite updated as required, and supports e.g. Windows 10.


You can sort, filter pdf files based on title, pages etc using this shell extenion Debenu

Additionally, this portable application extracts all data from pdf files and produces a tabluar output which you can use in your workflow pdfinfogui


I know you're asking about viewing pdf page count in windows explorer, but if what you're looking for is a list of pdfs with the page number of each, Acrobat Pro does that. 1. Under the File menu select "Organizer." 2. Go to the folder with the pdfs you're interested in. 3. In the "Sort by" field, select "Number of Pages." That will display the number of pages for each pdf file. Not exactly what you want. But should do the trick.


Everyone wants to use a tool, get the page count and then export it to Excel. Why not use Excel to do the page counting and then put it in a sheet?

Look at http://www.mrexcel.com/forum/excel-questions/347911-visual-basic-applications-page-count.html

This is the code and it works fantastic:

Sub Test()
    Dim MyPath As String, MyFile As String
    Dim i As Long
    MyPath = "C:\TestFolder"
    MyFile = Dir(MyPath & Application.PathSeparator & "*.pdf", vbDirectory)
    Range("A:B").ClearContents
    Range("A1") = "File Name": Range("B1") = "Pages"
    Range("A1:B1").Font.Bold = True
    i = 1
    Do While MyFile <> ""
        i = i + 1
        Cells(i, 1) = MyFile
        Cells(i, 2) = GetPageNum(MyPath & Application.PathSeparator & MyFile)
        MyFile = Dir
    Loop
    Columns("A:B").AutoFit
    MsgBox "Total of " & i - 1 & " PDF files have been found" & vbCrLf _
           & " File names and corresponding count of pages have been written on " _
           & ActiveSheet.Name, vbInformation, "Report..."
End Sub
'
Function GetPageNum(PDF_File As String)
    'Haluk 19/10/2008
    Dim FileNum As Long
    Dim strRetVal As String
    Dim RegExp
    Set RegExp = CreateObject("VBscript.RegExp")
    RegExp.Global = True
    RegExp.Pattern = "/Type\s*/Page[^s]"
    FileNum = FreeFile
    Open PDF_File For Binary As #FileNum
        strRetVal = Space(LOF(FileNum))
        Get #FileNum, , strRetVal
    Close #FileNum
    GetPageNum = RegExp.Execute(strRetVal).Count
End Function