ソート可能なテーブルを作成するためにiTextライブラリを使用しています。このため私は同じ位置に作成されたテーブルを隠す/表示しようとしています。私はこれを読むには、オプションの内容を使用することで実現できます。誰でも、省略可能なコンテンツの表を表示/非表示にするのを手伝ってもらえますか?オプションのコンテンツでテーブルを非表示にする方法
0
A
答えて
1
の例を見てください。この例では、同じ場所にある3つの重複するテーブルをドキュメントに追加しますが、各テーブルはラジオグループの異なるレイヤに属しているため、同時に1つのテーブルしか表示されません。列見出しをクリックすると、別の表に切り替えることができます。
optionaltables.pdfをご覧ください。デフォルトのビューは、次のようになります
しかし、あなたは言葉「列2」をクリックした場合、それは次のようになります。これがどのように行われるか
?
まず、我々はOCGsを作成します。
ArrayList<PdfLayer> options = new ArrayList<PdfLayer>();
PdfLayer radiogroup = PdfLayer.createTitle("Table", writer);
PdfLayer radio1 = new PdfLayer("column1", writer);
radio1.setOn(true);
options.add(radio1);
radiogroup.addChild(radio1);
PdfLayer radio2 = new PdfLayer("column2", writer);
radio2.setOn(false);
options.add(radio2);
radiogroup.addChild(radio2);
PdfLayer radio3 = new PdfLayer("column3", writer);
radio3.setOn(false);
options.add(radio3);
radiogroup.addChild(radio3);
writer.addOCGRadioGroup(options);
その後、我々はColumnText
を使用して、同じ場所で3つのテーブルを追加します。
PdfContentByte canvas = writer.getDirectContent();
ColumnText ct = new ColumnText(canvas);
for (int i = 1; i < 4; i++) {
canvas.beginLayer(options.get(i - 1));
ct.setSimpleColumn(new Rectangle(36, 36, 559, 806));
ct.addElement(createTable(i, options));
ct.go();
canvas.endLayer();
}
テーブルは次のように作成されます。
public PdfPTable createTable(int c, List<PdfLayer> options) {
PdfPTable table = new PdfPTable(3);
for (int j = 1; j < 4; j++) {
table.addCell(createCell(j, options));
}
for (int i = 1; i < 4; i++) {
for (int j = 1; j < 4; j++) {
table.addCell(createCell(i, j, c));
}
}
return table;
}
ヘッダー内の単語をクリック可能にする:
public PdfPCell createCell(int c, List<PdfLayer> options) {
Chunk chunk = new Chunk("Column " + c);
ArrayList<Object> list = new ArrayList<Object>();
list.add("ON");
list.add(options.get(c - 1));
PdfAction action = PdfAction.setOCGstate(list, true);
chunk.setAction(action);
return new PdfPCell(new Phrase(chunk));
}
このPOCでは、テーブルの相違点があなたの望むものと異なります。コンテンツを別々にソートする必要があります。この簡単な例では、別の背景色を導入しました:
public PdfPCell createCell(int i, int j, int c) {
PdfPCell cell = new PdfPCell();
cell.addElement(new Paragraph(String.format("row %s; column %s", i, j)));
if (j == c) {
cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
}
return cell;
}
関連する問題
- 1. ボタンクリックでコンテンツを表示/非表示にする方法は?
- 2. コンテンツの表示/非表示方法
- 3. jquery selectmenuプラグインでオプションを非表示にする方法
- 4. material-uiテーブルで列を非表示/表示する方法は?
- 5. UIView外でコンテンツを非表示にする方法
- 6. 非表示のオプションを非表示IE
- 7. 検索リストボックスのオプションを非表示にする方法は?
- 8. DRUPALのコンテンツを非表示にしてフロント.......を表示する方法は?
- 9. ホームページに投稿コンテンツを非表示にする方法(ワードプレス)
- 10. コンテンツの表示/非表示
- 11. 表示/非表示のコンテンツ
- 12. テーブルから列を非表示/表示する方法は?
- 13. 角2表示/非表示のコンテンツのテスト方法* ngIf
- 14. webviewコンテンツを非表示にする方法は?
- 15. フラグのオプションを非表示にする
- 16. C#でプロセスを非表示/非表示にする方法は?
- 17. コンテンツを非表示にして表示
- 18. アンドロイドでコンテンツをスクロールするときにツールバーを非表示にする方法
- 19. テーブルの非表示の列をクッキーに格納する方法
- 20. Divのコンテンツを表示するdivを非表示にする
- 21. ASP .NET onclickのテーブル行を非表示にする方法
- 22. ブートストラップデータテーブルの列を非表示/非表示にする方法は?
- 23. メインウィンドウのクロムエクステンションを非表示/非表示にする方法
- 24. キーアップフィルタ入力に作用するテーブルdivを非表示/表示する方法
- 25. コンテンツを非表示にする
- 26. Powerpointのテーブルからデータを表示/非表示にする方法は?
- 27. select_tagに「非表示の非表示」オプションを設定する方法はありますか?
- 28. テーブルに非表示の行を表示
- 29. cakephp - ラジオボタンとしてテーブルからオプションを表示する方法
- 30. Javery prev/next navigationカスタムカレンダーのコンテンツを表示/非表示にする