cancel
Showing results for 
Search instead for 
Did you mean: 

Storing and Opening PDF file in .net from SAP-SPOOL

Former Member
0 Kudos

Hi,

I have a problem in opening the pdf file using .net code from SAP-SPOOL .I am getting error as follows..

"There was a error in opening a document.The file is damaged and could not be repaired".

I am extracting data from SAP-SPOOL to .net environment using sap.connector with Rfc.In this rfc, I have to open a PDF file which is in a table format which contains two columns(tdformat,tdline).

Please help me out.Thanks in advance..

This is my code..

pdfproxy = New SAPProxy1(cs)

pdfproxy.Connection.Open()

pdfproxy.Z_Rfc_Po_Pdf_Create( strpurchaseorder, bytecount, pdft)

pdfproxy.Connection.Close()

Dim ds As DataSet = New DataSet

ds.Tables.Add(pdft.ToADODataTable)

Dim sb As StringBuilder = New StringBuilder

For Each dr As DataRow In ds.Tables(0).Rows

Dim dataline As String = dr(0) & dr(1)

If dataline.Length < 134 Then

dataline = dataline.PadRight(134, " ")

End If

sb.Append(dataline)

Next

Dim pdf As String = sb.ToString

Dim context As System.Web.HttpContext

context = System.Web.HttpContext.Current

Dim response As System.Web.HttpResponse

response = context.Response

Dim pdfLength = pdf.Length

' create name for PDF

Dim pdfBytes() As Byte = encoding.GetBytes(pdf.ToCharArray(), 0, pdfLength)

response.ClearHeaders()

response.ContentType = "application/Pdf"

response.AppendHeader("content-disposition", "attachment; filename=" + strfilename)

response.OutputStream.Write(pdfBytes, 0, pdfLength)

response.Flush()

response.SuppressContent = True

response.end()

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Atlast i got a Solution to my Question.

The Problem is that in my SAP-Code they have been translated the PDF into 255 string.But i am retreiving using 132 string.So, i resolved in this way.

For Each dr As DataRow In ds.Tables(0).Rows

Dim dataline As String = dr(0)

<b> If dataline.Length < 255 Then

dataline = dataline.PadRight(255, " ")

End If</b>

sb.Append(dataline)

Next.

May be this Thread is useful to Others.

Regards,

Rajender.

Former Member
0 Kudos

Hi

Do you have any clue that how to get access to sap demo server which is installed in our central server from a domain client where .net is installed.