1

将 Paragraph 对象添加到 MultiColumnText 对象内的 Column 时,我无法为其设置行高。

注意每个新行之间的任意间距。第二列渲染内容的屏幕截图。https://dl.dropbox.com/u/249320/Foliotek/Capture.PNG

我让它渲染并正确进入下一列。但我似乎无法设置每个新行的高度。想法?

我的代码:

MultiColumnText mct = new MultiColumnText();
            mct.Alignment = Element.ALIGN_JUSTIFIED_ALL;
            //8

            // setup column 1
            float[] left = {1020, 280, 1020, 7 };
            float[] right = {1022, 576,
                         1022, 280,
                         1096, 280,
                         1214, 154,
                         1214, 7
                        };
            mct.AddColumn(left, right);

            // setup column 2
            left = new float[] { 1422, 576,
                              1422, 266,
                              1259, 106,
                              1246, 105,
                              1246, 7
                             };
            right = new float[] {1433, 280, 1433, 7 };
            mct.AddColumn(left, right);
            techDataColumnText += " GALLIA est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.  Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt.  Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt.";
            Paragraph techDataPhrase = new Paragraph(techDataColumnText, new Font(FuturaBoldBaseFont, 8f));

            mct.AddElement(techDataPhrase);
            do
            {
                document.Add(mct);
                mct.NextColumn();
            } while (mct.IsOverflow());
4

1 回答 1

1

三个想法:

  1. MultiColumnText已从最新的 iText 版本中删除,因此您可能不想在它上面投入太多时间。ColumnText如果您想要一个面向未来的解决方案,请使用。
  2. 你说有一个任意的行高。在 PDF 语言中,行高称为行高。我没有看到你setLeading()在任何地方使用(也许我忽略了一些东西)。
  3. (Multi)ColumnTextPdfPCell有两种不同的模式。文本模式和复合模式。

复合模式下,容器(列或单元格)的设置将被忽略,而有利于内容(Paragraph添加的对象和其他对象)的设置。在这种模式下,容器的内容可以有不同的前导、对齐、...

文本模式中,您在容器(列或单元格)级别设置前导,所有内容都遵循该设置。在这种模式下,所有内容都具有相同的前导、相同的对齐方式、...

您正在创建一个不规则的列,这意味着您只能在文本模式下工作。您需要在列的级别设置前导。

于 2012-10-06T07:19:26.880 回答