我一直試圖讓我的MVC應用程序基於MVC Views創建pdf文件。我用純html處理了這個問題。但我也想提示我用於瀏覽器的css文件。現在,他們中的一些工作,但與一個我得到以下錯誤:iTextSharp輸入字符串的格式不正確css錯誤
An exception of type 'System.FormatException' occurred in mscorlib.dll but was not handled in user code
Additional information: Input string was not in a correct format.
我使用下面的代碼:
var data = GetHtml(new IndexModel(Context), "~\\Views\\Home\\Index.cshtml", "");
using (var document = new iTextSharp.text.Document())
{
//define output control HTML
var memStream = new MemoryStream();
TextReader xmlString = new StringReader(data);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("c:\\tmp\\my.pdf", FileMode.OpenOrCreate));
//open doc
document.Open();
// register all fonts in current computer
FontFactory.RegisterDirectories();
// Set factories
var htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
// Set css
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
cssResolver.AddCssFile(HttpContext.Server.MapPath("~/Content/elements.css"), true);
cssResolver.AddCssFile(HttpContext.Server.MapPath("~/Content/style.css"), true);
cssResolver.AddCssFile(HttpContext.Server.MapPath("~/Content/jquery-ui.css"), true);
// Export
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));
var worker = new XMLWorker(pipeline, true);
var xmlParse = new XMLParser(true, worker);
xmlParse.Parse(xmlString);
xmlParse.Flush();
document.Close();
}
字符串「數據」是正確的,並沒有問題,問題就出與AddCssFile()。 如果我創建的PDF格式沒有和CSS文件一切正常,但包括CSS文件觸發錯誤。
幫助將非常感激。
是否與所有三個CSS文件或只是一個特定的一個突破?您使用的是什麼版本的iTextSharp和XMLWorker?這可能很難遠程排除故障,我建議爲它們獲取源代碼,然後逐步通過調試器來查看引發異常的東西。 –