HTML к iTextSharp преобразованию высоты линии

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

Вот часть адреса, определенно:

            conn.Open();
            using (SqlDataReader itemReader = strSQL.ExecuteReader())
            {
                checksHolder.InnerHtml += "<table cellSpacing=\"0\" cellPadding=\"0\" border=\"0\" width=\"100%\">\n";

                while (itemReader.Read())
                {

                    if (i % 3 == 0 && i != 0)
                    {
                        checksHolder.InnerHtml += "</table>\n";
                        checksHolder.InnerHtml += "<!-- pagebreak -->\n";
                        checksHolder.InnerHtml += "<table cellSpacing=\"0\" cellPadding=\"0\" border=\"0\" width=\"100%\">\n";
                        f = 0;
                    }

                    if (i > 0 && i % 3 != 0)
                    {
                        checksHolder.InnerHtml += "<tr><td colspan=\"3\">





"; checksHolder.InnerHtml += "</td></tr>\n"; } String[] tmpArray = getConsignorInfo(itemReader["check_cs_id"].ToString()); int CheckNum = Int32.Parse(itemReader["check_number"].ToString()); String CheckAmount = itemReader["check_amount"].ToString(); String PayableTo = tmpArray[0]; String Memo = itemReader["check_memo"].ToString(); String name = tmpArray[0]; String address = tmpArray[1]; String city = tmpArray[2]; String state = tmpArray[3]; String zip = tmpArray[4]; Char NBSP = '\u00A0'; checksHolder.InnerHtml += "<tr><td colspan=\"3\">

</td></tr>\n"; checksHolder.InnerHtml += "<tr>\n"; //checksHolder.InnerHtml += "<td width=\"5\"></td>\n"; checksHolder.InnerHtml += "<td colspan=\"2\">\n"; checksHolder.InnerHtml += "\n"; checksHolder.InnerHtml += "               \n"; checksHolder.InnerHtml += PayableTo + "\n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "<td align=\"right\">\n"; checksHolder.InnerHtml += "" + string.Format("{0:c}", Double.Parse(CheckAmount.ToString())).Replace("$", "") + "\n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "</tr>\n"; checksHolder.InnerHtml += "<tr>\n"; checksHolder.InnerHtml += "<td colspan=\"3\">\n"; checksHolder.InnerHtml += " \n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "</tr>\n"; checksHolder.InnerHtml += "<tr>\n"; checksHolder.InnerHtml += "<td colspan=\"3\">\n"; checksHolder.InnerHtml += ""; if (wordify(decimal.Parse(CheckAmount.ToString())).Length >= 90) { checksHolder.InnerHtml += wordify(decimal.Parse(CheckAmount.ToString())); } else { string exes = " "; for (int x = wordify(decimal.Parse(CheckAmount.ToString())).Length; x <= 90; x++) { exes += "x"; } checksHolder.InnerHtml += wordify(decimal.Parse(CheckAmount.ToString())) + exes; } checksHolder.InnerHtml += "\n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "</tr>\n"; checksHolder.InnerHtml += "<tr>\n"; checksHolder.InnerHtml += "<td colspan=\"2\">\n"; checksHolder.InnerHtml += "<table cellSpacing=\"0\" cellPadding=\"0\" border=\"0\" width=\"100%\">\n"; checksHolder.InnerHtml += "<tr>\n"; checksHolder.InnerHtml += "<td colspan=\"2\">
\n"; checksHolder.InnerHtml += "" + name + "
\n"; checksHolder.InnerHtml += address + "
\n"; checksHolder.InnerHtml += city + ",\n"; checksHolder.InnerHtml += state + " \n"; checksHolder.InnerHtml += zip + "
\n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "</tr>\n"; checksHolder.InnerHtml += "<tr>\n"; checksHolder.InnerHtml += "<td colspan=\"3\">\n"; checksHolder.InnerHtml += "
</td>\n"; checksHolder.InnerHtml += "</tr>\n"; checksHolder.InnerHtml += "<tr>\n"; checksHolder.InnerHtml += "<td width=\"10\"></td>\n"; checksHolder.InnerHtml += "<td>\n"; checksHolder.InnerHtml += "" + Memo.Substring(0, 50) + "...\n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "</tr>\n"; checksHolder.InnerHtml += "</table>\n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "<td valign=\"bottom\" width=\"40\">\n"; checksHolder.InnerHtml += "\"\"
\n"; checksHolder.InnerHtml += "</td>\n"; checksHolder.InnerHtml += "</tr>\n"; i++; f++; } checksHolder.InnerHtml += "</table>\n"; itemReader.Close(); } public void CreatePDFDocument(string strHtml) { string strFileName = HttpContext.Current.Server.MapPath("printCheck.pdf"); //step 1: creation of a document-object iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(612, 792); Document document = new Document(rec); document.SetMargins(45f, 30f, 55f, 30f); //step 2: //we create a writer that listens to the document var pdfWriter = PdfWriter.GetInstance(document, new FileStream(strFileName, FileMode.Create)); pdfWriter.InitialLeading = 12.5f; string[] stringSeparators = new string[] { "<!-- pagebreak -->" }; //Response.Write(strHtml); string[] newString = strHtml.Split(stringSeparators, StringSplitOptions.None); //HTMLWorker obj = new HTMLWorker(document); document.Open(); var xmlWorkerHelper = XMLWorkerHelper.GetInstance(); var cssResolver = new StyleAttrCSSResolver(); var xmlWorkerFontProvider = new XMLWorkerFontProvider(); var cssAppliers = new CssAppliersImpl(xmlWorkerFontProvider); var htmlContext = new HtmlPipelineContext(cssAppliers); htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); PdfWriterPipeline pdfWriterPipeline = new PdfWriterPipeline(document, pdfWriter); HtmlPipeline htmlPipeline = new HtmlPipeline(htmlContext, pdfWriterPipeline); CssResolverPipeline cssResolverPipeline = new CssResolverPipeline(cssResolver, htmlPipeline); XMLWorker xmlWorker = new XMLWorker(cssResolverPipeline, true); XMLParser xmlParser = new XMLParser(xmlWorker); int i = 0; foreach (String currentString in newString) { if (i > 0) { document.NewPage(); } StringReader sr = new StringReader(currentString); xmlParser.Parse(sr); i++; } document.Close(); ShowPdf(strFileName); }

У меня только есть половина дюйма, чтобы поставить имя в. Я попытался определить высоту линии с оба 8px и просто 8 на всякий случай. Ничто не работало. Кто-либо знает, как я должен отформатировать HTML, чтобы перенести высоту линии? Заранее спасибо.

0
nl ja de
It' s не ясный, если you' ре используя класс HTMLWorker устаревший или более нового Рабочего XML. Без той информации ваш вопрос не имеющий ответа.
добавлено автор Bruno Lowagie, источник
@BrunoLowagie спасибо за ответ. I' m использование класса HTMLWorker. Didn' t знают, что это удерживалось от использования. Я don' t возражают переключаться на XMLWorker, все же. Только безотносительно работ правильно.
добавлено автор James, источник

1 ответы

Я модернизировал до xmlworker itextsharp (http://sourceforge.net/projects/xmlworker/), который позволяет мне использовать CSS и теги Div. Край не работает, к сожалению, но дополнение делает, таким образом, я смог сделать то, что я должен был сделать.

0
добавлено
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

CSS — русскоговорящее сообщество
CSS — русскоговорящее сообщество
1 502 участник(ов)

Сообщество любителей CSS Возникли проблемы с CSS? – пиши сюда, обсудим и предложим самое лучшее решение Работа: @css_ru_jobs Правила: https://teletype.in/@css_ru/r1EWtQ2w7 Приходите в наши чаты @javascript_ru и @frontend_ru Флуд: @css_flood

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing

css_jobs
css_jobs
26 участник(ов)

Чат для вопросов по css и html: @css_ru Флуд: @css_flood Канал с вакансиями и резюме: @css_jobs_feed

css_флуд
css_флуд
10 участник(ов)