Я хотел бы знать, имеет ли ITextSharp возможность преобразования HTML к PDF. Все, что я преобразую, просто будет простым текстом, но к сожалению нет очень мало ни к какой документации относительно ITextSharp, таким образом, я не могу определить, будет ли это эффективным решением для меня.
Если это не может сделать этого, кто-то может указать на меня на некоторые хорошие, свободные библиотеки .NET, которые могут взять простой простой текст документ HTML и преобразовать его в PDF?
tia.
после некоторых копаний. Я нашел хороший способ выполнить что мне нужно с 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
{
}
}
Я столкнулся с тем же вопросом несколько недель назад, и это результат того, что я нашел. Этот метод выполняет быстрый дамп 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;
}