Search code examples
c#cssabcpdfabcpdf9

ABCpdf not applying inline css styles


In my aspx page I have this script with the following css

<style type="text/css">
        .subcontainer{margin: 0 auto; padding-top: 20px}
       .hide-val{display:none;}
    </style>

In the browser the page is loads ok, div with class hide-val is not displayed but when I use AddImageURL styles is not being applied.

Doc theDoc2 = new Doc();

            theDoc2.HtmlOptions.UseScript = true;
            theDoc2.HtmlOptions.Media = MediaType.Print;
            theDoc2.HtmlOptions.InitialWidth = 1048;

            //for multiple page
            theDoc2.Rect.Inset(10, 30);

            theDoc2.Page = theDoc2.AddPage();
            int theID2;
            theID2 = theDoc2.AddImageUrl(urlToHtmlPage);

            while (true)
            {
                theDoc2.FrameRect(); // add a black border
                if (!theDoc2.Chainable(theID2))
                    break;
                theDoc2.Page = theDoc2.AddPage();
                theID2 = theDoc2.AddImageToChain(theID2);
            }

            for (int i = 1; i <= theDoc2.PageCount; i++)
            {
                theDoc2.PageNumber = i;
                theDoc2.Flatten();
            }
            //end multipage 
            theDoc2.Save(HttpContext.Current.Server.MapPath("htmlimport.pdf"));
            theDoc2.Clear();

I have seen many questions like this but I haven't found the answer

How can I add the css style in the doc?


Solution

  • Since you specified theDoc2.HtmlOptions.Media = MediaType.Print;, have you tried marking your css for @media print?

    Like so:

    <style type="text/css">
      @media print {
           .subcontainer{margin: 0 auto; padding-top: 20px}
           .hide-val{display:none;}
      }
    </style>
    

    Alternatively, take out the line theDoc2.HtmlOptions.Media = MediaType.Print;

    I haven't verified this, but it's worth a shot.