Ich bin neu bei iTextSharp.
Wie kann ich einen Datensatz pro Seite drucken?
Kann mir jemand einen Beispielcode zur Verfügung stellen, der mir zeigt, wie ich mein Ziel erreichen kann?So drucken Sie einen Datensatz pro Seite mit einem Header für jede Seite in PDF-Dokument mit iTextSharp in C#
Antwort
diese Lösung Versuchen:
using (var output = new MemoryStream())
{
using (var document = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 40, 40, 30, 90))
{
using (var writer = PdfWriter.GetInstance(document, output))
{
Phrase phrase = null;
PdfPCell cell = null;
PdfPTable table = null;
try
{
document.Open();
document.PageCount = 1;
writer.PageEvent = new Footer(data);
foreach (var item in data)
{
table = new PdfPTable(1);
table.SpacingBefore = 20;
table.WidthPercentage = PageSize.A4.Width;
float[] ProfessionalServices = new float[1];
ProfessionalServices[0] = (float)(1 * PageSize.A4.Width);
table.SetWidthPercentage(ProfessionalServices, PageSize.A4);
phrase = new Phrase("Record :" + item);
cell = new PdfPCell(phrase);
cell.Border = 0;
cell.Padding = 2;
cell.Colspan = 3;
cell.HorizontalAlignment = Element.ALIGN_RIGHT;
table.AddCell(cell);
table.WriteSelectedRows(0, -1, document.Left, document.Top - (100 + 20), writer.DirectContent);
document.Add(table);
document.ResetPageCount();
document.NewPage();
}
document.Close();
}
catch (Exception ex)
{
}
if (!Directory.Exists(current.Server.MapPath("~/bill-pdf/")))
Directory.CreateDirectory(current.Server.MapPath("~/bill-pdf/"));
string pdfFilePath = current.Server.MapPath("~/bill-pdf/" + guid + ".pdf");
File.WriteAllBytes(pdfFilePath, output.ToArray());
if (File.Exists(filePath))
File.Delete(filePath);
}
}
}
Footer Code Methode:
#region Footer Class
public partial class Footer : PdfPageEventHelper
{
#region Constructor
public Footer()
{
}
#endregion
#region OnStartPage
public override void OnStartPage(PdfWriter writer, Document document)
{
if (document.PageNumber > 1)
{
string footerMessage = "Page " + document.PageNumber;
Paragraph footer = new Paragraph(footerMessage, FontFactory.GetFont(FontFactory.HELVETICA, 9));
footer.Alignment = Element.ALIGN_RIGHT;
PdfPTable footerTbl = new PdfPTable(numColumns: 1);
footerTbl.WidthPercentage = 100;
footerTbl.TotalWidth = PageSize.A4.Width;
PdfPCell cell = new PdfPCell(new Phrase(footer));
cell.Border = 0;
cell.HorizontalAlignment = Element.ALIGN_RIGHT;
footerTbl.AddCell(cell);
footerTbl.WriteSelectedRows(0, -1, document.RightMargin - 80, document.Top + 30, writer.DirectContent);
}
}
#endregion
#region OnEndPage
public override void OnEndPage(PdfWriter writer, Document doc)
{
string footerMessage = "Footer Text";
Paragraph footer = new Paragraph(footerMessage, FontFactory.GetFont(FontFactory.HELVETICA, 9));
footer.Alignment = Element.ALIGN_CENTER;
PdfPTable footerTbl = new PdfPTable(numColumns: 1);
footerTbl.TotalWidth = PageSize.A4.Width;
PdfPCell cell = new PdfPCell(new Phrase(footer));
cell.Border = 0;
cell.HorizontalAlignment = Element.ALIGN_CENTER;
footerTbl.AddCell(cell);
//footerTbl.WriteSelectedRows(0, 10, 50, 55, writer.DirectContent);
footerTbl.WriteSelectedRows(0, -1, 0, 55, writer.DirectContent);
}
#endregion
}
#endregion
Try-Code können Sie Header gesetzt und eigene Inhalte für Header Fußzeile OnStartPage()
ändern und Fußzeile ändern OnEndPage()
@Bruno Lowagie Ja, ich weiß nicht, warum Leute sofort –
sofort downvoted ja, Sie haben Recht. –
Vielleicht, weil es eine reine Codeantwort ist? Es gibt einige Themen in Meta über reine Code-Antworten, also ist es anscheinend eine Sache über SO. –
- 1. So drucken Sie eine Rasteransicht mit iTextSharp
- 2. Itextsharp pdfwriter Kopie Seite
- 3. html-Seite mit Header-Fußzeile Inhalt drucken
- 4. Crystal Reports Basic - Datentabelle zeigt einen Datensatz pro Seite an
- 5. Setzen Sie den Standard-Header für jede Seite von CSS?
- 6. Drehen Sie einzelne Seite mit itextsharp - MVC C#
- 7. Drucken Sie etwas jede nte Seite
- 8. C# - itextSharp Zwischensumme auf jeder Seite
- 9. So modellieren Sie mehrere Abschnitte pro Seite
- 10. Seite durch Datensatz ohne neuen Datensatz in MVC C#
- 11. So laden Sie einen Controller standardmäßig für jede Seite laden für eine einzelne Seite app
- 12. Verschiedene Header-Bild für jede Seite in Wordpress
- 13. Wie mache ich eine Multi-Sheet-Seite in iTextSharp?
- 14. Seite in Chromtabellenausgaben drucken
- 15. So erstellen Sie einen Kreis mit zentriertem Text in ItextSharp
- 16. Wie Sie JSON URL Seite für Seite mit C#
- 17. Wie werden Tabellendaten gedruckt, um jede Zeile pro Seite anzuzeigen?
- 18. HTML zu A4-Seite zum Drucken, 8 Zeilen pro Seite
- 19. So wiederholen Sie den Crystal Report-Header auf jeder Seite
- 20. So legen Sie die Hintergrundfarbe für jede Seite fest tcpdf
- 21. So erhalten Sie aktive Nutzer pro Seite in Google Analytics
- 22. PHP-Header - Hinzufügen verschiedener Metatags pro Seite
- 23. Android ListView mit einem Element pro Seite
- 24. Drucken Sie zwei Arrays Seite an Seite mit numpy
- 25. So löschen Sie einen Datensatz in der Datenbank mit C#
- 26. So drucken Sie 3 verschiedene Werte pro Zeile in C++
- 27. ViewPagerIndicator mit verschiedenen Menüs für jede Seite?
- 28. Wie setze ich Header für jede Seite mit Komponente in Angular 1.5
- 29. Drucken Sie eine Seite in Textdatei mit Python
- 30. Drucken Sie eine Seite mit xslt
Wenn Sie sind neu bei iText, warum haben Sie sich für iTextSharp entschieden (dies ist der alte Name für die C# -Version von iText 5). Vielleicht wissen Sie nicht, dass iTextSharp für * iText 7 * Ende des Lebens * deklariert wurde. Ab iText 7 sprechen wir nicht mehr über iTextSharp; Stattdessen sprechen wir über iText 7 für .NET. Wenn Sie ein neues Projekt starten und immer noch alles über iText wissen, warum würden Sie iText 5 immer noch verwenden, wenn Sie mit iText 7 viel zukunftssicherer arbeiten? –
Willkommen bei StackOverflow. Obwohl die Leute hier im Allgemeinen anderen Entwicklern helfen wollen, ist dies kein Outsourcing-Unternehmen. Bitte senden Sie uns ein Code-Sample von dem, was Sie bereits ausprobiert haben. –