Я генерирую HTML из базы данных, а затем отправляю его в PrinceXML для преобразования в PDF.Код, который я использую для этого:
string _htmlTemplate = @"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""><html lang=""en-GB"" xml:lang=""en-GB"" xmlns=""http://www.w3.org/1999/xhtml""><head><meta http-equiv=""Content-type"" content=""text/html;charset=UTF-8"" /><title>Generated PDF Contract</title></head><body>{0}</body></html>";
string _pgeContent = string.Format(_htmlTemplate, sb.ToString());
writer.Write(sb.ToString());
Byte[] arrBytes = UTF8Encoding.Default.GetBytes(_pgeContent);
Stream s = new MemoryStream(arrBytes);
Prince princeConverter = new Prince(ConfigurationManager.AppSettings["PrinceXMLInstallLoc"].ToString());
princeConverter.SetLog(ConfigurationManager.AppSettings["PrinceXMLLogLoc"]);
princeConverter.AddStyleSheet(Server.MapPath(ConfigurationManager.AppSettings["FormsDocGenCssLocl"]));
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.BufferOutput = true;
Однако преобразование завершается с ошибкой:
Неправильный ввод UTF-8, укажите кодировку!Байты: 0xA0 0x77 0x65 0x62
Я взял сгенерированный html и загрузил его в валидатор W3C.Он проверяет разметку как XHTML 1.0 Transitional в кодировке UTF-8 без ошибок и предупреждений.
Я также просмотрел файл с тонкой гребенкой, ища недопустимые символы.Пока ничего.
Может кто-нибудь предложить что-нибудь еще, что я мог бы попробовать?