public static PdfAction JavaScript(string code, PdfWriter writer, bool unicode)
{
PdfAction js = new PdfAction();
js.Put(PdfName.S, PdfName.JAVASCRIPT);
if (unicode && code.Length < 50) {
js.Put(PdfName.JS, new PdfString(code, PdfObject.TEXT_UNICODE));
}
else if (!unicode && code.Length < 100) {
js.Put(PdfName.JS, new PdfString(code));
}
else {
try {
byte[] b = PdfEncodings.ConvertToBytes(code, unicode ? PdfObject.TEXT_UNICODE : PdfObject.TEXT_PDFDOCENCODING);
PdfStream stream = new PdfStream(b);
stream.FlateCompress(writer.CompressionLevel);
js.Put(PdfName.JS, writer.AddToBody(stream).IndirectReference);
}
catch {
js.Put(PdfName.JS, new PdfString(code));
}
}
return js;
}