【发布时间】:2013-11-27 13:01:26
【问题描述】:
我有一个脚本,它在加载 pdf 文件后运行并填充 pdf 中的一些表单字段。我认为这是在幕后运行的某种 javascript。在 javascript 代码中存储了一些我需要检索的值。我使用 iTextSharp 处理 pdf 文件。是否可以读取 javascript 代码或值,以便我可以在我的 c# 代码中以某种方式使用它们?
【问题讨论】:
标签: c# javascript pdf itextsharp
我有一个脚本,它在加载 pdf 文件后运行并填充 pdf 中的一些表单字段。我认为这是在幕后运行的某种 javascript。在 javascript 代码中存储了一些我需要检索的值。我使用 iTextSharp 处理 pdf 文件。是否可以读取 javascript 代码或值,以便我可以在我的 c# 代码中以某种方式使用它们?
【问题讨论】:
标签: c# javascript pdf itextsharp
从此 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());
}
这是 PdfObject class 的参考页面。
【讨论】: