Я хочу преобразовать мой HTML-файл в PDF в этом процессе, я взял все HTML-теги и элементы в текстовое поле asp при нажатии кнопки, что дает вышеуказанную ошибку

Код

code.aspx

<asp:TextBox ID="TxtHtmlCode"  CausesValidation="false" runat="server" Width="90%" Text="" TextMode="MultiLine" Height="150px"></asp:TextBox>

 <asp:Button ID="BtnCreatePdf" runat="server" Text="Create PDF" OnClick="BtnCreatePdf_Click" CssClass="mybutton" />

code.aspx.cs



protected void BtnCreatePdf_Click(object sender, EventArgs e)
   {
    htmlString = TxtHtmlCode.Text;
    HtmlToPdf converter = new HtmlToPdf();
    PdfDocument doc = converter.ConvertHtmlString(htmlString);
    doc.Save(Response, false, "Sample.pdf");  
    doc.Close();
}

Я проверяю с точками останова, даже если он не собирается нажимать кнопку.

Помогите мне, пожалуйста..

0
Deepthi 31 Мар 2017 в 18:09

2 ответа

Лучший ответ

Вы хотите использовать редактор HTML, например ckeditor с открытым исходным кодом.

Он будет в основном кодировать и декодировать HTML-элементы, когда вы отправляете страницу обратно на сервер.

<%@ Register Assembly="CKEditor.NET" Namespace="CKEditor.NET" TagPrefix="CKEditor" %>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <CKEditor:CKEditorControl ID="CKEditor1" BasePath="/ckeditor/" runat="server">
        </CKEditor:CKEditorControl>

        <asp:Button ID="BtnCreatePdf" runat="server" Text="Create PDF"
            OnClick="BtnCreatePdf_Click" CssClass="mybutton" />
    </form>
</body>
</html>

enter image description here

enter image description here

К вашему сведению: лично мне не нравится использовать validateRequest="false"; в конечном итоге это создаст дыру в безопасности.

0
Win 31 Мар 2017 в 15:36

Внутри вашего web.config вы захотите сделать:

<HttpRuntime requestValidationMode="2.0" />

Другой вариант - также добавить директиву вашей страницы в верхней части вашего .aspx и применить:

<@Page ... validateRequest="false" %>

Помните, что добавление к web.config повлияет на весь ваш сайт по сравнению с директивой страницы. Однако добавив это в свое приложение, вы избавитесь от некоторой встроенной защиты, которую Microsoft использует в Web-Forms Framework.

0
Greg 31 Мар 2017 в 16:05