diff --git a/EnvelopeGenerator.BBTests/frmFinalizePDF.vb b/EnvelopeGenerator.BBTests/frmFinalizePDF.vb index e6512651..a0ef4043 100644 --- a/EnvelopeGenerator.BBTests/frmFinalizePDF.vb +++ b/EnvelopeGenerator.BBTests/frmFinalizePDF.vb @@ -77,6 +77,8 @@ Public Class frmFinalizePDF Dim oNewPath = Path.Combine(desktopPath, $"E{txtEnvelope.Text}R{txtReceiver.Text}.burned.pdf") File.WriteAllBytes(oNewPath, oNewBuffer) + + Process.Start(oNewPath) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) End Try diff --git a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb index 5287e5ac..a0b33b78 100644 --- a/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb +++ b/EnvelopeGenerator.Common/Jobs/FinalizeDocument/FinalizeDocumentJob.vb @@ -170,7 +170,7 @@ Namespace Jobs Throw New ApplicationException("Envelope could not be finalized") End If Catch ex As Exception - Logger.Warn($"Unhandled exception while working envelope [{oId}] - [{ex.Message}]") + Logger.Warn(ex, $"Unhandled exception while working envelope [{oId}]") End Try @@ -378,12 +378,10 @@ Namespace Jobs Try oInputDocumentBuffer = File.ReadAllBytes(oInputPath) Catch ex As Exception - Logger.Error(ex) Throw New BurnAnnotationException("Source document could not be read from disk!", ex) 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