...o meglio lo fa ma poi il pdf risulta corrotto o comunque non risulta leggibile.... here's the code
What's wrong?codice:Protected Function generapdf() As String Dim pathpdf As String = "" Dim dblDataOra As String = Replace(Now.ToOADate.ToString, ",", "") Dim nomefile As String = IDtestata.Value & "_" & dblDataOra Dim titleFont = iTextSharp.text.FontFactory.GetFont("Arial", 20, iTextSharp.text.Font.BOLD) Dim subTitleFont = iTextSharp.text.FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD) Dim boldTableFont = iTextSharp.text.FontFactory.GetFont("Arial", 12, iTextSharp.text.Font.BOLD) Dim endingMessageFont = iTextSharp.text.FontFactory.GetFont("Arial", 10, iTextSharp.text.Font.ITALIC) Dim bodyFont = iTextSharp.text.FontFactory.GetFont("Arial", 12, iTextSharp.text.Font.NORMAL) Dim smallfont = iTextSharp.text.FontFactory.GetFont("Arial", 7, iTextSharp.text.Font.ITALIC) ' Creiamo il documento PDF istanziando l'oggetto Document messo a disposzione ' dalla libreria iTextSharp Dim Document = New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 100, 100, 25, 25) 'Creiamo un oggetto MemoryStream che conterrà in memoria il file pd che andremo 'via via creando con i passi successivi Dim output = New MemoryStream() Dim writer = iTextSharp.text.pdf.PdfWriter.GetInstance(Document, output) ' Apriamo il documento Document.Open() Document.Add(New iTextSharp.text.Paragraph("cippalippa", subTitleFont)) ' Creiamo un ogetto immagine iTextSharp Dim logopath As String = ConfigurationManager.AppSettings("rootpath") & "img\mac_warning.png" Dim logo = iTextSharp.text.Image.GetInstance(logopath) ' Definiamo le propietà dell'immagine logo.ScaleToFit(150.0F, 150.0F) logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT logo.IndentationLeft = 9.0F logo.SpacingAfter = 9.0F logo.Border = iTextSharp.text.Rectangle.BOX 'logo.BorderColor = Color.BLACK logo.BorderWidth = 5.0F Document.Add(logo) Dim infoTable = New iTextSharp.text.pdf.PdfPTable(3) infoTable.HorizontalAlignment = 0 infoTable.SpacingBefore = 10 infoTable.SpacingAfter = 10 infoTable.DefaultCell.Border = 0 Dim larghezze() As Integer larghezze = {3, 3, 3} infoTable.SetWidths(larghezze) 'cella1 infoTable.AddCell(logo) 'cella2 infoTable.AddCell(New iTextSharp.text.Phrase("contenuto cella2", smallfont)) 'cella3 infoTable.AddCell(New iTextSharp.text.Phrase("contenuto cella3", smallfont)) Document.Add(infoTable) 'creo fisicamente il file dal memorystream Dim OutStream As FileStream Try pathpdf = ConfigurationManager.AppSettings("docpath") & nomefile & ".pdf" OutStream = New FileStream(pathpdf, FileMode.OpenOrCreate, FileAccess.Write) StreamToStream(output, OutStream) pathpdf = "/public/documents/" & nomefile & ".pdf" Catch ex As Exception 'TODO: aggiungere la gestione degli errori pathpdf = "" Finally If Not (OutStream Is Nothing) Then OutStream.Close() End If End Try Document.Close() Return pathpdf End Function 'converte memorystream in stream Public Sub StreamToStream(ByVal InStream As Stream, ByVal OutStream As Stream, Optional ByVal BufSize As Integer = 4096) Dim readBytes As Integer If BufSize < 1 Then Throw New ArgumentOutOfRangeException("BufSize", BufSize, "The buffer size must be greater than zero.") End If Dim buffer(BufSize - 1) As Byte While True readBytes = InStream.Read(buffer, 0, BufSize) If readBytes = 0 Then Exit While OutStream.Write(buffer, 0, readBytes) End While End Sub

Rispondi quotando
