使用ItextSharp将HTML转换为PDF时,不会保留字体样式

时间:2016-02-09 20:26:07

标签: c# html pdf

我尝试将HTML转换为PDF,但字体样式未正确应用于PDF。以下是我的代码(使用itextsharp.dll):

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);

1 个答案:

答案 0 :(得分: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);

更新

仅更改标记设置。关闭前使用。

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