1

MultiColumnText オブジェクト内の列に追加されたときに、Paragraph オブジェクトの行の高さを設定するのに問題があります。

新しい各行の間の任意の間隔に注意してください。2 列目にレンダリングされたコンテンツのスクリーン ショット。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

3つの考え:

  1. MultiColumnTextは最新の iText リリースから削除されているため、あまり時間をかけたくないかもしれません。ColumnText将来性のあるソリューションが必要な場合に使用します。
  2. あなたは任意の行の高さがあると言います。PDF 言語では、行の高さをリーディングと呼びます。私はあなたがどこでも使っているのを見ませんsetLeading()(多分私は何かを見落としています)。
  3. (Multi)ColumnTextPdfPCell2 つの異なるモードがあります。テキストモードとコンポジットモード。

複合モードでは、コンテナー (列またはセル) の設定は無視され、コンテンツ (Paragraphおよび追加されるその他のオブジェクト) の設定が優先されます。このモードでは、コンテナーの内容にさまざまな行送り、配置などを設定できます。

テキスト モードでは、コンテナー (列またはセル) のレベルで行送りを設定すると、すべてのコンテンツがその設定に従います。このモードでは、すべてのコンテンツが同じ行送り、同じ配置、...

不規則な列を作成しています。つまり、テキスト モードでしか作業できません。列のレベルでリーディングを設定する必要があります。

于 2012-10-06T07:19:26.880 に答える