Hi,
I posted to the itextsharp mailing list and got a response that it had been
closed, and to use the itext mailing list. Maybe someone can help me with
this?
We currently have a site which will have a pdf which will post the FDF to a
url. The idea is, once the FDF posts to the url, we have some asp.net
(vb.net) code that will grab the data, flatten it and send an email to a
user (basically send them the pdf filled in). As of yet, I have been unable
to get this to work. Below is what I am currently doing (this is a
variation of an example that we found online at:
<http://asp-net-whidbey.blogspot.com/> http://asp-net-whidbey.blogspot.com/
Please note the below example is from a dotnetnuke module, however, for the
purpose of this, you can ignore the dnn parts:
When the fdf is posted to our page, the page load will fire, and this part
appears to be functioning correctly:
Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.lblContent.Visible = False
If
String.Compare(HTTPContext.Current.Request.ContentType,
"application/vnd.fdf", true) = 0 Then
ProcessPDF()
End If
End Sub
I may have some incorrect assumptions here. This is my assumptions:
pdfformfilename is the pdf file, that we flatten the data to. I need to
read the fdf from HTTPContext.Current.Request.InputStream. Basically, we
load the pdf into pdfreader. We create pdfstamper passing in pdfreader and
pdfflat. We set the data by using setFields. After this, we save the file
to the server, create an email and set the attachment. A corrupt pdf is
being sent, so it is working, almost, however, I think I may have some
misunderstandings on how some of this works.
Private Sub ProcessPDF()
Dim pdfFormFileName As String =
HttpContext.Current.Server.MapPath("NHCS_Employment_Application_20110126_Fil
lable.pdf")
Dim pdfFlat As MemoryStream = New MemoryStream()
Dim pdfreader As PdfReader = New PdfReader(pdfFormFileName)
Dim pdfStamper As PdfStamper = New PdfStamper(pdfreader,
pdfFlat)
Dim fdfReader As FdfReader = New
FdfReader(HttpContext.Current.Request.InputStream)
Dim pdfForm As AcroFields = pdfStamper.AcroFields
pdfForm.SetFields(fdfReader)
pdfStamper.FormFlattening = True
pdfStamper.Writer.CloseStream = False
'pdfStamper.Close()
Dim saveTo As String =
HttpContext.Current.Server.MapPath(String.Format("/Portals/0/{0}.pdf",
Guid.NewGuid.ToString().Replace("-", "").Replace(" ", "")))
Dim pdfStream As MemoryStream = New MemoryStream()
Dim saveStream As FileStream = New FileStream(saveTo,
FileMode.Create, FileAccess.Write)
pdfFlat.WriteTo(saveStream)
pdfFlat.Flush()
'ReadWriteStream(pdfStream, saveStream)
'saveStream.Flush()
saveStream.Close()
pdfFlat.Close()
Send(saveTo)
Me.lblContent.Visible = True
End Sub
Private Function LoadStream(ByVal s As Stream) As Stream
Dim target As Stream = New MemoryStream()
Dim length As Integer = 256
Dim buffer(length) As Byte
Dim bytesRead As Integer = s.Read(buffer, 0, length)
While bytesRead > 0
target.Write(buffer, 0, length)
bytesRead = s.Read(buffer, 0, length)
End While
s.Close()
Return target
End Function
Private Sub ReadWriteStream(ByRef s1 As Stream, ByRef s2 As Stream)
Dim length As Integer = 256
Dim buffer(length) As Byte
Dim bytesRead As Integer = s1.Read(buffer, 0, length)
Dim totalbytes As Integer = 0
While bytesRead > 0
s2.Write(buffer, 0, length)
totalbytes = bytesRead + totalbytes
bytesRead = s1.Read(buffer, 0, length)
End While
s1.Close()
End Sub
Private Sub Send(ByVal attachement As String)
Dim fromaddress As String = "[email protected]"
Dim toaddress As String = "[email protected]"
Dim bcc As String = ""
Dim subject As String = "New employment application"
Dim body As String = "Please see the attached application"
Dim bodytype As String = "HTML"
Dim smtpUser As String =
Entities.Host.HostSettings.GetHostSetting("SMTPUser")
Dim smtpPassword As String =
Entities.Host.HostSettings.GetHostSetting("SMTPPassword")
Dim smtpServer As String =
Entities.Host.HostSettings.GetHostSetting("SMTPServer")
Dim smtpAuthentication As String =
Entities.Host.HostSettings.GetHostSetting("SMTPAuthentication")
DotNetNuke.Services.Mail.Mail.SendMail(fromaddress, toaddress,
bcc, subject, body, attachement, bodytype, smtpServer, smtpAuthentication,
smtpUser, smtpPassword)
End Sub
We are using itextsharp.dll version 5.0.5. I have a client who is currently
waiting on some feedback to when I can have this functionality to him. Any
help AT ALL would be appreciated.
Brian
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
Many questions posted to this list can (and will) be answered with a reference
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples:
http://itextpdf.com/themes/keywords.php