【问题标题】:Problem adding javascript into PDF using iTextSharp使用 iTextSharp 将 JavaScript 添加到 PDF 时出现问题
【发布时间】:2010-12-05 16:48:55
【问题描述】:

我正在尝试将 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()

【问题讨论】:

  • 如果您所做的只是用 MemoryStream 替换 FileStream,那么它应该在功能上是相同的。您仍然必须将该内存流放在可以查看它的位置(如文件),以便查看 JS 及其效果。你是如何打开 memoryStream 的?
  • @rowmark,你为New Paragraph(pdfString)传递的参数是什么。

标签: javascript itextsharp


【解决方案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 的示例

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 2015-05-07
    • 2013-02-09
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多