Hallo liebe .net Gemeinde,
ich hab da ein Problem mit der Stream Verarbeitung.
Die unten abgedruckte Funktion öffnet eine PDF Datei und fügt ein Wasserzeichen hinzu. Da ich die geänderte PDF Datei als stream zurückgeben möchte, habe ich mir ein Memorystream Objekt erstellt welches mit Return outputStream zurückgegeben wird.
Nun ist mein Problem, dass der Stream leer ist.
Wenn ich statt "PdfStamper(reader, outputStream)" PdfStamper(reader, New FileStream("C:\test.pdf", FileMode.Create)) verwende wird eine Datei test.pdf angelegt die dann auch das Wasserzeichen enthällt.
Was muss ich machen damit die Ausgabe in den outputStream geschrieben wird??
Vielen Dank schonmal für eure Hilfe.
Private Function SetWatermark(ByVal stream As Stream, ByVal WatermarkText As String) As Stream
Dim outputStream As Memorystream
Dim reader As PdfReader = New PdfReader(stream)
Dim totalpages As Integer = reader.NumberOfPages
Dim stamp As PdfStamper = New PdfStamper(reader, outputStream)
'Dim stamp As PdfStamper = New PdfStamper(reader, New FileStream("C:\test.pdf", FileMode.Create))
Dim document As Document = New Document(PageSize.A4)
Dim i As Integer = 0
Dim under As PdfContentByte
Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.WINANSI, BaseFont.EMBEDDED)
While i < totalpages
i = i + 1
under = stamp.GetUnderContent(i)
under.BeginText()
under.SetTextMatrix(document.Top, document.Bottom)
under.SetFontAndSize(bf, 220)
under.SetColorFill(Color.GRAY)
under.ShowTextAligned(Element.ALIGN_CENTER, WatermarkText, document.PageSize.Width / 2, document.PageSize.Height() / 2, 55)
under.EndText()
End While
outputStream.Flush()
stamp.Close()
Return outputStream
End Function
ich hab da ein Problem mit der Stream Verarbeitung.
Die unten abgedruckte Funktion öffnet eine PDF Datei und fügt ein Wasserzeichen hinzu. Da ich die geänderte PDF Datei als stream zurückgeben möchte, habe ich mir ein Memorystream Objekt erstellt welches mit Return outputStream zurückgegeben wird.
Nun ist mein Problem, dass der Stream leer ist.
Wenn ich statt "PdfStamper(reader, outputStream)" PdfStamper(reader, New FileStream("C:\test.pdf", FileMode.Create)) verwende wird eine Datei test.pdf angelegt die dann auch das Wasserzeichen enthällt.
Was muss ich machen damit die Ausgabe in den outputStream geschrieben wird??
Vielen Dank schonmal für eure Hilfe.
Private Function SetWatermark(ByVal stream As Stream, ByVal WatermarkText As String) As Stream
Dim outputStream As Memorystream
Dim reader As PdfReader = New PdfReader(stream)
Dim totalpages As Integer = reader.NumberOfPages
Dim stamp As PdfStamper = New PdfStamper(reader, outputStream)
'Dim stamp As PdfStamper = New PdfStamper(reader, New FileStream("C:\test.pdf", FileMode.Create))
Dim document As Document = New Document(PageSize.A4)
Dim i As Integer = 0
Dim under As PdfContentByte
Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.WINANSI, BaseFont.EMBEDDED)
While i < totalpages
i = i + 1
under = stamp.GetUnderContent(i)
under.BeginText()
under.SetTextMatrix(document.Top, document.Bottom)
under.SetFontAndSize(bf, 220)
under.SetColorFill(Color.GRAY)
under.ShowTextAligned(Element.ALIGN_CENTER, WatermarkText, document.PageSize.Width / 2, document.PageSize.Height() / 2, 55)
under.EndText()
End While
outputStream.Flush()
stamp.Close()
Return outputStream
End Function
Comment