Используя c # и пакеты nuget iTextSharp, itextsharp.pdfa и itextsharp.xmlworker, версия 5.5.13, я генерирую PDF-документ стандарта PDF / A.Моя проблема заключается в том, что некоторые тексты имеют HTML-теги, и их также следует преобразовать в PDF.Как показывает мой пример, текст содержит HTML-тег и должен быть преобразован в жирный.Как это сделать?Может быть, есть возможность использовать itext XMLWorkerHelper, если да, то как его использовать?
using System;
using System.IO;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
namespace itext_html
{
class Program
{
static void Main(string[] args)
{
var baseFontArial = BaseFont.CreateFont(Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\arial.ttf",
BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
var arial7 = new Font(baseFontArial, 7);
var stream = new FileStream(@"c:\temp\itext\itext.pdf", FileMode.Create);
var doc = new Document(PageSize.A4);
var pdfAWriter = PdfAWriter.GetInstance(doc, stream, PdfAConformanceLevel.PDF_A_1B);
doc.Open();
var outi = new PdfDictionary(PdfName.OUTPUTINTENT);
outi.Put(PdfName.OUTPUTCONDITIONIDENTIFIER, new PdfString("sRGB IEC61966-2.1"));
outi.Put(PdfName.INFO, new PdfString("sRGB IEC61966-2.1"));
outi.Put(PdfName.S, PdfName.GTS_PDFA1);
var icc = ICC_Profile.GetInstance(@"C:\Temp\itext\srgb.profile");
pdfAWriter.SetOutputIntents("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", icc);
var table = new PdfPTable(2);
table.SetWidths(new int[] { 65, 35 });
var text1 = new Phrase("Hello World <b>bold text</b>", arial7);
var cell = new PdfPCell(text1);
table.AddCell(cell);
var text2 = new Phrase("Another text <i>italic text</i>", arial7);
cell = new PdfPCell(text2);
table.AddCell(cell);
doc.Add(table);
//Add text with html elements
doc.Add(new Phrase("Hello World <b>bold text</b>", arial7));
pdfAWriter.CreateXmpMetadata();
doc.Close();
pdfAWriter.Close();
}
}
}