Yes, absolutely !
Check the documentation of XMLDocument .NET Class ... it has everything you need.
You have to load the XML from the Response Input Stream to XMLDocument object, and extract the required XML Node into another XMLDocument Object, then you have to export the content of this Node into a File using some kind of Stream Writer. From XMLDocument class, I think there is some method that exports to XML Text file directly.
Thanks for the help. I have been doing a lot of research on this and been going nuts because they dont show any examples other than reading from a specific xml from a specific location such as "(Server.MapPath("MySource.xml"));" however, this is not true for a PDF file that is sending the data to an web page - I reviewed your code that you posted but havent been able to decifer how you are doing it. Are you using a specific file from a specific location? in your web code are you using loadXML("filename") because I cant get load(Request) to work...
again, thanks for your help on this, I have made some progress but not all the way there yet.
The following sample code (which I copied from the code I posted earlier), will be the starting point to Extract the XML Node you want, but you have to know the name of the Node, which you can find out by debugging the code:
Dim sreader As New System.IO.StreamReader( Page.Request.InputStream)
Dim xmlData As String = sreader.ReadToEnd()
Dim xmldoc As New System.Xml.XmlDataDocument
Dim SubmittedFormPart As String
Session("StaffName") = xmldoc.GetElementsByTagName("Name")(0).InnerText
Session("StaffID") = xmldoc.GetElementsByTagName("StaffID")(0).InnerText
Note this part "Page.Request.InputStream". This is the source of Data which was submitted by the PDF Form from the Client to the Server. It has EVERYTHING, so you need to determine what you are looking for.
So the code above will convert Page.Request.InputStream into "xmldoc", then you need to watch the value of xmlDoc while debugging.
The "GetElementsByTagName" is a method of the class "XMLDataDocument". You need to lookup the documentation if this class to "figure out" how to extract the "Node" you want (GetSingleNode I think !), convert it to String, and write it to a file. I think you need a Stream Writer, if this cannot be done directly by the XMLDataDocument methods.
I was able to get it to work, here is a part of my code (this is an .asp page): <br /> <br /><%@Language="VBScript"%> <br /><%Option Explicit%> <br /><%Response.Buffer = True%> <br /> <br /><%<br /><br /> Dim xml<br /> Dim fullpath<br /> Dim dynamicName<br /> Dim infoRFC<br /> Dim infoDate<br /> Dim infoRequestor<br /> Dim infoLocation<br /> Dim infoProject<br /> Dim infoProjectDate<br /><br /> <br />' start the XML object<br /> Set xml = Server.CreateObject("Microsoft.XMLDOM")<br /> <br />'wait for the xml to be read<br /> xml.async = False<br /> <br />'load data transmitted from the PDF form to the web page<br /> xml.load (Request)<br /><br /> <br />'collect information from XML fields<br />infoRFC = xml.GetElementsByTagName("main")(0).text<br />infoRequestor = xml.GetElementsByTagName("Requestor")(0).text<br />infoDate = xml.GetElementsByTagName("input_date")(0).text<br />infoLocation = xml.GetElementsByTagName("Location")(0).text<br />infoProject = xml.GetElementsByTagName("project_name")(0).text<br />infoProjectDate = xml.GetElementsByTagName("AOSDate")(0).text<br /><br /> <br /> <br />'write information to the web page<br />Response.Write(infoRFC + " Submitted!")<br />Response.Write("Requestor: " + infoRequestor)<br />Response.Write("Date: " + infoDate)<br />Response.Write("Location: " + infoLocation)<br />Response.Write("Project: " + infoProject)<br />Response.Write("Project Date: " + infoProjectDate)<br /> <br /> <br /> <br />'save the loaded xml file to a specific location on the server<br />xml.save(Server.MapPath(infoRFC+".xml"))<br /> <br />fullpath = Server.MapPath(infoRFC + ".xml")<br /> <br />dynamicName = (infoRFC+".xml")<br /> <br />response.write("File Name: " + dynamicName)<br /><br />%>
This thread is very valuable and full of information.
Tarek Adnan Faham - I have one confusion that I want to ask.
From client viewing of PDF than submitting it to asp and saving to database, where we need Adobe Acrobat 8 Professional? . Client who is filling the pdf and submitting don't need Adobe Acrobat 8 Professional on his machine right? acrobat reader 8 will able him to fill the PDF and submit it to aspx page.
I think if the client does not have full version of Adobe Acrobat, then some of the functions will not work, for example, you will not be able to submit the Fill PDF as Binary with Signatures to the Server.
I think if you only want to submit the Form Field Values, then Adobe Reader is enough, but I will not bet my life on this.
Thanks for the quick reply.
I think that suppose I have website that is immigration related and I have PDF that needs to be filled by user than I am sure he won't buy full version of Acrobat as most of them have Acrobat reader.
I wanted the user to fill in the PDF data and send it to apx page where I be able to save it in database. Thats what I intend to do. What do you suggest?
In general, if you do not have Full Version of Adobe Acrobat on the Client, then any function that will end up using Advanced Adobe Functions such as saving a copy of the PDF Off-Line or submitting the complete PDF as Binary to the Server, then you cannot do that.
If you have Adobe Reader Extension Server (this is the product which I convinced our Management at work to purchase) which will cost you a bit, this product will allow you to Reader-Enable the PDF so that it will work under Adobe Reader as if it ware Acrobat. At work, we have more than 1000 Employee, and all are using for submitting the leave form on-line, and it worth the price.
I think (not 100% sure) that you can use the PDF as if it ware HTML Form if you want to use Adobe Reader on the Client. In this case, you can Submit the form to the Client, and on the client you can just retrieve the form values from the Request Object as if you are working with normal HTML Form. I tried this once about one year ago, and as per what I remember, it worked. If you want to do that, then you just need to use the Proper JavaScrip Submit Command on the PDF Form.
If you still need help, please let me know.
Thanks for the reply.
I searched on Adobe Reader Extension Server but I can not find the cost of it anywhere.
Do you know the cost of Adobe Reader Extension Server and where to download it for testing?
So all I need to buy is Adobe Reader Extension Server and I will be able to online PDF forms for users ti fill without needing acrobat and they do it with reader?
Is there anything more to buy except Adobe Reader Extension Server . Anything at all?
Thanks for the help.
This thread is indeed very informative!!! Thank you all for the contributions...
I'm interested in Jeff Lawrence's post as he is using Dreamweaver or a similar product to generate his ASP page.
I have used his code and was able to make it work. My pdf button is sending the xml data to my ASP page, and i'm able to write them to the test page via Response.Write()
However, i'm more interested in sending the WHOLE PDF as an attachement and not just the data...anyone out there with help will be greatly appreciated!
I was thinking of using Jeff's code to save the pdf to the server, then have that file sent to an email and then delete it from the server...does that make sense? Is there a more direct way??
Thanks guys, you all rock :)
Hello Charlie Taminian,
>>However, i'm more interested in sending the WHOLE PDF as an >>attachement and not just the data...anyone out there with help will >>be greatly appreciated!
Problem is the solution needs Acrobat to send data from the client machine to any page asp or aspx etc. Acrobat is expensive and no one will be able to have it on there machine just to fill the form in PDF and send it. I am talking about public web sites like immigration site etc.
I am looking for a away to spend some money but I get the above functionality without clients having acrobat and they just do it with reader.
For the price ...etc, the proper way is to get in touch with the official Adobe Sales Rep. in your area. There are different products, version, prices... all the times.
You need at least:
1. Adobe LiveCycle Designer ES (I think 500 US$ per head) !
2. Adobe LiveCycle Reader Extensions Server.
If you want to spend less effort in ASP.NET Programming, and willing to spend more, then you can buy additional server products that will generate the PDF using a few lines of code. But I do not have much info about such products.
We purchased ARES about one year ago, and I really do not remember the price, as it has some complicated scheme.
Goto to the Adobe Web Site, select your country, Product Page, Server Products, look for Adobe LiveCycle ES:
Now, click on "Have Adobe contact me" link and submit the request to Adobe.
Keep in mind that there are many different client/server LiveCycke ES products, and it is very easy to get confused.
You can explain the requirement to Adobe rep, and he should guide you on the proper direction.
From my experience, you need LiveCycle Designer and Reader Extension Server. Of course, you need a Server Based Development Platform like ASP.NET or Netweaver (Java based).
The technique I followed in this post (as per the complete ASP.NET Code I posted before) can be easily converted to any other platform as you have seen that one of the programmers have posted some ASP Code that does almost the same.
What is my next target ?
I am planning to develop a .NET Class Wrapper for the Form Submission, Initiation and Processing, which will be based on the CSLA .NET Framework.
Thanks for the reply Pirzada...
Tarek...i'm glad that you are still active on this thread....I have read your code and it seems that you are pretty well informed on this subject... can you please provide me with a straight forward answer to this question???
I need to send the WHOLE PDF as an attachment and NOT just the data...
I see from Jeff Lawrence's code, that he saved the pdf to the server, I can assume that there is also a script to send that same pdf from the server to the email address, thus achieving my goal of sending a pdf as an attachment to an email address......am I correct???
To make things easier for you....
My ASP page will:
1) Read the xml data
2) Save that data as a pdf on the server
3) Send that pdf to an email address as an attachment
Final result is a pdf being sent to an email address as an attachment.......is my logic correct, or is this even possible???....I don't expect you to give me code, as i'm not using .NET so I only expect you to confirm my logic...
Thanks alot man, your efforts are greatly appreciated!
Check the .NET Complete Code I posted ... it should have everything you need about using email, and to send the PDF as an attachment, some extra work is needed to use the proper MAPIs to add attachment to the email.
You can use Client PDF Functionality to send the PDF as attachment, but you need Acrobat on the Client, or Read-Enable the PDF using ARES. Client functionlity to send PDF as Email attachment is a bit tricky, confusing, and limited.
Just keep in mind, any time you need to get the PDF as Off-Line version or convert it to Binary and use it on the server, then you will need ARES or Acrobat.
The logic you have mentioned is 100% correct. This is the proper way.
Thanks alot Tarek, you have been really helpfull...I only expect my clients to fill out the pdf(with reader) and hit submit...so all the work is done by ASP.....
Also thanks for confirming my logic....I can now google around for some sample code, and when I get it to work...I will post it here for others to view...
Many thanks again
These "weeder" or deciding selections will be based on department, value, and code. I then want there to be a "submit data" button that will populate the body of the form based on the user's responses.
The body options will be pre-created as a .pdf file and will be "Option1", "Option 2", "Option 3", etc.
So, for example, if the user selects:
Dept 1, value A, Code 1 = Option 1
Dept 1, value B, Code 1 = Option 2
Dept 2, Value A, Code 2 = Option 3
there are other variables, but that is the jist of it. Can you help me with what language I would put into that "submit data" button that would accomplish this goal? ANY help you can provide woudl be GREATLY appreciated!!!!!
I a now on my vaction and posting form internet cafe. I will try to help you now by giving you quick hints, and as soon as I am ready, I will post more details for you (I will be back to the office in 2 weeks).
Keep in mind that I am familiar with LiveCycle Desinger 7.1, and not yet used version 8.x.
1. Place the complex processing (Business Logic) and programming in a back-end Web Service using .NET for example (Use .NET or Java NetWeaver for Business Logic). This way, your code will be extreemly re-usable in the current recent client-side technologies such as Adobe Forms. In this Business Logic Layer, do not place UI related code.
Also, you must desing your program to be at least on 2 tiers. If you follow 3-tiers, then the 3rd layer is the Database.
.NET Development Platform is very productive, very easy and very powerful and the same can be applied to Java-Based Development Platofrms (I am familiar with .NET Technologies).
2. From PDF Form (as the Presentation Layer), use the Web Service Connection and call the web service to perform the required processing, and get the results in the form variables.
4. Decompose the PDF Form into logical UI Parts, and place each part in a Subform Element. This will make it easier to show/hide group of elements.
It is very easy to use Web Service from PDF form, I have tested it with a .NET Web Service, and it worked from the first time. Also, keep in mind that you can use Free Development Tools from Microsoft for .NET Development.
For my Leave Form Application (which is documented earlier in this post) I have some complex Date Processing requirements (with Hijri/Gregorian Calendar), and I am planning to use .NET Web Service for such pricessing in the next version.
I hope this will be helpful.
hi i have exported the PDF filled forms as XML through email option. And i used that XML to populate into a Database. But i want to save the XML directly into my system asking for a location without having a Email option. If anyone could help me please let me know. Also in previous message TAREK has sent a script. I dont know how to use that. I have created a web application and its in my local system. How do i get the XML copied to that location or to web server...
>Also in previous message TAREK has sent a script. I dont know how to use that. I have created a web application and its in my local system.
I will try to help !
First option you can do that is to using Client Based Process with Acrobat SDK under VB.NET. Check this link for complete detail:
Another option is to create a Submit Button from the LiveCycle PDF Form, to submit the form with the Data Set and PDF as XDP to an ASP.NET Web Page, and in the web page, you can extract the XML Data Set and the PDF as Base 64 Binary Format from the Request Input Stream. You can convert the XML String to XML Document and then to .NET Dataset Object, and then it is purely a .NET Program. It is then much easier to post the Data from a Dataset Object to the Database Tables. Also, you do not need to convert to Dataset Object, and you can use XML Document Object APIs to extract Data Fields directly.
From you post, is seems you want to save the XML to a File, and then post it to the Database. You could do that, and the .NET XML Doc Object APIs has a method to do that also.
Please let me know if this is OK for you.
I have a requirement to display contracts in PDF.
I am using Adobe 8 professional version on my server.I designed the PDF forms in livecycle designer.
I am trying to send the contract id from .net application to PDF and to display the contract for this Id with the information from Sql server.
I am new to livecycle and a little bit confused. How do I pass this ID parameter from .net to pdf form ? Can I do that ?
I am presently using Scripts to populate the fields in PDF forms in Livecycle,since I have to display dynamic table of data in contracts.
If I understand you correctly, you want to design a process to lookup contract data using Contract ID, and display the contract details in PDF for the purpose of printing it or viewing via web access. Correct ?
Follow these steps:
1. Design an ASP.NET form to accept the Contract ID which the users requires to print/view its details.
2. Design a button, and on Click Event in UI Code, open a connection to the SQL Database and retrieve the require details and place them in program variables and/or arrays/lists/dataset depending on the data structure of the contract info and related details. This is a extra step, but it is good for debugging purposes.
3. Use a String Variable to build the XML Data Package (XDP) which has the Header, Data and Footer in the same way I described earlier in this thread. The Header is always fixed, the Data part is variable, and is the XML representation of the Contract Details in a structured format, and the footer, has a pointer to the LiveCycle PDF Form in URL format.
3. The data has to be composed in XML String following a certain format. For example, flat details (non-repeating elements), must follow the formate below:
'variable name' is the name of the LiveCycle Field.
'subform-name' is the name of the subform which has the field 'varaible-name'
For repeating elements (or arrays/lists/datasets in ASP.NET), must follow this format:
'row' is the name of the repeating subform in LiveCycle,
'variable-n' is the field inside the repeating subform.
I was thinking that you could use DataSets in ASP.NET to populate the required data elements in the same structure of the PDF Form, and build the relationships among the DataTables inside the DataSets, and then use "getXML()" api to convert DataSet to XML and using nested structure property of the DataSet or something like that, you will get a properly formatted XML output without the need to compose the string one element at a time. I have not tried this myself, and you could give it a try and let me know.
4. Make sure to design the object hierarchy in LiveCycle Designer to match the same XML Structure you are using in ASP.NET and make sure to use same field names. This way, you will not need to do manual binding inside LiveCycle. The binding in this case will be automatic.
5. Using "Response.ContentTye" at the beginning and "Response.Write(XDP_String)/response.end" to push the final XML Result to the client so that Adobe Reader/Acrobat on the client will be able to display the PDF and merge the data with the fields.
I hope this is clear.
You have given me a detailed explanation of solving my issue.This is really helpful for me. I don't have much experience with XML,I will work on it.Just out of curiosity,I came to know i can use scripting in livecycle forms when designing,
* Instead of collecting data from sql database in .net and passing
the XDP to pdf. Can I pass the contractId from .net and based
on this id using scripting objects in livecycle forms can i display
the data?I could do this to some extent like getting the contract
id through url string in pdf livecycle forms and displaying
data in form using dataconnection to sql server.
I am using Acrobat 8.0 professional on my server and making use of
livecycle designer to design the forms.
can this form still work if client uses just adobe reader
(any version?)on his machine.Is there any kind of restriction in using this method instead of creating XDP as you have mentioned. Does this one require Adobe LiveCycle Forms on server?Please let me know.
Sure, using JavaScipt, you can creat a direct connection from LiveCycle Form to SQL Server. I tried this method to test it in the past, but, I faced several prolems, and decided not to use this method in the future, becuase:
1. You have to connect to Database directly, which is based on 2-tier method, which is not the proper way in general to build secured applications,
2. You have to use complicated scripting techniques (very un-usual APIs) in LiveCycle to navigate and process the records from/to SQL Server (move next, move previous, update ...etc), which is very difficult to debug and work with. Using XML, you have one root record, and all other records/fields are either elements or repeating subforms (nodes) with child elements ..etc,
3. There will be security restrictions and you have to make a trusted connection and this will force you, I think, to create an ODBC on each client or configure a driver, and you need to do client configuration to make it work, and what every you do, you will still face problem with some users, and in the end, it will be very expensive.
The other method, is to use Web Service, and this is the state of the art. I did one example, it it worked without any problem. But this case (web services) you form will not work properly if the web service is down or not accessable for any reason. Using XML Data Embeded in the form, will give you te ultimate flexibility.
Always try to build an Intermediate Layer (Business Logic in ASP.NET or Java Server Pages) between you Presentation Layer (LiveCycle PDF) and the Back-End Database (SQL Server).
I hope this helps.
I used your suggestion of using datasets for creating the XML file in .net and sending it to PDF forms as input to display the filled form.
Instead of using datasets and getXML()I used the .net sqlXMLCommand object and passed in the sql query for XML and using the SQlXMLReader function I could retrieve the sql data in XML format. I then appened this string to generate xdp.
It works very well for generating even dynamic table data. Thanks for your input.
This is code i used in .net for generating data in XML format,
Public Sub test2()
Dim ms As MemoryStream
Dim cmd As SqlXmlCommand
Dim p As SqlXmlParameter
pid = 2700
Dim fname As String
Dim xr As XmlReader
Dim xmlCatalog As XmlDocument
fname = "testxml.xml"
ms = New MemoryStream()
cmd = New SqlXmlCommand("PROVIDER=SQLOLEDB;SERVER=test;DATABASE=test;INTEGRATED SECURITY=sspi;")
cmd.RootTag = "form1"
cmd.ClientSideXml = True
**** This is function with parameters i am using to get data from sql I couldn't use the Xpath command type since this is a function *****
cmd.CommandText = "execute getdata ? for XML NESTED,elements"
cmd.SchemaPath = "testschema.xml"
p = cmd.CreateParameter()
p.Value = 2709
**** use can you Xpath if it is a direct query to sql table and u can also specify the parameters in this command text****************
'cmd.CommandType = SqlXmlCommandType.XPath
'cmd.CommandText = "myform"
xr = cmd.ExecuteXmlReader()
xmlCatalog = New XmlDocument()
********** I store this xml outpput to a file to be read later on for generating xdp*******
xmlCatalog = Nothing
I am facing an issue after the display. I used your code for pushing the xml data on to Pdf .Everytime i generate the PDf the response ends, so i have to open up the application again. Is there another way for displaying the pdf without affecting the application window?
I have the exact same scenario as yours where the user would submit a pre populated form to sever and we have to extract the data form the xml and work with that.
can you please tell me how do we submit the xdp package to the server.
and what techinique you have used to extract the pdf and the xml separately.
any help would be appreciated.
My envioenment is life cylce designer 8.1, java.
Very smart of you to find out another way. Thank you for the input and I will keep it in my mind for future use. However, I once tried to look at SQL XML, but I find it very hard to digest. I would prefer using Datasets, Tables, Relationships, and GetXML(). It is much easier to digest and work with especially if the final XML Strucutre is simple.
With regards to the problem you are facing, I dont understand exactly what is wrong ? Is the PDF begin displayed correctly after "respnse.write xmlString" and "response.end" ? If not, then there is a problem with the XML Strucutre and/or Mapping of the XML Elements to the Form/Subform/Fields in the PDF. Or, the XML may have invalid characters such as "&" or "<". Use Server.HTMLEncode or something like that to convert the special characters to proper XML format.
Or, if you are trying to display the PDF withing the window of another browser window, then you have to develop the .aspx page same like what you did, and in the main application window, use "iframe" HTML Tag with src = to the path of the .aspx page.
Please clarify what is worng ?
Actually this thread should have all the details you are looking for. May I kindly ask you to go through this thread from the beginning as you may have to click on "Show All Messages" to see all posts.
I recommed you to work on a very simple Hello World Example and just pass some very simple data fields from the .aspx page to the PDF, and back from PDF to .aspx page.
If you have any error in this example, then I will be very happy to try and help you.
I figured out I have do this manipulation in .net front end.
The Solution you have with XML works like a Charm . I have successfully used SQL to create XML files. I have a PDf file which has data from multiple datasets . So i created one XMl file for each dataset and then appened all these files at end to get a single XDP file. Saved the final file as .xdp.
s = ""
s = " "
******* tempname is the name of the final XDP file i created *******
It works perfectly now.
I am working on another request where the rows in the pdf file should dynamically increase based on the calculation from fields in the XML file.
I am kinda stuck ..
I have a XML file which provides input to the pdf.
This file is used to dynamically create rows in a subform.
Based on the values in this fields in subform i have to generate table of data which displays calculated income,tax info etc for each row of data.
The data for this is not coming from an XML. It is calcuated based on the previous one.
Let me know if you have any sugestions.
the request put forward was to generate a pdf from the application . once generated and printed we have to go back to the application .
With the solution before with displaying the pdf using response.flush and response.end(), the pdf displayed perfectly but the whole application was terminated once the pdf was generated. This was not intened. So i figured out a way to create a .xdp and save it in the sever and then use java script to open this .xdp on the client side.
Greate job ! I think I will use your solution one day.
Please, do post back all details about any solution you find for any problem.
To make the PDF Dynamic, you have to save as Dunamic, and set the subform properties to be dynamic also. I cannot remember all the details of how to do it, you may check the sample help files that comes with LiveCycle DEsinger, and see the PO Example or something like that.
I'm a .NET Developer, I'm pretty new to Livecycle. I started using Livecycle 8.1 last week. I designed my first form.
I came across this thread, and I want to be able to use a PDF and dynamically populate it with data by injecting XML.
My requirements are as follow:
-- Users submit data via a aspx webform. Which gets stored in a SQL database.
-- After submittion, I need to be able to review these entries, which will be a list of submittions with a link that says: "View PDF". I click on it, and have the ASP.NET page generate XML and launch the PDF premade form, with the values entered by the user.
I have followed this thread, and I've used some of the code presented. I created a single field form in livecycle, in order to simplify my life and be able to test this method. But every time I run my asp.net page it launches the PDF. But the values do not reflect what is fed into the pdf form via XML. The fields in the pdf file is blank.
Can somebody tell me in the simples way?. A step by step process. Because I don't even know if the way I created the form in livecycle is right.
Can somebody post a simple example of this?, maybe a sample zip with a PDF and a aspx page.
I've been at this for two days straight, and this thread has gotten quite large. I might just be missing something.
PS. I have been able to databind the form directly to my SQL server. But I see no way of passing parameters to PDF or to modify the SQL Command on the fly(To retrieve a specific record).
Thanks in advance. This will be amazing if I get this to work.
Hi to all ...
I am back to my beloved thread, looking for information on how to implement new certain requirements...
I have upgraded to new LiveCycle Desinger 8.1 few days ago, and still do not know all the new features.
I was requested to develop new LiveCycle Form, but this time it has to be secured by Digital Signatures or what every appropriate method.
The form has exactly 2 sections and 2 Digital Signatures:
1. The first section/part is to be filled by the Staff (let us call him the Authoring Staff).
Any one can fill the first part.
After the first part is signed, the Data Entry on the first part should be locked, and no one on Earth should be able to change the data on the first part. Only the signer of the first part is allowed to update/clear the signature but only and only of the Second part is not yet signed.
The staff should not be allowed to sign the form unless all mandatory fields and other validation logic is statisfied.
Only the Signer of the Form and special authorized staff/group of staff will be allowed to open the form. Let us call them Group01.
2. The second section/part is to be filled by special authorized staff/group (say Group02), they are basicall HR Staff (this is a secret).
The second part can only be filled if the first part is filled and signed by the Authoring Staff.
The second part can be signed only if the validation logic on the second part is true (no errors, and all mandatory fields are filled).
Once the second part is signed, the first part the the second part should be locked, and no one on earth should be able to change anything on the form.
Only the signer of the form should be able to clear the signature of the 2nd part and make any changes requried.
If the 2nd part is signed, the Authoring Staff should not be able to change anything on the form.
*****End of Requirements.*****
I have just started, and I am requested to desing the form and implement the required security in 10 days only.
Can any one please help me ?
I am doing my research now.
I am really thankful to you for initiating this thread; I printed all the 50 pages of this thread and went through them over a 2 hour reading. Thanks for being not only an initiator but the major active contributor to this thread. Actually, I am not replying to your question addressed in the thread but asking for some inputs from you.
Just FYI; I have worked with LC designer 8.1 for more than a year now. I have developed a few Dynamic XML PDF forms which use ODBC connecting option to pull data from MS Access DB ( all client based) to publish the same on the PDF. This app was a 2-Tier approach.
My current requirement:
I need to develop the ASP.NET version of the same form developed by me earlier in 2008 so that I can publish this form over an IIS for everyone over the internet to use the form on-demand. I will use a .NET application to accept the Input Parameters (Request) for which the data needs to be fetched from DB and published in the PDF form (over the browser). The final PDF published in the web browser needs to be saved in a WORD document since the clients cannot afford Adobe Acrobat in every client.
My Limitations: My case is similar to all the limitations mentioned in this thread. Budget does not permit the following.
1. Cannot buy or install Adobe Reader Extension Server in the Server.
2. Cannot buy or install Adobe Livecycle Designer ES or Adobe Livecycle Forms.
3. Cannot buy or install Adobe Acrobat Pro in all the clients
4. No third party tools are allowed to be installed in the client for any export import purposes.
Only Adobe Reader 9.0 is allowed for all the clients. All clients will have MS office for sure.
1. My complete technical design of the data flow depends on the contained object (PDF form or plain HTML form) rendered in the web browser. The contained object should allow me to save the form embedded in the browser into Word format (saved in the client). Also the word form saved here should have editable form controls for further edits in the manual workflow. I love to use Adobe Livecycle designer since the form look and feel is absolutely great. Do you think I am just trying to waste time? I strongly feel forms are best looking in Adobe LC designer. Do you think I still can use this tool to achieve what I want?
2. Do you think I should just forget about Livecycle and design a pure Visual Studio form or MS Word Form and be done with export to word using some APIs published by Microsoft?
2. Also a question answered by you to PIRZADA from your earlier thread dated June 29 2008. You had mentioned that you were planning to develop .NET Class wrapper for the form submission, initiation and Processing. Do you have that class published anywhere? Or could you please share that to this forum.
I would also appreciate if PIRZADA or anyone like Jeff Lawrence or Vidya could comment on my requirement and suggest an approach or examine my appraoch.
I am really happy to know that this thread was of value to you.
Here are my quick answers to your questions:
1. Use Adobe Platofrom only if the following criteria is applicable to your situaiton:
- You can afford the cost of Implementation. You can use Adobe LRES which is the ultimate solution and very costly. Or, you can use Single Adobe Acrobat 9 version and Reader Enable the LiveCycle Form on the Server and will give about 70% of the feature provided by Adobe LRES.
- You want to have a ture Paper Replacement and provide the end user with an electronic form in PDF that will take advantage of PDF Security and all the pther features such as annotations ...etc. For example, if the users does not want to save an off-line copy of the form on his PC and does not care about the authenticity of the form, then there is no need for PDF.
- Ability to use the form accross all platforms and reduce the problem of compatibility issues.
- To use Digital Signature, not only to secure the form, but to keep track of all the versions and changes made inside the PDF.
- You need to secure different parts of the form according to the authenticated user (the new requirements I posted in my previous thread). As a matter of fact, this is really a great feature, which I found a solution for.
2. Use HTML Form, aspx Form, or MS Word Doc (rendered on the client from the server), if the above criteria does not apply to you.
3. Yes, I have developed the .NET Class Wrapper, and it was really greate. This new class, not only it will make development easier, also, it will allow me to generate large number of PDFs, and cach the result in Text File (instead of String Variable), to be pushed back to the client (download via response.write) at the end. I will publish the class as soon as I am back form my vacation on 10-Aug-2009. Please send me a reminder if you do not mind.
Thank you very much for your quick response.
Now, to respond to you...
Customer cannot afford Adobe LRES at this point of time. I must tell you, at the outset that the form I am working on is a standard form and the look and feel of it should be so close to the paper form. That is the purpose why we chose Livecycle Designer in the first place. So to answer you, specifically, YES! I want to have pure paper replacement as much as possible ( say 70% close to the original paper form). Customer is willing to live with what I give as web-enabled electronic form but I want to give my best. I know HTML form/ASPX form is anyways known options
So I want to go with what you have told in the first point. to quote you "Or, you can use Single Adobe Acrobat 9 version and Reader Enable the LiveCycle Form on the Server and will give about 70% of the feature provided by Adobe LRES." I hope this means that the I can install and use Single user Adobe Acrobat 9 Professional version (WHICH INCLUDES LC DESIGNER) at the server and Reader Enable the Livecycle form. Yes I can do this. However I need to always remember that any form shown with values on the broswer should be editable and, I should be able to save the browser form into a word document.
Now my question: Using your idea I came out with the following logic. will this logic work?
Step 1: Accept Key input params from the user using a .NET application (request object). User submits the data
Step 2: Fetch the relevant form data (data sets) from the database for the INPUT params
Step 3: Programmatically Generate instance(s) of the PDF (I call it generated PDF(s)) using the LC designer PDF form by populating the fetched data (sometimes this generation could result in a multi-page form and/or multiple instances of the form)
Step 4: Store the generated PDF(s) in a SOURCE folder inside the server
Step 5: Reader Enable the generated PDF(s) "programmatically" using the SINGLE ACROBAT 9 Professional installed in the server( This is your idea!!!!!)
Step 6: Store the Reader Enabled generated PDF in a DESTINATION folder
Step 7: Now show the browser (response object) with Reader Enabled generated PDF extracted from the DESTINATION folder
Step 8: Now from the web broswer allow save of this form into MS-Word ( how this will happen - donot know now..hmm I need to test it out)
Please feel free to criticize if any of the steps mentioned above is beyond your imagination. If I am sounding too abstract for you, please feel free to comment. I would wait for your valuable feedback. In the meanwhile let me do a Hello world run of the whole logic to test it out. Shall keep you posted.
Besides. I will, for sure, remind you after Aug 10, 2009 regarding the class you will be publish it for this group