Поворот отдельной страницы с помощью itextsharp — MVC C#

#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();
  

Теперь это работает!!