मुझे एक समस्या है जहां मेरे पास एक टेबल (पीडीएफपीटेबल) है जो पृष्ठ की लंबाई से अधिक हो सकती है। मैंने एक टेबल को एक से अधिक पृष्ठों पर "विभाजित" करने का प्रयास करने की कोशिश की है, लेकिन iTextSharp इस क्षेत्र में बहुत खराब तरीके से प्रलेखित है। क्या किसी को पता है कि पृष्ठ पर मनमाने ढंग से वाई स्थिति चुनने के बिना इसे कैसे करना है और अगर यह वहां है तो इसे विभाजित करने के लिए कह रहा है?iTextSharp: स्प्लिटलेट/स्प्लिटरोज़?
मैंने SplitLate
और SplitRows
गुणों में देखा, लेकिन इन्हें क्या करने पर कोई दस्तावेज नहीं है। संपादित करें वे कुछ भी नहीं करते हैं।
धन्यवाद!
संपादित
मैं आधे में तालिका में कटौती करने के widthwise तालिका के रूप में हमेशा पृष्ठ की चौड़ाई फिट होगा देख रहा हूँ। यह कहना है कि मैं उन पंक्तियों को चाहता हूं जो इसके नीचे के अगले पृष्ठ तक विस्तारित करने के लिए लंबवत रूप से फिट न हों।
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 qty As New PdfPCell(New Phrase(oi.Quantity, mainFont))
qty.HorizontalAlignment = Element.ALIGN_CENTER
qty.Padding = ITEMS_PADDING
'...instantiate 3 other cells here (removed for repetitiveness)'
items.AddCell(qty)
items.AddCell(desc)
items.AddCell(price)
items.AddCell(total)
End If
Next
items.WriteSelectedRows(0, -1, LEFT_MARGIN, GetItemsStartY, _
writer.DirectContent)
End Sub
Protected Function NewItemTable() As PdfPTable
Dim items As PdfPTable = New PdfPTable(4)
Dim headers() As String = {"QTY", "DESCRIPTION", "PRICE", "TOTAL"}
For Each s As String In headers
Dim cell As New PdfPCell(New Phrase(s, mainFont))
cell.HorizontalAlignment = Element.ALIGN_CENTER
items.AddCell(cell)
Next
items.TotalWidth = ITEMS_TOTAL_WIDTH
items.SetWidths(New Single() {QTY_COL_WIDTH, DESC_COL_WIDTH, _
PRICE_COL_WIDTH, TOTALS_COL_WIDTH})
Return items
End Function
क्या इस प्रक्रिया में आपको कुछ विशेष स्थान रखना है? जैसा कि आप पंक्तियों को लिखने के बाद, पहले, कहां? – Jason
क्षमा करें जेसन, मैंने आपके प्रश्न को गलत समझा। मैंने अपने रिजॉन्स को संपादित किया जो मुझे आशा है कि मदद करता है। –
संपादन के लिए धन्यवाद ... हाँ, मैं उस ट्यूटोरियल 100x के माध्यम से रहा हूं और इसका कोई फायदा नहीं हुआ है। वह अध्याय सरल तालिकाओं का उपयोग करने के बारे में बात करता है, और मुझे पीडीएफपीटेबल का उपयोग करने की आवश्यकता है ताकि मैं इसे पूरी तरह से स्थापित कर सकूं। अभी टेबल जो मैंने अभी पेज के किनारे से सीधे चलाया है, जो बेकार है ....: \ – Jason