2

I am using expertpdf library to convert an html page in pdf and the function is giving error "WebKit Navigation timeout".

public void ConvertHTMLStringToPDF(string compHTML)
{
    var isIE8 = Request.Browser.Browser == "IE" && Request.Browser.MajorVersion <= 8;
    string htmlString = compHTML.Replace("valuesss", "value").Replace("scheckedss", "checked")
                                .Replace("<link href='includes/Print.css' />", "<style>\n" +
                                System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("includes/Print.css")).Replace("../images/", "images/") + "</style>");
    //Create the PDF converter. Optionally you can specify the virtual browser 
    //width as parameter. 1024 pixels is default, 0 means auto detect
    string baseURL = this.Request.Url.ToString();
    var pdfConverter = new PdfConverter(0);
    //pdfConverter.DrawBackColors = true;
    pdfConverter.DrawBackground = true;
    pdfConverter.PdfDocumentOptions.EmbedFonts = true;
    pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;


    pdfConverter.LicenseKey = "78Tdz9fP3d/cz9bB38/c3sHe3cHW1tbW";
    // set the converter options
    pdfConverter.PdfDocumentOptions.AutoSizePdfPage = true;
    pdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Normal;
    pdfConverter.PdfDocumentOptions.TopMargin = 10;
    pdfConverter.PdfDocumentOptions.BottomMargin = 1;
    pdfConverter.PdfDocumentOptions.LeftMargin = 1;
    pdfConverter.PdfDocumentOptions.RightMargin = 1;

    pdfConverter.PdfDocumentOptions.SinglePage = SinglePagePDF;
    pdfConverter.AvoidTextBreak = true;
    pdfConverter.AvoidImageBreak = true;
    if (PrintinLandScape)
    {
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Landscape;

    }
    else
    {
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Portrait;

    }
    //pdfConverter.PdfDocumentOptions.EmbedFonts = true;

    pdfConverter.PdfDocumentOptions.GenerateSelectablePdf = false;
    pdfConverter.PdfDocumentOptions.JpegCompressionEnabled = false;
    //FOOTER OPTIONS
    pdfConverter.PdfDocumentOptions.ShowFooter = true;
    pdfConverter.PdfFooterOptions.FooterHeight = 10;
    pdfConverter.PdfFooterOptions.FooterTextColor = Color.Black;
    pdfConverter.PdfFooterOptions.FooterTextFontType = PdfFontType.HelveticaOblique;
    pdfConverter.PdfFooterOptions.FooterTextFontSize = 6;
    pdfConverter.PdfFooterOptions.DrawFooterLine = true;
    pdfConverter.PdfFooterOptions.PageNumberText = "Page";
    pdfConverter.PdfFooterOptions.PageNumberTextColor = Color.Black;
    pdfConverter.PdfFooterOptions.PageNumberTextFontType = PdfFontType.HelveticaBold;
    pdfConverter.PdfFooterOptions.PageNumberTextFontSize = 6;
    pdfConverter.PdfFooterOptions.PageNumberYLocation = (float)2.0;
    pdfConverter.PdfFooterOptions.ShowPageNumber = true;

    pdfConverter.ImgTransparency = 0;
    //System.IO.File.WriteAllText(Server.MapPath("abc.html"), htmlString);
    var objpdf = pdfConverter.GetPdfDocumentObjectFromHtmlString(htmlString, baseURL);
    SavePrintHtmlOnFile(htmlString);       //save print html string in print.html file
    var attach = "inline";
    var content = "application/pdf";
    var filename = GetDownloadFileName + DateTime.Now.Ticks + ".pdf";
    var fpath = SessionFolder + "\\" + filename;
    if (RenderIn == RenderMode.PRINTPDF)
    {
        objpdf.OpenAction.Action = new ExpertPdf.HtmlToPdf.PdfDocument.PdfActionJavaScript("this.print({bShrinkToFit: true});");
        Response.AddHeader("Content-Disposition", "inline; filename=" + pdfPageName);
    }
    else
    {
        if (isIE8)
        {
            attach = "attachment";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "asdfw3safsd", "window.location.href=('Download.aspx?name=" + (Server.UrlEncode(GetDownloadFileName + ".pdf")) + "&file=" + Server.UrlEncode("sessionfolders/" + Session.SessionID + "/" + filename) + "&content=" + Server.UrlEncode(content) + "');", true);
        }
        else
        {
            attach = "attachment";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "asdfw3safsd", "window.open('Download.aspx?name=" + (Server.UrlEncode(GetDownloadFileName + ".pdf")) + "&file=" + Server.UrlEncode("sessionfolders/" + Session.SessionID + "/" + filename) + "&content=" + Server.UrlEncode(content) + "');", true);
        }
    }
    Response.ContentType = "application/pdf";
    Response.ClearContent();

    objpdf.Save(Response.OutputStream);
    Response.End();
}

it is giving error at point

var objpdf = pdfConverter.GetPdfDocumentObjectFromHtmlString(htmlString, baseURL);

exception detail is as fellows

at ExpertPdf.HtmlToPdf.ImgConverter.GetMetafileFromHTMLStringWithWebKit(String htmlString, String baseUrl, String internalLinksDocUrl, ᦕ[]& fonts, ᥲ& htmlParseInfo) at ExpertPdf.HtmlToPdf.PdfConverter.ConvertAndGetPdfDocument(String url, String htmlString, String baseUrl, String internalLinksDocUrl, Boolean fromUrl) at ExpertPdf.HtmlToPdf.PdfConverter.GetPdfDocumentObjectFromHtmlString(String htmlString, String urlBase) at ThemeablePage.ConvertHTMLStringToPDF(String compHTML) in D:\GIT\HondaBikeWeb\ClearViewAPP\BusinessLayer\SkyviewPage.cs:line 768 at Export.Refresh() in D:\GIT\HondaBikeWeb\ClearViewAPP\Export.aspx.cs:line 61 at Export.Page_Load(Object sender, EventArgs e) in D:\GIT\HondaBikeWeb\ClearViewAPP\Export.aspx.cs:line 14 at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Samreen
  • 23
  • 6

0 Answers0