[英]How to add bootstrap.css to pdf document itextsharp
took as a basis for this http://dangtrung87.blogspot.com/2013/07/asp-generate-pdf-with-itextsharp.html i have next code 以此为基础http://dangtrung87.blogspot.com/2013/07/asp-generate-pdf-with-itextsharp.html我有下一个代码
string htmlText = RenderViewToString(this.ControllerContext, "report", null, true);
htmlText = System.Text.RegularExpressions.Regex.Replace(htmlText, @"\s+", " ");
htmlText = htmlText.Replace("\n", "").Replace("\r","").Trim();
//Generate PDF
using (var document = new Document(PageSize.A4, 40, 40, 40, 40))
{
htmlText = FormatImageLinks(htmlText);
//define output control HTML
var memStream = new MemoryStream();
TextReader xmlString = new StringReader(htmlText);
PdfWriter writer = PdfWriter.GetInstance(document, memStream);
//open doc
document.Open();
string arialuniTff = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF");
// Set factories
var htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
// Set css
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));
cssResolver.AddCssFile(HttpContext.Server.MapPath("~/Content/bootstrap.css"), true);
cssResolver.AddCss(".shadow {background-color: #ebdddd; }", true);
var worker = new XMLWorker(pipeline, true);
var xmlParse = new XMLParser(true, worker);
xmlParse.Parse(xmlString);
xmlParse.Flush();
document.Close();
document.Dispose();
return File(memStream.ToArray(), "application/pdf", "test.pdf");
}
I have error here xmlParse.Parse(xmlString); 我在这里有错误xmlParse.Parse(xmlString); Additional information: Input string was invalid.
附加信息:输入字符串无效。
if i change cssResolver.AddCssFile(HttpContext.Server.MapPath("~/Content/bootstrap.css"), false ); 如果我更改cssResolver.AddCssFile(HttpContext.Server.MapPath(“〜/ Content / bootstrap.css”), false ); i have no error.
我没有错误。
And i have pdf file but work only cssResolver.AddCss(".shadow {background-color: #ebdddd; }", true); 而且我有pdf文件,但只能使用cssResolver.AddCss(“。shadow {background-color:#ebdddd;}”,true);
bootstrap style is not work ( 引导程序样式不起作用(
how to correct add this ?? 如何正确添加这个?
The reason you have this error is because cssResolver must be initialized before being used in pipeline, try changing these lines 出现此错误的原因是,在管道中使用cssResolver之前必须对其进行初始化,请尝试更改这些行
// Set css
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));
cssResolver.AddCssFile(HttpContext.Server.MapPath("~/Content/bootstrap.css"), true);
cssResolver.AddCss(".shadow {background-color: #ebdddd; }", true);
by 通过
// Set css
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
cssResolver.AddCssFile(HttpContext.Server.MapPath("~/Content/bootstrap.css"), true);
cssResolver.AddCss(".shadow {background-color: #ebdddd; }", true);
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));
Try it, works fine for me. 试试吧,对我来说很好。 Regards
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.