Старожил
Сообщения: 194
Благодарности: 61
|
Профиль
|
Отправить PM
| Цитировать
Iska, спасибо за пояснение.
Получилось так (к сожалению должен быть установлен Adobe Acrobat):
читать дальше »
Код: 
Option Explicit
Dim strDestFile
Dim objSourceFolder
Dim strSourceFolder
Dim iSourcePageCount
Dim iSourceAnnotationCount
Dim iSourceAnnotationCountPage
Dim pAcroSourcePage
Dim pdSourceDoc
Dim objFSO
Dim objDictionary
Dim objTS
Dim strPath
Dim i
strDestFile = "out_pdf.csv"
iSourceAnnotationCount = 0
Set pdSourceDoc = CreateObject("AcroExch.PDDoc")
Set objSourceFolder = WScript.CreateObject("Shell.Application").BrowseForFolder(0, "Select source folder:", 81, "")
If Not objSourceFolder Is Nothing Then
strSourceFolder = objSourceFolder.self.Path
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strSourceFolder) Then
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
ScanSubFolders objFSO.GetFolder(strSourceFolder)
If objDictionary.Count > 0 Then
Set objTS = objFSO.CreateTextFile(objFSO.BuildPath(strSourceFolder, strDestFile), True)
objTS.WriteLine "Путь к файлу;Количество примечаний"
For Each strPath In objDictionary.Items
pdSourceDoc.Open(strPath)
iSourcePageCount = pdSourceDoc.GetNumPages()
for i=0 to iSourcePageCount-1
Set pAcroSourcePage = pdSourceDoc.AcquirePage(i)
iSourceAnnotationCountPage = pAcroSourcePage.GetNumAnnots()/2
iSourceAnnotationCount = iSourceAnnotationCount + iSourceAnnotationCountPage
'msgbox iSourcePageCount
'msgbox iSourceAnnotationCount
Next
objTS.WriteLine strPath & ";" & iSourceAnnotationCount
iSourceAnnotationCount = 0
pdSourceDoc.Close
Next
objTS.Close
Set objTS = Nothing
Else
WScript.Echo "Nothing found."
End If
Else
WScript.Echo "Can't use folder [" & strSourceFolder & "]."
WScript.Quit 1
End If
Set objFSO = Nothing
Set objSourceFolder = Nothing
Else
WScript.Echo "Вы не выбрали папку с файлами."
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub ScanSubFolders(objFolder)
Dim objSubFolder
Dim objFile
For Each objFile In objFolder.Files
Select Case LCase(objFSO.GetExtensionName(objFile.Name))
Case "pdf"
objDictionary.Add objFile.Path, objFile.Path
Case Else
' Nothing to do
End Select
Next
For Each objSubFolder In objFolder.SubFolders
ScanSubFolders objSubFolder
Next
End Sub
'=============================================================================
|
Последний раз редактировалось Fresh96, 21-03-2014 в 07:20.
Причина: Добавил цикл по страницам (т.к. ранее количество примечаний бралось только с первой (0) страницы)
Отправлено: 18:37, 20-03-2014
| #8
|