Reputation: 2814
I have a script that runs after the pdf-file has been loaded and that populates some form fields in the pdf. I assume it is some kind of javascript running behind the scene. In the javascript code some values are stored that I need to retrieve. I use iTextSharp to work with the pdf-file. Is it possible to read the javascript code or the values so I can work with them in my c# code somehow?
Upvotes: 0
Views: 3037
Reputation: 5636
Modified from this SO answer:
var pdfReader = new PdfReader(infilename);
using (MemoryStream memoryStream = new MemoryStream())
{
PdfStamper stamper = new PdfStamper(pdfReader, memoryStream);
for (int i = 0; i <= pdfReader.XrefSize; i++)
{
PdfDictionary pd = pdfReader.GetPdfObject(i) as PdfDictionary;
if (pd != null)
{
PdfObject poAA = pd.Get(PdfName.AA); //Gets automatic execution objects
PdfObject poJS = pd.Get(PdfName.JS); // Gets javascript objects
PdfObject poJavaScript = pd.Get(PdfName.JAVASCRIPT); // Gets other javascript objects
//use poJS.GetBytes(), poJS.ToString() etc to inspect details...
}
}
stamper.Close();
pdfReader.Close();
File.WriteAllBytes(rawfile, memoryStream.ToArray());
}
Here's a reference page for the PdfObject class.
Upvotes: 1