Я написал этот код, который ищет 2 разных файла PDF на основе имени файла, содержащего определенное слово.
В моем случае я ищу "Жалоба" и "Выставить".
Я думал о поиске этих слов с помощью функции поиска и содержит ().
Итак, у меня будет каталог, в котором есть
ZTEST10 Complaint.pdf (2 страницы)
ZTEST10 Exhibit.pdf (2 страницы)
Имя выходного файла их слияния: ZTEST10 Complaint & Exhibit.pdf.
Единственное, что есть в pdf Жалоба выходит дважды?Пример:
Страница жалобы 1
Страница жалобы 2
Страница жалобы 1
Страница жалобы 2
Страница заявки 1
Страница приложения 2
Понятия не имею, почему мой код дублирует первый найденный файл PDF?
Вот мой код:
Private inputdir1 = ("G:\Word\Department Folders\Pre-Suit\Drafts-IL\2-IL_AttyReview\2018-09\Reviewed\unmerged\Merge\")
Sub Main()
Dim OutputFile As String
Dim OutputDir As String = inputdir1
Dim OutputDocument As PdfDocument
Dim Array = {"Complaint", "Exhibit"}
For Each Ar In Array
Dim element = Ar
For Each files As IO.FileInfo In Get_Files(inputdir1,
IO.SearchOption.TopDirectoryOnly,
"pdf",
element)
Console.WriteLine(files)
Console.WriteLine("Merging: {0}...", GetFileName(files.Name))
For Each fileinput As String In Directory.GetFiles(inputdir1, files.Name)
OutputFile = GetFileNameWithoutExtension(fileinput).Substring(0, 7) & " Complaint & Exhibit" & ".pdf"
If File.Exists(OutputDir & OutputFile) Then
OutputDocument = PdfReader.Open(OutputDir & OutputFile)
Else
OutputDocument = New PdfDocument()
End If
Using InputDocument As PdfDocument = PdfReader.Open(fileinput, PdfDocumentOpenMode.Import)
For Each page As PdfPage In InputDocument.Pages
OutputDocument.AddPage(page)
Next
End Using
OutputDocument.Save(OutputDir & OutputFile)
OutputDocument.Dispose()
Next
Next
Next
End Sub
Private Function Get_Files(ByVal directory As String,
ByVal recursive As IO.SearchOption,
ByVal ext As String,
ByVal with_word_in_filename As String) As List(Of IO.FileInfo)
Return IO.Directory.GetFiles(directory, "*" & If(ext.StartsWith("*"), ext.Substring(1), ext), recursive) _
.Where(Function(o) o.ToLower.Contains(with_word_in_filename.ToLower)) _
.Select(Function(p) New IO.FileInfo(p)).ToList
End Function
End Module