2016-02-09 5 views
0

Я пытаюсь преобразовать HTML в PDF, но стиль шрифта не применяется должным образом к PDF. Ниже мой код (с помощью itextsharp.dll):Стиль шрифта не сохраняется при преобразовании HTML в PDF с использованием ItextSharp

Document document = new Document(); 
FileStream fs = new FileStream(fileName, FileMode.Create); 
PdfWriter.GetInstance(document, fs); 
document.Open(); 
HTMLWorker htmlWorker = new HTMLWorker(document); 
string content = radEditorCollector.Content; 
if (string.IsNullOrWhiteSpace(content)) 
{ 
    content = AppConstants.LetterNotConfigured; 
} 
htmlWorker.Parse(new StringReader(content)); 
document.Close(); 
fs.Close(); 
//Create document list of each debtor 
PdfReader pdfReader = new PdfReader(fileName); 
readerList.Add(pdfReader); 
+0

где вы настройки 'Font' в вашем PDF с помощью ITextSharp вам нужно использовать их FontFactory вам нужно добавить pdfcell, например, я пишу в моем PDF из DataTable hearders в моем примере ' PdfPCell = null PdfPCell = new PdfPCell (новая фраза (новый Chunk (dt.Columns [column] .Caption, font8))); ' – MethodMan

+0

@ Содержание MethodMan содержит HTML-разметку с помощью приложения тега стиля, и у меня разные строки с другим стилем. Как я могу использовать FntFactory. –

+0

вы можете нарисовать строку string.Empty У ITextSharp есть много рабочих примеров на их сайте, вот как я это понял .. – MethodMan

ответ

0

Вы можете изменить шрифт с pdfStamper. Вот небольшая идея. Вы можете справиться с тем, что вам нужно.

PdfReader pdfReader = new PdfReader(fileName); 
PdfStamper pdfStamper = new PdfStamper(pdfReader, fs); 
PdfContentByte pdfContentByte = pdfStamper.GetOverContent(1); 
BaseFont baseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, BaseFont.NOT_EMBEDDED); 
pdfContentByte.SetColorFill(BaseColor.BLUE); 
pdfContentByte.SetFontAndSize(baseFont, 8); 
pdfContentByte.BeginText(); 
pdfContentByte.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "Here is your settings", 400, 600, 0); 
pdfContentByte.EndText(); 
pdfStamper.Close(); 
readerList.Add(pdfReader); 

Update:

Изменение настроек только тегов. Используйте перед закрытием.

pdfStamper.AcroFields.SetFieldProperty("YOUR_TAG", "textfont", 
baseFont, null); 
+0

контент содержит HTML-разметку с приложенным к ней тегом стиля, и у меня разные строки с разными стилями. тогда получится. –

+0

@MayurPawar Я обновляю только изменение тег. –

+0

@MayurPawar Это работа сейчас? –