Я пытаюсь объединить несколько документов PDFA в один файл, используя iTextSharp 5.1.3, используя следующий код:конкатенации PDFA документов с использованием iTextSharp в действительный документ PDFA
Try
Dim f As Integer = 0
Dim outFile As String = destinationFile
Dim document As iTextSharp.text.Document = Nothing
Dim writer As PdfSmartCopy = Nothing
While f < sourceFiles.Length
' Create a reader for a certain document
Dim reader As New PdfReader(sourceFiles(f))
' Retrieve the total number of pages
Dim n As Integer = reader.NumberOfPages
If f = 0 Then
document = New iTextSharp.text.Document(reader.GetPageSizeWithRotation(1))
writer = New PdfSmartCopy(document, New FileStream(outFile, FileMode.Create))
document.Open()
End If
Dim page As PdfImportedPage
Dim i As Integer = 0
While i < n
i += 1
page = writer.GetImportedPage(reader, i)
writer.AddPage(page)
End While
Dim form As PRAcroForm = reader.AcroForm
If form IsNot Nothing Then
writer.CopyAcroForm(reader)
End If
f += 1
End While
document.Close()
Catch generatedExceptionName As Exception
End Try
Если открыть любой из входных файлов Acrobat Reader XI получает сообщение о том, что они действительно являются PDFA, но не если я открою выходной файл, созданный выше. Таким образом, казалось бы, мой недавно созданный конкатенированный PDF-документ не соответствует PDFA.
Я пробовал задавать свойство writer.PDFXConformance для PdfWriter.PDFA1A, но это не помогает.
Кто-нибудь знает, можно ли достичь того, что я пытаюсь сделать?
У меня нет большого опыта работы с iTextSharp, поэтому я не могу напрямую. Но, возможно, было бы полезно сузить проблему, пытаясь проверить выходной PDF с помощью PDF/A validator; есть некоторые свободно доступные, например. [здесь] (http://www.pdf-tools.com/pdf/pdfa-online-pruefen.aspx) и [здесь] (http://www.validatepdfa.com/) (оба онлайн). – tohuwawohu