2

itextsharp を使用してサンプル プロジェクトを作成しました。フッターとテーブルについて言及したので、指定された数のループで行を生成します。テーブルが別のページに分割された場合、指定されたデータのない空白ページが 1 つあります。未定義のようです。

コードは次のとおりです。

PdfWriter.GetInstance(document, New FileStream(ConfigurationManager.AppSettings("PDFPath") & fileName, FileMode.Create))

Dim FooterFont As Font = FontFactory.GetFont(FontFactory.TIMES_ROMAN, 12, Font.BOLD)
Dim FooterTxt As Phrase = New Phrase(Format(Now, "MM/dd/yyyy") )
Dim footer As New HeaderFooter(FooterTxt, True)
footer.Border = iTextSharp.text.Rectangle.TOP_BORDER
document.Footer = footer

document.Open()

Dim tblbody As New iTextSharp.text.Table(2)
tblbody.SpaceInsideCell = 1
tblbody.WidthPercentage = 100
tblbody.Border = 0
for i as integer=0 to 150
Dim cell = New Cell(New Phrase(i, New Font(Font.TIMES_ROMAN, 12, "" & CellStyle & "", iTextSharp.text.Color.BLACK)))
cell.Colspan = Span
cell.Border = CellBorder
cell.HorizontalAlignment = CellAlign
cell.VerticalAlignment = iTextSharp.text.Rectangle.ALIGN_MIDDLE
tblbody.AddCell(cell)
next

document.NewPage()

for i as integer=0 to 150
Dim cell = New Cell(New Phrase(i, New Font(Font.TIMES_ROMAN, 12, "" & CellStyle & "", iTextSharp.text.Color.BLACK)))
cell.Colspan = Span
cell.Border = CellBorder
cell.HorizontalAlignment = CellAlign
cell.VerticalAlignment = iTextSharp.text.Rectangle.ALIGN_MIDDLE
tblbody.AddCell(cell)
next
document.close()
4

3 に答える 3

5

この設定をテーブルに設定します。

tblbody.SplitLate = false; tblbody.SplitRows = true;

于 2009-11-19T14:55:37.310 に答える
4

残念ながら、SplitLateとSPlitRowsはPdfPTableでのみ使用できます。

tblbody.TableFitsPageを設定できます。CellsFitPage=false;

私はこれを理解しようと多くの時間を費やしたので、他の人のために投稿しました。

于 2011-04-11T17:32:53.940 に答える
0

私も最近同じ問題に遭遇しました。空白のページがある理由は、1 つのセルが行をまたがりすぎており、そのセルを 1 つのページに入れることも、2 つのページに分割することもできない ( の場合CellsFitPage = true) 可能性があります。したがって、設定CellsFitPage = falseすることでその問題を解決できます。しかし、もし私たちが望むならCellsFitPage = true? 次に、多数の小さなセルを作成し、それらの境界線を 0 に設定する必要がある場合があります。これにより、それらが単一の長いセルのように見え、ページがそれらを分割できます (単一の長いセルを分割するのではなく、多くのセルを別のページに分割します)。

于 2014-08-05T09:15:11.900 に答える