Member 14192879 Ответов: 1

Слишком маленький размер шрифта: 0


Слишком маленький размер шрифта: 0

Я думаю, может быть, ошибка, потому что pdf имеет более 1 страницы, и он создает все страницы pdf на 1 странице
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения Об Исключении: iTextSharp.text.DocumentException: размер шрифта слишком мал: 0

Ошибка Источника:



Line 1666:            StringReader s_tr = new StringReader(s_tw.ToString());
Line 1667:            HTMLWorker html_worker = new HTMLWorker(doc);
Line 1668:            html_worker.Parse(s_tr);
Line 1669:            doc.Close();
Line 1670:            Response.Write(doc);
  

 Source File:  C:\Users\    Line:  1668 

Stack Trace: 



[DocumentException: Font size too small: 0]
   iTextSharp.text.pdf.PdfDocument.Add(IElement element) +6159
   iTextSharp.text.Document.Add(IElement element) +176
   iTextSharp.text.html.simpleparser.HTMLWorker.ProcessTable() +89
   iTextSharp.text.html.simpleparser.HTMLTagProcessor_TABLE.EndElement(HTMLWorker worker, String tag) +68
   iTextSharp.text.html.simpleparser.HTMLWorker.EndElement(String tag) +52
   iTextSharp.text.xml.simpleparser.SimpleXMLParser.Go(TextReader reader) +1367
   iTextSharp.text.html.simpleparser.HTMLWorker.Parse(TextReader reader) +78
   miguide.WebForm25.sll() in C:\Users:1668
   miguide.WebForm25.Page_Load(Object sender, EventArgs e) in C:\Users:38
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +52
   System.Web.UI.Control.OnLoad(EventArgs e) +97
   System.Web.UI.Control.LoadRecursive() +61
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +693


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

string attachment = "attachment; filename=" + "abc" + ".pdf";
            Response.ClearContent();
            Response.AddHeader("content-disposition", attachment);
            Response.ContentType = "application/pdf";
            StringWriter s_tw = new StringWriter();
            HtmlTextWriter h_textw = new HtmlTextWriter(s_tw);
            h_textw.AddStyleAttribute("font-size", "7pt");
            h_textw.AddStyleAttribute("color", "Black");
           this.Page.RenderControl(h_textw);//Name of the Panel
            Document doc = new Document();
            doc = new Document(PageSize.A4, 5, 5, 15, 5);
            FontFactory.GetFont("Times New Roman", 14);
            PdfWriter.GetInstance(doc, Response.OutputStream);
            doc.Open();           
            StringReader s_tr = new StringReader(s_tw.ToString());
            HTMLWorker html_worker = new HTMLWorker(doc);
            html_worker.Parse(s_tr);
            doc.Close();
            Response.Write(doc);

Afzaal Ahmad Zeeshan

Может быть, попробовать установить шрифт. Хотя я не эксперт в iTextSharp, но мне кажется, что вы только получаете шрифт, а не устанавливаете его где-либо. Может быть, я ошибаюсь, но ошибка говорит что-то вроде этого.

Richard MacCutchan

Вы правы, смотрите мои предложения ниже.

1 Ответов

Рейтинг:
2

Richard MacCutchan

FontFactory.GetFont("Times New Roman", 14);

То GetFont метод возвращает ссылку на шрифт, которую вам нужно захватить и передать в iTextSharp. Что-то вроде:
Font myTimesFont = FontFactory.GetFont("Times New Roman", 14);
// not sure how you pass this in ...


[редактировать]
Видеть itextsharp select font - поиск в Google[^]
[/редактировать]


Member 14192879

Я использовал то же самое, что и вы, но проблема в том, что когда мой pdf имеет только одну страницу, то он показывает мне pdf, но когда мой pdf имеет более одной страницы, то он показывает ошибку размер шрифта слишком мал. как я могу создать нет страниц в pdf или он автоматически создает страницу?

Richard MacCutchan

Извините, я не использовал iTextSharp. Вам нужно посмотреть на свой код, чтобы увидеть, что происходит, когда создается более одной страницы. Я могу только догадываться, что где-то вам не хватает какого-то кода, который устанавливает или сбрасывает шрифт.