iTextSharp 5 - как конвертировать HTML элементы - PullRequest
0 голосов
/ 27 февраля 2019

Используя 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();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...