ITextSharp HTML к PDF?

Я хотел бы знать, имеет ли ITextSharp возможность преобразования HTML к PDF. Все, что я преобразую, просто будет простым текстом, но к сожалению нет очень мало ни к какой документации относительно ITextSharp, таким образом, я не могу определить, будет ли это эффективным решением для меня.

Если это не может сделать этого, кто-то может указать на меня на некоторые хорошие, свободные библиотеки .NET, которые могут взять простой простой текст документ HTML и преобразовать его в PDF?

tia.

62
задан Simon Martin 7 December 2012 в 10:04
поделиться

2 ответа

после некоторых копаний. Я нашел хороший способ выполнить что мне нужно с ITextSharp.

Вот пример кода, если он поможет кому-то еще в будущем:

protected void Page_Load(object sender, EventArgs e)
{
    Document document = new Document();
    try
    {
        PdfWriter.GetInstance(document, new FileStream("c:\\my.pdf", FileMode.Create));
        document.Open();
        WebClient wc = new WebClient();
        string htmlText = wc.DownloadString("http://localhost:59500/my.html");
        Response.Write(htmlText);
        List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(htmlText), null);
        for (int k = 0; k < htmlarraylist.Count; k++)
        {
            document.Add((IElement)htmlarraylist[k]);
        }

        document.Close();
    }
    catch
    {
    }
}
28
ответ дан 24 November 2019 в 16:43
поделиться

Я столкнулся с тем же вопросом несколько недель назад, и это результат того, что я нашел. Этот метод выполняет быстрый дамп HTML в PDF. Документ, скорее всего, потребует некоторой настройки формата.

private MemoryStream createPDF(string html)
{
    MemoryStream msOutput = new MemoryStream();
    TextReader reader = new StringReader(html);

    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4, 30, 30, 30, 30);

    // step 2:
    // we create a writer that listens to the document
    // and directs a XML-stream to a file
    PdfWriter writer = PdfWriter.GetInstance(document, msOutput);

    // step 3: we create a worker parse the document
    HTMLWorker worker = new HTMLWorker(document);

    // step 4: we open document and start the worker on the document
    document.Open();
    worker.StartDocument();

    // step 5: parse the html into the document
    worker.Parse(reader);

    // step 6: close the document and the worker
    worker.EndDocument();
    worker.Close();
    document.Close();

    return msOutput;
}
65
ответ дан 24 November 2019 в 16:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: