2012-04-13 22 views
0

有一段类似的代码如下:如何改变编码的MemoryStream的(用它来创建PDF)

var workStream = new MemoryStream(); 
    var doc = new Document(PageSize.LETTER, 10, 10, 42, 35); 
    PdfWriter.GetInstance(doc, workStream).CloseStream = false; 
    doc.Open(); 
    var builder = new StringBuilder(); 
    builder.Append("MY LONG HTML TEXT"); 
    var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(builder.ToString()), null); 
    foreach (var htmlElement in parsedHtmlElements) 
     doc.Add(htmlElement); 
    doc.Close(); 
    byte[] byteInfo = workStream.ToArray(); 
    workStream.Write(byteInfo, 0, byteInfo.Length); 
    workStream.Position = 0; 
    return new FileStreamResult(workStream, "application/pdf") 

和解决问题 - 我想在我的PDF一些波兰字母(如“A”,“E “等) 如何做到这一点?

+1

[iTextSharp的5抛光字符(的可能重复http://stackoverflow.com/questions/4902033/itextsharp-5波兰语和英语字符) – 2012-04-14 05:45:46

回答

1

您需要注册的字体,然后使用由样式表指定编码:

FontFactory.Register("c:\\windows\\fonts\\tahoma.ttf"); 

StyleSheet styles = new StyleSheet(); 
styles.LoadTagStyle(HtmlTags.BODY, HtmlTags.FONTFAMILY, "tahoma"); 
styles.LoadTagStyle(HtmlTags.BODY, HtmlTags.ENCODING, "Identity-H");    

var html = @"data"; 
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(html), styles); 
相关问题