iTextを使用してテーブルを含むPDFを作成しています。テーブルヘッダーは90度回転したテキストを持っています。これはCellEvent(以下のコード)を使って追加しています。これは、表が複数のページにまたがる場合を除いて、回転したセルのヘッダー・テキストがページの上部から流れ出る場合を除いて、優れています。iText:CellEvent中にセルの高さを設定する
設定しようとしましたcell.setFixedHeight(100)しかし、セルには影響しないようです。私もthis solutionを試しましたが、結果の画像をテキストで表示するためにセルを取得できません。
@Override
public void cellLayout(PdfPCell cell, Rectangle position, PdfContentByte[] canvases) {
PdfContentByte canvas = canvases[PdfPTable.TEXTCANVAS];
try {
canvas.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.WINANSI, false), this.fontSize);
} catch (DocumentException | IOException e) {
e.printStackTrace();
}
if (this.alignment == PdfPCell.ALIGN_CENTER) {
this.left = ((position.getRight() - position.getLeft())/2);
}
else if (this.alignment == PdfPCell.ALIGN_MIDDLE) {
this.top = ((position.getTop() - position.getBottom())/2);
}
canvas.showTextAligned(this.alignment, this.text, position.getLeft() + this.left, position.getTop() - this.top, this.rotation);
}
ここでは、セルヘッダーのオーバーフローの様子を示します。この例では、月と年(2016年3月)が表示されます。
Iは、使用される実際のヘッダーテキストに依存する任意の高さにセルを有するたい。どのようにこれを解決するための任意のアイデアですか?
これは90度ずつの回転で完璧に機能しますが、私はこの回答を受け入れます。私はCellEventを使用していましたが、これはテキストの角度が必要なためですが、90度の回転がすべての要件で機能するかどうかはわかります。ありがとう! – JohnP