#asp.net #itext #pdf-generation #html-to-pdf
#asp.net #itext #генерация pdf #html-to-pdf
Вопрос:
Я использую следующий код для преобразования содержимого в редакторе (Ajax control) в pdf,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
/// <summary>
/// Summary description for pdfgeneration
/// </summary>
public class pdfgeneration
{
public pdfgeneration()
{
//
// TODO: Add constructor logic here
//
}
public void pdfgenerator(String name1, AjaxControlToolkit.HTMLEditor.Editor Editor1)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/pdf";
// Create PDF document
Document pdfDocument = new Document(PageSize.A4, 70, 55, 40, 25);
PdfWriter wri = PdfWriter.GetInstance(pdfDocument, new FileStream("e://" name1 ".pdf", FileMode.Create));
PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);
pdfDocument.Open();
string htmlText = Editor1.Content;
System.Collections.Generic.List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(htmlText), null);
for (int k = 0; k < htmlarraylist.Count; k )
{
pdfDocument.Add((IElement)htmlarraylist[k]);
}
pdfDocument.Close();
HttpContext.Current.Response.End();
}
}
Я изначально жестко кодирую следующий HTML-текст в редакторе (элемент управления Ajax),
String editorcontent = "<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>"
"<br/>" "<P align='center'><b>" courtname "</b></P>"
"<br/><P align='center'>(Before" jname "," desname ")"
"<br/>" "<P align='right'><b><u>" DropDownList1.SelectedItem " no. " TextBox1.Text "/" TextBox2.Text "</u></b>amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;</P>"
"<br />"
**//this table is the problem//** "<table><tr><td width='750px'><p align='left'>" petitioner "</p>" "</td><td>" "<p align='right'>" "..Applicant" "</p>" "</td></tr>" "<tr><td><p align='center'>" "V/s" "</p>" "</td><td></td>" "</tr>" "<tr><td width='75px'><p align='left'>" respondent "</p>" "</td><td>" "<p align='right'>" "..Respondent" "</p>" "</td></tr></table>"
"<br/><P align='center'><b><u>ORDER</u></b>";
Editor1.Content = editorcontent;
Если я удалю следующее table
из приведенного выше кода, то pdf будет сгенерирован успешно. но как только я включаю это table
в свой HTML-код, я получаю следующую ошибку
Как решить мою проблему.
Комментарии:
1. возможно, потребуется добавить <tbody></tbody>.
2. @Govind Камалапракаш Мальвия, где именно?
3. <таблица><tbody> …. </tbody></таблица>
4. @Govind KamalaPrakash Malviya Извините, это не сработало.
5. Точный дублирующий вопрос от того же пользователя. Grr.
Ответ №1:
текущая версия iTextSharp не поддерживает ширину ячейки, указанную в ‘px’. он не поддерживает ширину ячеек в процентах или только числовую.
когда вы пытались жестко кодировать HTML-содержимое, в двух местах было ‘px’:
<td width='750px'>
<td width='75px'>
удалите ‘px’, и все будет в порядке.