を使用してvb.netをマージした後、私は)私は今、私は古いファイル「pdfFilesを(削除する必要があり、私はここにはiTextSharp
Private Sub MergePdfFiles(ByVal pdfFiles() As String, ByVal outputPath As String)
Dim pdfCount As Integer = 0
Dim f As Integer = 0
Dim fileName As String
Dim reader As iTextSharp.text.pdf.PdfReader = Nothing
Dim pageCount As Integer = 0
Dim pdfDoc As iTextSharp.text.Document = Nothing
Dim writer As PdfWriter = Nothing
Dim cb As PdfContentByte = Nothing
Dim page As PdfImportedPage = Nothing
Dim rotation As Integer = 0
Try
pdfCount = pdfFiles.Length
If pdfCount > 1 Then
fileName = pdfFiles(f)
reader = New iTextSharp.text.pdf.PdfReader(fileName)
pageCount = reader.NumberOfPages
pdfDoc = New iTextSharp.text.Document(reader.GetPageSizeWithRotation(1), 18, 18, 18, 18)
writer = PdfWriter.GetInstance(pdfDoc, New FileStream(outputPath, FileMode.OpenOrCreate))
With pdfDoc
.Open()
End With
cb = writer.DirectContent
While f < pdfCount
Dim i As Integer = 0
While i < pageCount
i += 1
pdfDoc.SetPageSize(reader.GetPageSizeWithRotation(i))
pdfDoc.NewPage()
page = writer.GetImportedPage(reader, i)
rotation = reader.GetPageRotation(i)
If rotation = 90 Then
cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height)
ElseIf rotation = 270 Then
cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, reader.GetPageSizeWithRotation(i).Width + 60, -30)
Else
cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0)
End If
End While
f += 1
If f < pdfCount Then
fileName = pdfFiles(f)
reader = New iTextSharp.text.pdf.PdfReader(fileName)
pageCount = reader.NumberOfPages
End If
End While
pdfDoc.Close()
reader.Close()
End If
Catch ex As Exception
'err
End Try
End Sub
を発見した機能を使用しています一つに2つのPDFファイルをマージしていpdfファイルを削除します"しかし、私はエラーを取得しています"プロセスは、他のプロセスで使用されているため、 'C:....... pdf'というファイルにアクセスできません。これが最初のファイルのみで起こっている、私は他の1
おかげで私は、これはC#である知っている
少なくとも「ライター」は近くに閉じ込められていない、または処分されていないことがわかり、そこから始めたいと思います。 –
私はループの外側と内部で何らかの作業が行われているのはなぜか分かりません。これはIMHOではなく、それぞれのための本当に良い場所になります。 –
私は作家を閉じてまだ運がない、私はそれを行うための別の方法を見つけるだろうと思って、私はこの機能、コピー、ペーストを見つけた後、テストして正常に働いた、私は良い方法があるはずですdo –