8

我正在尝试将 JavaScript 嵌入到使用 iTextSharp 创建的 pdf 中,如果它是代码中显示的文件,它工作得非常好。

但是当我尝试将 javascript 部分嵌入到内存流中时,它不起作用。iTextSharp 有什么限制吗?

Dim js As New StringBuilder
                Dim pdf As String = "c:\Print2Printer.pdf"
                Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream(pdf, FileMode.Create))
                doc.Open()

                js.Append("var pp = this.getPrintParams();")
                js.Append("var iCopies = 2;")
                js.Append("pp.interactive = pp.constants.interactionLevel.silent;")
                js.Append("for ( var i = 0; i < 3; i++ ) { pp.firstPage = i; pp.lastPage = i;")
                js.Append("this.print(pp);")
                js.Append("}")
                Dim jaction As PdfAction = PdfAction.JavaScript(js.ToString(), writer)
                writer.AddJavaScript(jaction)

                doc.Add(New Paragraph(pdfString))
                doc.Close()
4

1 回答 1

1

您的 PDF 尚未呈现...我不确定 PDF 是否有 onreadystate 事件,但请参阅... http://mattheyan.blogspot.com/2010/06/add-javascript-to-pdf-document- with.html

简而言之,您需要一个 setTimeout

这是使用 Docotic.Pdf http://www.codeproject.com/Articles/380293/Javascript-in-PDF的示例

于 2012-05-30T04:11:42.073 回答