#javascript #asp.net-mvc #rotation #itext
#javascript #asp.net-mvc #поворот #itext
Вопрос:
у меня есть функция генерации PDF, где я загружаю 3 разных HTML’а как один pdf. Но мне нужна страница, которая содержит слово «Страница B», которая должна иметь альбомную ориентацию .. потому что у нее тяжелая СЕТКА.
public void HTMLToPdfTEST(string[] HTML, string fileName, string folderPath, string physicalApplPath, string requestNumber = "")
{
Document document = new Document();
PdfWriter pdfwriter = PdfWriter.GetInstance(document, new FileStream(physicalApplPath folderPath "\" fileName ".pdf", FileMode.Create));
TableHeader tevent = new TableHeader();
tevent.Header = requestNumber;
pdfwriter.PageEvent = tevent;
document.Open();
iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
foreach (string htmlPage in HTML)
{
if (requestNumber.Contains("Page B")){
//do page rotation
hw.Parse(new StringReader(htmlPage));
}
else{
hw.Parse(new StringReader(htmlPage));
}
document.NewPage();
}
document.Close();
}
Комментарии:
1. Вы используете давно устаревший
HTMLWorker
, в то время как вы должны использоватьXMLWorker
.
Ответ №1:
Есть какое-то решение.
//added below line and mentioned it in if condition.
document.SetPageSize(PageSize.A4);
document.Open();
foreach (string htmlPage in HTML)
{
if (requestNumber.Contains("CMC") amp;amp; HTML[1] != null)
{
//do page rotation
document.SetPageSize(PageSize.A4.Rotate());
hw.Parse(new StringReader(htmlPage));
}
else
{
hw.Parse(new StringReader(htmlPage));
}
document.NewPage();
}
document.Close();
Теперь это работает!!