diff --git a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb index 0492359d..a0b33b78 100644 --- a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb +++ b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb @@ -382,7 +382,6 @@ Namespace Jobs End Try End If - Return PDFBurner.BurnInstantJSONAnnotationsToPDF(oInputDocumentBuffer, oAnnotations) End Function diff --git a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/PDFBurner.vb b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/PDFBurner.vb index c7010dc1..ea4626cd 100644 --- a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/PDFBurner.vb +++ b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/PDFBurner.vb @@ -31,45 +31,38 @@ Namespace Jobs.FinalizeDocument Public Function BurnInstantJSONAnnotationsToPDF(pSourceBuffer As Byte(), pInstantJSONList As List(Of String)) As Byte() Dim oResult As GdPictureStatus + Using oSourceStream As New MemoryStream(pSourceBuffer) + ' Open PDF + oResult = Manager.InitFromStream(oSourceStream) + If oResult <> GdPictureStatus.OK Then + Throw New BurnAnnotationException($"Could not open document for burning: [{oResult}]") + End If - Try - Using oSourceStream As New MemoryStream(pSourceBuffer) - ' Open PDF - oResult = Manager.InitFromStream(oSourceStream) + ' Add annotation to PDF + For Each oJSON In pInstantJSONList + If AddInstantJSONAnnotationToPDF(oJSON) = False Then + Logger.Warn($"Error in AddInstantJSONAnnotationToPDF - oJson: ") + Logger.Warn(oJSON) + Throw New BurnAnnotationException($"Adding Annotation failed") + End If + Next + oResult = Manager.BurnAnnotationsToPage(RemoveInitialAnnots:=True, VectorMode:=True) + If oResult <> GdPictureStatus.OK Then + Throw New BurnAnnotationException($"Could not burn annotations to file: [{oResult}]") + End If + + 'Save PDF + Using oNewStream As New MemoryStream() + oResult = Manager.SaveDocumentToPDF(oNewStream) If oResult <> GdPictureStatus.OK Then - Throw New BurnAnnotationException($"Could not open document for burning: [{oResult}]") + Throw New BurnAnnotationException($"Could not save document to stream: [{oResult}]") End If - ' Add annotation to PDF - For Each oJSON In pInstantJSONList - If AddInstantJSONAnnotationToPDF(oJSON) = False Then - Logger.Warn($"Error in AddInstantJSONAnnotationToPDF - oJson: ") - Logger.Warn(oJSON) - Throw New BurnAnnotationException($"Adding Annotation failed") - End If - Next - oResult = Manager.BurnAnnotationsToPage(RemoveInitialAnnots:=True, VectorMode:=True) - If oResult <> GdPictureStatus.OK Then - Throw New BurnAnnotationException($"Could not burn annotations to file: [{oResult}]") - End If + Manager.Close() - 'Save PDF - Using oNewStream As New MemoryStream() - oResult = Manager.SaveDocumentToPDF(oNewStream) - If oResult <> GdPictureStatus.OK Then - Throw New BurnAnnotationException($"Could not save document to stream: [{oResult}]") - End If - - Manager.Close() - - Return oNewStream.ToArray() - End Using + Return oNewStream.ToArray() End Using - Catch ex As Exception - Logger.Error(ex) - - Return Nothing - End Try + End Using End Function Private Function AddInstantJSONAnnotationToPDF(pInstantJSON As String) As Boolean