Экспорт данных из панели в 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(путь);