Я искал способ вызвать функцию javascript из файла default.aspx.cs ... после прочтения некоторых вопросов здесь я обнаружил этот подход (Call JavaScript function from C#) Однако мне нужно использовать возвращаемое значение из функции javascript в моем .net-коде.вызов функции javascript и использование возвращаемого результата в .net-коде
Мне нужно захватить пользователей на холсте и сохранить их в изображении и добавить это изображение в файл pdf.
Вот функция JS:
getSignatureImage: function() {
var tmpCanvas = document.createElement('canvas')
, tmpContext = null
, data = null
tmpCanvas.style.position = 'absolute'
tmpCanvas.style.top = '-999em'
tmpCanvas.width = element.width
tmpCanvas.height = element.height
document.body.appendChild(tmpCanvas)
if (!tmpCanvas.getContext && FlashCanvas)
FlashCanvas.initElement(tmpCanvas)
tmpContext = tmpCanvas.getContext('2d')
tmpContext.fillStyle = settings.bgColour
tmpContext.fillRect(0, 0, element.width, element.height)
tmpContext.lineWidth = settings.penWidth
tmpContext.strokeStyle = settings.penColour
drawSignature(output, tmpContext)
data = tmpCanvas.toDataURL.apply(tmpCanvas, arguments)
document.body.removeChild(tmpCanvas)
tmpCanvas = null
return data
}
Вот PDF генерирующий код в моем Default.aspx.cs:
document.SetMargins(20f, 20f, 85f, 20f);
long milliseconds2 = DateTime.Now.Ticks/TimeSpan.TicksPerMillisecond;
//Document document = new Document();
var output = new FileStream(Server.MapPath("~/PDFs/Test-File-" + milliseconds2 + ".pdf"), FileMode.Create);
pdfUrlLink = "Test-File-" + milliseconds2 + ".pdf";
var writer = PdfWriter.GetInstance(document, output);
// the image we're using for the page header
iTextSharp.text.Image imageHeader = iTextSharp.text.Image.GetInstance(Request.MapPath(
"~/Images/pdfHeader.jpg"
));
// instantiate the custom PdfPageEventHelper
MyPageEventHandler ex = new MyPageEventHandler()
{
ImageHeader = imageHeader
};
// and add it to the PdfWriter
writer.PageEvent = ex;
document.Open();
createContent();
document.Close();
submitEmail();
}
}
Это модифицированный код от других вопросов интеграции как мир вместе:
string SignData = null;
Page page = HttpContext.Current.CurrentHandler as Page;
page.ClientScript.RegisterStartupScript(typeof(Page), "Test", "<script type='text/javascript'>" + SignData +"=getSignatureImage();</script>");
Это не сработает ... Любая помощь или ввод будет оценен!
Эта функция очень хорошая. Проблема в том, что мне нужно использовать функцию .net вместо функции javascript в этом проекте, иначе она не сможет использовать другие плагины. – BigGirl1017
.net и javascript совершенно разные и независимы друг от друга.Вы все еще можете получить то, что хотите. То, как я понимаю ваш вопрос, состоит в том, что пользователь собирается нарисовать картинку или что-то на холсте в браузере, и вы хотите поместить эту фотографию в PDF, которую вы передаете пользователю, не так ли? Функция javascript получает изображение и отправляет его в .net-код. Ваш .net-код займет изображение и вложит его в PDF, чтобы вы все еще могли использовать ваши плагины на стороне .net. – Matthew
Да, это именно то, что нужно сделать здесь. поэтому эта функция помещает изображение в id canvImg, которые доступны в C# и могут использоваться для импорта. это решило проблему прохождения ценности через. Благодаря!!! – BigGirl1017