XFA使用iTextSharp创建页面的多个实例

时间:2013-09-13 22:48:42

标签: c# pdf itextsharp xfa

查看USCIS表单N-400,您可以看到第9部分中有两个按钮,Add ChildrenGo to continuation page查看XML / JS支持这些按钮,您获取此节点相应的字段:

<event activity="click" name="event__click">
    <script contentType="application/x-javascript">
        _KidsContPage.addInstance(1);
        xfa.form.recalculate(1);
        xfa.host.pageDown( );
    </script>
</event>

这用于将自动隐藏的页面添加到表单,以防用户有超过8个孩子。我的问题是使用iTextSharp,或者其他一些方法,如何创建这个新的页面实例?如果你注意到你可以制作这个额外儿童页面的多个副本,如果你碰巧有超过25个孩子,所以不要因为这种可能性的不可能性而被追踪,我需要知道如何创建这样的多个一页...

这是我到目前为止所做的:

PdfAction cloneAction = PdfAction
    .JavaScript(ClonePage("KidsContPage"), stamper.Writer);
stamper.Writer.AddJavaScript(cloneAction);

我也尝试过使用SetOpenAction

stamper.Writer.SetOpenAction(cloneAction);


    private string ClonePage(string formName)
    {
        return @"
if (xfa.host.name != 'XFAPresentationAgent') {
    $._" + formName + @".addInstance(1);
    if (xfa.host.version < 8) {
        xfa.form.recalculate(1);
    }
}";
    }

我知道我的ClonePage()代码正在运行,因为我在之前测试它时会看到警报,问题出在javascript中,或者我可能需要在服务器上运行它或者知道我需要什么去做。我在XFA PDF中打开LiveCycle,这就是它为它推出的JS,我必须在某处丢失一些小东西......它在LiveCycle中运行良好。请帮忙。

0 个答案:

没有答案