ArvindTomar Ответов: 0

Экспорт данных из панели в PDF внутреннее форматирование представления сетки не работает в ASP.NET


У меня есть панель на странице, а внутри панели есть вид сетки, когда я экспортирую данные панели в pdf, все в порядке, но ширина gridview height и высота столбца не работают в соответствии с определением.
Я пробую все, что связано с gridview property и кодом позади него.

Я использую iTextSharp

Что я уже пробовал:

Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
            HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
            PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
            string pdfFileName = Request.PhysicalApplicationPath + "\\files\\" + "DeliveryChalan" + FileName + ".pdf";
            string appPath = HttpContext.Current.Request.ApplicationPath;
            string path = Server.MapPath(appPath + "\\files\\" + "DeliveryChalan" + FileName + ".pdf");
            dynamic output = new FileStream(path, FileMode.Create);
            iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, output);
           //PdfWriter writer= iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, output);
            //writer.PageEvent = new Footer();

            pdfDoc.Open();
            //Paragraph welcomeParagraph = new Paragraph("Hello, World!");
          
            //pdfDoc.Add(welcomeParagraph);

            for (int i = 1; i <= 4; i++)
            {
                string Id = "pnldata" + i;
                Panel pnl = (Panel)FindControl(Id);

                using (StringWriter sw = new StringWriter())
                {
                    using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                    {
                       
                        pdfDoc.SetPageSize(new Rectangle(595, 850));
                        var style = new StyleSheet();
                        style.LoadTagStyle("body", "size", "9px");
                        //style.LoadTagStyle("grdDeliverChallan2", "height", "500px");
                        htmlparser = new HTMLWorker(pdfDoc);
                        //htmlparser.SetStyleSheet(style);
                        //pdfDoc.PageSize.Height = 10;
                       
                        pdfDoc.NewPage();
                        //pdfDoc.PageSize
                        //const string V = @"vshsd";
                        //Chunk c1 = new Chunk("A chunk represents an isolated string. ");
                        //ColumnText.ShowTextAligned(writer.DirectContent, Element.ALIGN_RIGHT, V, 36, 820, 0);

                        pnl.RenderControl(hw);
                    
                        StringReader sr = new StringReader(sw.ToString());
                        htmlparser.Parse(sr);
                    }
                }
            }
           

            pdfDoc.Close();

ArvindTomar

после долгих исследований и разработок я наконец получил ответ, который использую ironpdf.dll для контроля высоты и с сетки и страницы

Документ pdfDoc = новый документ(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = новый HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, ответ.Выходной поток);
строка appPath = HttpContext.Current.Запрос.ApplicationPath;
pdfDoc.Открыть();
Группа НЛП;
StringWriter sw = новый StringWriter();
for (int i = 1; i <= 5; i++)
{
string Id = "pnldata" + i;

pnl = (панель)FindControl(Id);

использование (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
pdfDoc.SetPageSize(новый прямоугольник(595, 850));

htmlparser = новый HTMLWorker(pdfDoc);



pdfDoc.NewPage();

НЛП.RenderControl(гв);

StringReader sr = новый StringReader(sw.Метод toString());
htmlparser.Синтаксический анализ(СР);

}
}
var Renderer = новый HtmlToPdf();

строка html1 = "" + sw.ToString() + "";
StringBuilder html = новый StringBuilder(html1);

Визуализация.PrintOptions.Размер Страницы = PdfPrintOptions.PdfPaperSize.A4;
Визуализация.PrintOptions.PaperOrientation = PdfPrintOptions.PdfPaperOrientation.Портрет;
// Визуализация.PrintOptions.Header = new SimpleHeaderFooter() { CenterText = "Iron PDf C# Html to PDF Example", FontSize = 10 };
// Визуализация.PrintOptions.Нижний колонтитул = новый HtmlHeaderFooter() { HtmlFragment = "страница {Страница} из {всего-страниц}" };
var PDF = рендерер.RenderHtmlAsPdf(html1);
строка path = сервер.MapPath(appPath + "\\files\\" + "DeliveryChalan" + FileName + ".pdf");
PDF.SaveAs(путь);

0 Ответов