私は Open Xml を初めて使用し、Open Xml SDK を使用してレポート アプリケーションを作成しました。データをテーブルに入力し、テーブルの高さがスライドの境界線を超えると、スライドを複製し、次のデータ セットを新しいスライドに入力します。すべて正常に動作しますが、一部の行に 2 行に折り返されるデータがある場合、正確な場所で新しいページに割り込むことができません。その理由は、Open Xml が 1 行のデータがある場合でも、行の高さと同じ行の高さを返すためです。これを解決する方法はありますか。
ページネーション ロジックを実行するコードを次に示します (CreateTextCell は、テキスト セルを作成して返すメソッドです)。
var tbl = current.Slide.Descendants<A.Table>().First();
var tr = new A.TableRow();
tr.Height = 200000;
tr.Append(CreateTextCell(product.Name));
tr.Append(CreateTextCell(product.ProductNumber));
tr.Append(CreateTextCell(product.Size));
tr.Append(CreateTextCell(String.Format("{0:00}", product.ListPrice)));
tr.Append(CreateTextCell(product.SellStartDate.ToShortDateString()));
tbl.Append(tr);
totalHeight += tr.Height;
if (totalHeight > pageBorder)
overflow = true;