Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Fresh96

Старожил


Сообщения: 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