私はこの問題をどこでも検索しましたが、まだ実用的な解決策を得ることができません wrrr、それは非常に迷惑です。
xmlworker (itextsharp 2.1) を使用して、html から pdf を作成します。これは私には完全に機能しますが、渡された html で埋められた各ページにフッターとヘッダーを追加する必要があります。例では、この文字列をフッターhtmlとして機能するように渡しています
<table>
<tr>
<td>كند / źćąśęłżźń</td>
<td>something</td>
<td><img src="i_03_x2.png"/></td>
</tr>
</table>
XMLWorker.GetInstance() を使用してリストに解析し、フッターとして追加する必要があります。
public override void OnEndPage(PdfWriter writer, Document document)
{
PdfPTable footerTable = new PdfPTable(1);
footerTable.TotalWidth = width;
PdfPCell singleCell = new PdfPCell();
singleCell.BorderWidth = 2f;
DirectHandler handler = new DirectHandler();
using (TextReader sr = new StringReader(HTMLtoPDF.footer.HTML))
{
XMLWorkerHelper.GetInstance().ParseXHtml(handler, sr);
}
foreach (var element in handler.elements)
{
singleCell.AddElement(element);
}
footerTable.AddCell(singleCell);
footerTable.WriteSelectedRows(0, -1, left, bottom, writer.DirectContent);
}
public class DirectHandler : IElementHandler
{
public List<IElement> elements = new List<IElement>();
public void Add(IWritable w)
{
if (w is WritableElement)
{
elements.AddRange(((WritableElement)w).Elements());
}
}
}
そして今、htmlの2番目と3番目の列が表示されますが、最初の列が欠落しているため、私の質問は次のとおりです。
私のフォント (unicode arial) をに添付することは可能ですか?
XMLWorkerHelper.GetInstance().ParseXHtml
私のハンドラーとフォントを使用していますか? ParseXHtml 関数には複数のオーバーロードがありますが、必然的に DirectHandler を IElement ハンドラーとして使用し、MY FONT (arialuni.ttf) をフォント プロバイダーとして使用する必要があります。どんな助けでもいただければ幸いです