我想在表中设置PdfpCell的宽度,我想设计一下

我写这段代码
PdfPCell cell;
PdfGrid tableHeader;
PdfGrid tmpTable;
PdfGrid table = new PdfGrid(numColumns: 1) { WidthPercentage = 100, RunDirection = PdfWriter.RUN_DIRECTION_LTR, ExtendLastRow = false };
string imagepath2 = HttpRuntime.AppDomainAppPath + "Header.JPG";
cell = new PdfPCell() { Border = 0, RunDirection = PdfWriter.RUN_DIRECTION_RTL };
cell.Image = iTextSharp.text.Image.GetInstance(imagepath2);
table.AddCell(cell);
tableHeader = new PdfGrid(numColumns: 10);
tableHeader.RunDirection = PdfWriter.RUN_DIRECTION_LTR;
tmpTable = new PdfGrid(numColumns: 1);
tmpTable.TotalWidth = 10f;
tmpTable.LockedWidth = true;
cell = new PdfPCell() {Rotation =-90,VerticalAlignment =Element.ALIGN_MIDDLE, HorizontalAlignment =Element.ALIGN_CENTER, BorderWidth = 1};
cell.Phrase = …Run Code Online (Sandbox Code Playgroud) 我有一个问题,我有一个表(PdfPTable)可能会超出页面的长度.我试过查找如何将一个表"拆分"到一个以上的页面,但iTextSharp在这方面的记录非常糟糕.有没有人知道如何做到这一点,而不是在页面上选择一个任意的Y位置并告诉它如果在那里分开?
我查看了SplitLate和SplitRows属性,但没有关于这些做什么的文档.编辑他们什么都不做.
谢谢!
编辑
我希望在宽度方向上将桌子切成两半,因为桌子总是适合页面的宽度.这就是说我希望垂直不适合的行延伸到它下面的下一页.
EDIT2
这是一些代码:
Public Sub BuildPrintableDocument
Dim doc As New Document(PageSize.LETTER, 0, 0, 0, BOTTOM_MARGIN)
Dim writer As PdfWriter = PdfWriter.GetInstance(doc, _
New FileStream("invoice.pdf", FileMode.Create)
Dim footer As New HeaderFooter(New Phrase("www.columbussupply.com", _
footerFont), False)
footer.Border = Rectangle.NO_BORDER
footer.Alignment = HeaderFooter.ALIGN_CENTER
doc.Footer = footer
doc.Open()
....
Dim items As PdfPTable = NewItemTable()
Dim count As Integer = 0
For Each oi As OrderItem In TheInvoice.Items
If oi.Status <> OrderItem.OrderItemStatus.Cancelled Then
Dim …Run Code Online (Sandbox Code Playgroud) 如何让iTextSharp在生成的PDF的每一页上重复PdfPTable的标题?
我下载了iTextSharp dll的最新版本.我生成了一个PdfPTable对象,我必须设置它的高度.尽管设置了PdfPTable的宽度,但我无法设置它的高度.一些作者建议使用'setFixedHeight'方法.但是最后一个版本的iTextSharp.dll没有'setFixedHeight'方法.它的版本是5.5.2.我该怎么做?
我有一张桌子
PdfPTable tblSummary = new PdfPTable(1);
Run Code Online (Sandbox Code Playgroud)
它确实有2个嵌套在其中的表.如何使tblSummary整个表格显示(行不得中断到另一个页面),或者如果整个表格不适合当前页面,则将其移动到另一个页面.
我曾尝试SplitLate和SplitRows
我的代码是这样的
PdfPTable tblSummary = new PdfPTable(1);
PdfPCell csummarycell = new PdfPCell();
PdfPTable tblSummaryFirst = new PdfPTable(3);
.
.
csummarycell.AddElement(tblSummaryFirst);
.
.
tblSummary.AddCell(csummarycell);
tblSummary.SplitLate = true;
tblSummary.SplitRows = false;
Run Code Online (Sandbox Code Playgroud)
像这样我向tblSummary添加了一个表,而得到的表高度总是小于pagesize的表,所以可以确定表的内容不会超过页面高度.
任何建议都会有所帮助.
我正在使用PdfPTable在pdf中创建一个表.我在表中有一行.在我的行中,最后一列的数据高度超过页面的剩余高度.所以行从下一页开始,而表头在上一页上,第一页的标题下方有一个大的空白区域.
任何人都可以建议我如何在多个页面上拆分行.
谢谢
我正在使用这些代码...我的表格贴在文档的左侧,因为我没有在文档中给出任何填充...
Document document = new Document(PageSize.A4, 0, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
但现在我想给我的桌子留下保证金和保证金......我用了
outerTable.SpacingBefore = 20f;
Run Code Online (Sandbox Code Playgroud)
它不起作用然后我试图给我的细胞留下填充它也没有工作..
outerCell.PaddingLeft = 20f;
Run Code Online (Sandbox Code Playgroud)
现在我的桌子贴在左侧......我会怎样移动它们?如果你在itextsharp中尝试移动表,请帮助...
请查看附加屏幕以供参考
我正在构建一个iTextSharp PdfPTable对象,稍后将传递给Document.Add()以填充为PDF文件.
我在试图弄清楚如何跳到下一页时会发疯.任何人都可以建议如何格式化表格并使文本从填充到DPF文档后的下一页开始?
提前致谢!
如果它们包含相同数量的列,我可以创建多个行:
table = new PdfPTable(3);
var firstRowCell1 = new PdfPCell( new Phrase ("Row 1 - Column 1"));
var firstRowCell2 = new PdfPCell( new Phrase ("Row 2 - Column 2"));
var firstRowCell3 = new PdfPCell( new Phrase ("Row 3 - Column 3"));
PdfPCell[] row1Cells = { firstRowCell1, firstLineRow2, firstRowCell3 };
var row1 = new PdfPRow(row1Cells);
table.Rows.Add(row1);
var nextRowCell1 = new PdfPCell( new Phrase ("Row 2 - Column 1"));
var nextRowCell2 = new PdfPCell( new Phrase ("Row 2 - Column 2"));
var …Run Code Online (Sandbox Code Playgroud) 我将Java与iText结合使用,以生成一些PDF。我需要将文本放在列中,因此我正在尝试使用PdfPTable。我用以下方法创建它:
myTable = new PdfPTable(n);
Run Code Online (Sandbox Code Playgroud)
n是列数。问题是PdfPTable逐行填充表,也就是说,您首先在第1行的第1列中指定单元格,然后在第1行的第2列中指定单元格,依此类推,但是我需要逐列进行操作,因为是如何将数据提供给我的。
我将使用http://stderr.org/doc/libitext-java-doc/www/tutorial/ch05.html中的Table(允许您指定位置),但是出现“无法解析为类型” ,而我的Eclipse找不到正确的导入。
编辑:如果我以前的解释令人困惑,我想要的是按以下顺序填写表格:
1 3 5
2 4 6
Run Code Online (Sandbox Code Playgroud)
代替这个:
1 2 3
4 5 6
Run Code Online (Sandbox Code Playgroud) pdfptable ×10
itextsharp ×8
c# ×4
itext ×2
pdf ×2
height ×1
java ×1
page-break ×1
repeat ×1
report ×1
row ×1
rows ×1
split ×1
tableheader ×1