Hello,
I´m also trying to achieve the same: change somes aspects of an extended PDF
file without breaking extended functionality.
The aspects I´m trying to change using iText is the data section and the
scripts section of the xfa DOM. Using the code below, I´m able to change
both but:
# if I call stp.AcroFields.Xfa.Changed = true; the rights will be lost
# if I not call stp.AcroFields.Xfa.Changed = true; the data will not be
merged
Even If I just create a stamper and call "stp.AcroFields.Xfa.Changed =
true;" without changing anything in the PDF, the rights will be lost, so I
suppose this line of code is the problem.
So, my question is, what this line of code does? If I don´t call this
property, my data will not be merged, but it will be inside the PDf, because
the resulting PDf is bigger.
That is way I was wondering if we can call something like this using code
inside the PDF (after the user opened it) instead of using iText. iText
would place the data and the code into the PDF, but the changed flag would
be activated inside the PDF using LiveCycle designer code.
Thank you
Code
//////////////////////////////////////////
PdfReader reader = new PdfReader(Server.MapPath("PDF_RDExtpdf.pdf"));
PdfStamper stp = new PdfStamper(reader, new FileStream(@"c:\newpdf.pdf",
FileMode.CreateNew), reader.PdfVersion, true);
XmlDocument doc = new XmlDocument();
XmlDocument docXFA = new XmlDocument();
XmlDocument docXFT = new XmlDocument();
XmlNamespaceManager oNamespaceMgr = new XmlNamespaceManager
(doc.NameTable);
oNamespaceMgr.AddNamespace("xdp", "http://ns.adobe.com/xdp/");
oNamespaceMgr.AddNamespace("xfa",
"http://www.xfa.org/schema/xfa-data/1.0/");
oNamespaceMgr.AddNamespace("xft",
"http://www.xfa.org/schema/xfa-template/2.5/");
doc.LoadXml(stp.AcroFields.Xfa.DomDocument.InnerXml);
docXFA.Load(Server.MapPath("data.xdp"));
docXFT.Load(Server.MapPath("scripts.xml"));
// Data
XmlNodeList nlist = doc.SelectNodes("//xfa:datasets",
oNamespaceMgr);
for (i = 0; i <= nlist.Count - 1; i++)
{
nlist[i].InnerXml = docXFA.SelectNodes("//xfa:datasets",
oNamespaceMgr).Item(0).ChildNodes[0].OuterXml;
}
//scripts
for (i = 0; i <= nlist.Count - 1; i++)
{
nlist.Item(0).InnerXml = docXFT.ChildNodes[0].OuterXml;
}
stp.AcroFields.Xfa.DomDocument.InnerXml = doc.InnerXml;
stp.AcroFields.Xfa.Changed = true;
stp.Close();
///////////////////////////////////////////////////////////////////////
From: Leonard Rosenthol <[EMAIL PROTECTED]>
Reply-To: Post all your questions about iText here
<itext-questions@lists.sourceforge.net>
To: Post all your questions about iText here
<itext-questions@lists.sourceforge.net>
Subject: Re: [iText-questions] How to change a PDF but preserve the rights
Date: Mon, 3 Dec 2007 10:58:33 -0500
Nope and nope :(.
Leonard
On Dec 3, 2007, at 9:33 AM, Samuel B. Quiring wrote:
Leonard,
Is there any documentation anywhere on this? Do you know of an example
iText program that I could look at?
-Sam
----- Original Message -----
From: Leonard Rosenthol
To: Post all your questions about iText here
Sent: Monday, December 03, 2007 4:20 AM
Subject: Re: [iText-questions] How to change a PDF but preserve the
rights
It _IS_ possible to fill in a PDF that has been "Reader Enabled" w/ o
violating the rights - but it MUST be done in a very specific fashion
using "append mode" on the source PDF AND only modifying a limited number
of objects in the PDF.
So yes, if you are going to create a whole new PDF - you'll break the
"Reader Enabling". If you're careful about what you do, and how you do
it, you CAN accomplish your goal.
Leonard
On Dec 3, 2007, at 2:05 AM, Samuel B. Quiring wrote:
I have a PDF containing an XFA form; isXfaPresent() == true. The PDF
was authored so that it can be opened in Adobe Reader, fields in the
form can be filled, and the form can be saved by Reader to the file
system.
Using iText I have read in the PDF, obtained the XfaForm, changed values
in the XML Document, and written a new PDF to the file system.
The PDF I write out contains the values I put into the XML, but the
rights to save the PDF from Reader have been lost. Is this expected?
Other features of the original PDF are also lost in the newly-written
PDF.
I wrote the changed PDF to a new file. If this is the reason the save
rights were lost, is there a way I can modify the existing PDF in place
so that the rights to save the file from Adobe Reader are maintained?
-Sam
---------------------------------------------------------------------
----
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/
8857-50307-18918-4_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
---------------------------------------------------------------------- ---
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
---------------------------------------------------------------------- ---
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/
8857-50307-18918-4_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/