У меня есть программа VB.NET, которая использует PDF Sharp для передачи информации в файл PDF. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу понять, как перейти на следующую страницу, если ypoint
(длина страницы) имеет определенное значение. Указывается ** перед if ** в конце if. Ниже приведен фрагмент моего PDF-отчета. Я думал, что я мог бы использовать, если то заявление, чтобы увеличить счетчик и добавить переменную в конце pdfpage ... напримерVB.Net, как обнаружить конец страницы и продолжить запись на следующей странице
pdfpage(ypointcounter)....
Это не работает. Вы увидите, что я попытался выделить верхнюю часть (мой заголовок), потому что я не хочу повторять это на следующей странице и не является частью моего цикла, чтобы выгрузить информацию из нескольких наборов данных. Я знаю, что могу вставить новую страницу, и я также знаю, как писать на вторую страницу. То, что я хотел бы сделать, - это настроить программу внутри цикла, чтобы автоматически создать следующую страницу и начать писать, если я нахожусь в конце страницы. Я предполагаю, что мне нужно настроить какой-то массив?
Любая помощь?
Мой код:
Try
yPoint = 0
Dim pdf As PdfDocument = New PdfDocument
pdf.Info.Title = "Last Hour Comparison"
Dim pdfPage As PdfPage = pdf.AddPage
Dim pdfPage1 As PdfPage = pdf.AddPage
Dim graph As XGraphics = XGraphics.FromPdfPage(pdfPage1)
Dim fontheader As XFont = New XFont("Arial", 12, XFontStyle.Bold) ' I used this as a header. Basically-
'Just made the font bigger and style is BOLD
Dim font As XFont = New XFont("Arial", 11, XFontStyle.Regular)
'This sets the Header----------------------------------------------------------------------------
graph.DrawString("Test Last Hour Comparison for week of " & Weekstart, fontheader, XBrushes.Black, _
New XRect(20, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft)
yPoint = yPoint + 40
'---------------------------------
'This is for building the Report ---------------------------------------------------------
'If ds.Tables(0).Rows.Count > 0 Then
graph.DrawString("Location", font, XBrushes.Black, _
New XRect(20, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft)
graph.DrawString("Date", font, XBrushes.Black, _
New XRect(120, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft)
graph.DrawString("# 6-7 Visits ", font, XBrushes.Black, _
New XRect(280, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft)
graph.DrawString("# 7-8 Visits ", font, XBrushes.Black, _
New XRect(340, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft)
graph.DrawString("% Change ", font, XBrushes.Black, _
New XRect(410, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft)
Dim x As Integer
x = 0
LocationCounter = 1
ypointcounter = 0
**For i = 0 To 3
GetLocation()
yPoint = yPoint + 20
If yPoint > 840 Then
yPoint = 20
ypointcounter = ypointcounter + 1
End If**
graph.DrawString(LocationName, font, XBrushes.Black, _
New XRect(20, yPoint, pdfPage(ypointcounter).Width.Point, pdfPage(ypointcounter).Height.Point), XStringFormats.TopLeft)
dtstartdate = Today.AddDays(-6)
firsthourweektotal = 0
secondhourweektotal = 0
For z = 0 To 6
firsthour = ds.Tables(0).Rows(x).Item(0)
secondhour = ds2.Tables(0).Rows(x).Item(0)
firsthourweektotal = firsthourweektotal + ds.Tables(0).Rows(x).Item(0)
secondhourweektotal = secondhourweektotal + ds2.Tables(0).Rows(x).Item(0)
If ds.Tables(0).Rows(x).Item(0) = 0 Then
Percentage = 0
Else
Percentage = Math.Round(ds2.Tables(0).Rows(x).Item(0)/ds.Tables(0).Rows(x).Item(0) * 100, 2)
End If
graph.DrawString(dtstartdate.DayOfWeek.ToString & ", " & dtstartdate.Month & "/" & dtstartdate.Day, font, XBrushes.Black, _
New XRect(110, yPoint, pdfPage(ypointcounter).Width.Point, pdfPage(ypointcounter).Height.Point), XStringFormats.TopLeft)
graph.DrawString(firsthour, font, XBrushes.Black, _
New XRect(288, yPoint, pdfPage(ypointcounter).Width.Point, pdfPage(ypointcounter).Height.Point), XStringFormats.TopLeft)
graph.DrawString(secondhour, font, XBrushes.Black, _
New XRect(352, yPoint, pdfPage(ypointcounter).Width.Point, pdfPage(ypointcounter).Height.Point), XStringFormats.TopLeft)
graph.DrawString(Percentage, font, XBrushes.Black, _
New XRect(418, yPoint, pdfPage(ypointcounter).Width.Point, pdfPage(ypointcounter).Height.Point), XStringFormats.TopLeft)
dtstartdate = dtstartdate.AddDays(1)
yPoint = yPoint + 20
x = x + 1
Next
Будете ли вы награждать бу nty для этого? – Plutonix