Я преобразования HTML в PDF, как показано ниже:семейство шрифтов не работает в PDF
public const string PdfDocumentHeaderHtml = @"<!DOCTYPE html>
<html lang='en' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta charset='utf-16' />
<title></title>
</head>
<body>
<table>
<tr>
<td colspan='3'>
<span Style='font-family:Arial;font-size:10pt;font-weight:bold;'>{0}</span>
<br/>
<br/>
<span class='pageHeaderText'>{1}</span>
</td>
<td colspan='1'>
<span><img src='' width='150' height='90' alt='NOS'/></span>
</td>
</tr>
</table>
</body>
</html>";
и сохранить в PDF, используя приведенный ниже код:
public override void OnCreatePDF(PdfWriter writer, Document document)
{
iTextSharp.text.FontFactory.Register(@"C:\Windows\Fonts\arial.ttf", "Arial");
base.OnCreatePDF(writer, document);
if (writer == null)
throw new ArgumentNullException("writer");
if (document == null)
throw new ArgumentNullException("document");
var headerHtml = string.Format(Constants.NosPdfDocumentHeaderHtml, Urn, Title);
var providers = new Dictionary<string, Object> { { HTMLWorker.IMG_BASEURL, string.Format(Constants.HeaderImageLocation, SiteUrlForHeaderImage) } };
List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(headerHtml), null, providers);
foreach (IElement htmlElement in htmlarraylist)
{
document.Add(htmlElement);
document.Add(new LineSeparator((float)0.90, 100, new BaseColor(0, 112, 192, 0), 0, 0));
}
}
Я хочу установить Font- Семья: Arial для PDF, но проблема в том, что , когда я вижу свойства PDF-файла, он говорит, что используется Helvetica.
Я думаю, что мне нужно, чтобы загрузить Adobe Font Metric файл (arial.afm файл) и установить это семейство шрифтов (вместо arial.ttf) для использования с PDF. Но я не знаю, как это сделать.
Не могли бы вы посоветоваться?
Спасибо,
Вы используете 'HTMLWorker' вместо XML Worker. Вы не создаете 'FontProvider'. Пожалуйста, прочитайте мой ответ на следующий вопрос, и вы найдете несколько примеров: http://stackoverflow.com/questions/26738289/itextsharp-write-html-to-pdf-document/ –
Кстати: такой вещи нет как файл arial.afm. Это означало бы, что вы можете найти Arial как шрифт Type1 где-нибудь. Также: вы регистрируете arial.ttf, но, глядя на ваш HTML, я вижу, что вы действительно хотите arialbd.ttf (и вы не зарегистрировали этот шрифт). –
Спасибо за ваш ответ, но не могли бы вы объяснить, как создать FontProvider? какие строки моего кода неверны? – Kate