2009-10-11 13 views
8

Próbuję osadzić JavaScript w pliku PDF, który jest tworzony za pomocą iTextSharp i działa absolutnie dobrze, jeśli jest to plik pokazany w kodzie.Problem z dodaniem javascript do pliku PDF za pomocą iTextSharp

Ale kiedy próbuję osadzić część javascript w strumieniu pamięci, to nie działa. Czy są jakieś ograniczenia 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() 
+1

Jeśli wszystko, co robisz, zastępuje FileStream strumieniem MemoryStream, to powinno być funkcjonalnie identyczne. Nadal musisz umieścić strumień pamięci gdzieś na niego (jak plik), aby zobaczyć JS i jego efekty. Jak otwierasz MemoryStream? –

+0

@track, jaki jest argument, który przekazałeś dla 'New Paragraph (pdfString)'. –

Odpowiedz

Powiązane problemy