iText的PDF版本7的問題,我使用的iText PDF生成包含應當設置如下表PDF文件:與C#
------------------------------------------------
| HEADER |
------------------------------------------------
| some data goes here | more data here |
------------------------------------------------
| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 |
------------------------------------------------
| 1 | SDF wer qwerwq | weqr | WERQW |
------------------------------------------------
| | | | |
| | | | |
| | | | |
| | | | |
------------------------------------------------
| footer information |
------------------------------------------------
但是表被繪製如下:
我試過下面的例子,但它們都是用Java編寫的,而C#的對象模型看起來略有不同。其具有爲1的「西1」值的行下面各行跨列2,3分裂,和4
注意要點:
- 對於頭單元格我設置的水平取向通過調用cell.SetHorizontalAlignment(HorizontalAlignment.CENTER)
- 我需要設置的一些文字的顏色爲紅色
- 我使用table.AddCell方法增加該小區
- 我設置的邊界(根據文檔,這是默認的單元格)Bord er.NO_BORDER。
- 這是用C#編寫
- 我已經下載了最新版本的iText的(7.0.1版本)
- 我創建了一個自定義的CellRender但似乎沒有任何效果的web應用程序。
- 最初我使用的是iText 5,但我需要更好地控制表格的渲染,因爲我需要知道頁面到底有多遠。
這是我用來創建單元代碼:
PdfFont cellFont = font; if ((fontStyle & FONT_STYLE_BOLD) == FONT_STYLE_BOLD && (fontStyle & FONT_STYLE_ITALIC) == FONT_STYLE_ITALIC) { cellFont = fontBoldItalic; } else if ((fontStyle & FONT_STYLE_BOLD) == FONT_STYLE_BOLD) { cellFont = fontBold; } else if ((fontStyle & FONT_STYLE_ITALIC) == FONT_STYLE_ITALIC) { cellFont = fontItalic; } Color fontColor = Color.BLACK; if ((fontStyle & FONT_STYLE_RED) == FONT_STYLE_RED) { fontColor = Color.RED; } Text text = new Text(content); text.SetFont(cellFont); text.SetFontColor(fontColor); text.SetFontSize(fontSize); if ((fontStyle & FONT_STYLE_UNDERLINE) == FONT_STYLE_UNDERLINE) { text.SetUnderline(); } Cell cell = new Cell(rowspan, colspan); cell.Add(new Paragraph(text)); //cell.SetNextRenderer(new CellBorders(cell, borders)); return cell;
這是怎樣的表創建和表添加到該文件在Web方法的末尾:
Table table = new Table(6);
table.SetWidthPercent(100);
table.SetPadding(3);
table.SetSpacingRatio(1);
table.SetBorder(Border.NO_BORDER);
對於頭單元格,有你嘗試設置文本或段落'TextAlignment的水平對齊。 CENTER'('SetHorizontalAlignment'方法)? –
至於邊框,您可以在單元格本身指定邊框屬性。 ('小區#SetBorder/SetBorderLeft/...')。 –
在第一個註釋中出現小錯誤,使用的方法是SetTextAlignment()' –