2016-08-11 4 views
0

私はiTextで文書を作成しています。カスタム幅が必要ですが、A4標準幅より小さい場合はA4標準幅に設定する必要があります。iText、PageSize A4 - 単位

float pageWidth = columns.size() * 100; 
if (pageWidth < PageSize.A4.getWidth()) { 
     pageWidth = PageSize.A4.getWidth(); 
} 
table.setTotalWidth(pageWidth); 

をそして、pageWidthPageSize.A4.getWidth()は異なる単位を得たためか、働いていない:

だから私は得ました。 これをデバッグしたとき、私はpageWidth900.0の値を、PageSize.A4.getWidth()には595.0を返しました。 比較のために同じ単位を得るには何が必要ですか?

+0

「列」とは何ですか?特に 'columns.size()'とは何ですか?それに '100 'を掛ける理由は何ですか? – mkl

答えて

2

900が595以上であるので、pageWidth<PageSize.A4.getWidth()は事実ではない、これが実行されることはありません:pageWidthpageWidth = PageSize.A4.getWidth();

値が変わることはありません。あなたは9列あります。

float pageWidth = columns.size()*100; 
if(pageWidth > PageSize.A4.getWidth()){ 
    pageWidth = PageSize.A4.getWidth(); 
} 
table.setTotalWidth(pageWidth); 

pageWidthのdoesn:そうpageWidthが、私はあなたが求めているものの反対をしたいと思います900

まま、あなたは100に掛けると900 900の結果は、595よりも大きいこと彼がページに合っていれば、それは595に縮小されます。

私はあなたがiTextに完全に無関係な論理エラーを起こしたと思います。

+0

あなたは正しいです。ブルーノ、助けてくれてありがとう – Iwnow

関連する問題