2016-09-06 2 views
0

Ich verwende iTextSharp, um ein PDF-Dokument zu generieren. Ich konnte eine Tabelle erstellen und hinzufügen. Jetzt möchte ich etwas normalen Text zur PDF hinzufügen. Wie mache ich das? Ich sah online und schlugen sie vor, Stücke verwenden, aber es funktioniert nicht:Hinzufügen von Text zu einer PDF-Datei

Chunk c1 = new Chunk("A chunk represents an isolated string. "); 

Dies ist, wie ich die Tabelle wurde hinzugefügt:

private byte[] CreatePDFFile(StudentJournalAdd studentjournal, SearchResult<JournalAttendanceStatus> StatusList, string studentName) 
{ 
    var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 12); 
    var boldFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12); 
    string Details = string.Empty; 
    int icount = 0; 
    bool bflag = false; 

    PdfPTable table = new PdfPTable(3); 
    table.TotalWidth = 550f; 
    table.LockedWidth = true; 
    float[] widths = new float[] { 10f, 20f, 10f }; 
    table.SetWidths(widths); 
    table.HorizontalAlignment = 1; 

    table.SpacingBefore = 20f; 
    table.SpacingAfter = 30f; 
    table.DefaultCell.PaddingTop = 2f; 
    table.DefaultCell.PaddingBottom = 2f; 

    //PdfPCell cellHeading = new PdfPCell(new Phrase("AdminNo - " + studentjournal.StudentJournaldtls.AdminNo + " (WeekNo) - " + studentjournal.StudentJournaldtls.WeekNo + "\n\n", boldFont)); 
    PdfPCell cellHeading = new PdfPCell(new Phrase("Temasek Polytechnic - Student Internship Programme Journal\n\n " + studentName + " (" + studentjournal.StudentJournaldtls.AdminNo + ")\n\n Week No: " + studentjournal.StudentJournaldtls.WeekNo + "\n\n" + "DAILY/WEEKLY SUMMARY OF TASKS" + "\n\n", boldFont)); 

    cellHeading.Colspan = 3; 
    cellHeading.Rowspan = 2; 
    cellHeading.Border = 0; 
    cellHeading.HorizontalAlignment = 1; 
    cellHeading.VerticalAlignment = Element.ALIGN_MIDDLE; 
    table.AddCell(cellHeading); 

    PdfPCell cell0 = new PdfPCell(new Phrase("Day", boldFont)); 
    cell0.PaddingBottom = 10f; 
    cell0.VerticalAlignment = Element.ALIGN_CENTER; 
    cell0.HorizontalAlignment = Element.ALIGN_CENTER; 
    table.AddCell(cell0); 

    PdfPCell cell1 = new PdfPCell(new Phrase("Task Assigned", boldFont)); 
    cell1.PaddingBottom = 10f; 
    cell1.VerticalAlignment = Element.ALIGN_CENTER; 
    cell1.HorizontalAlignment = Element.ALIGN_CENTER; 
    table.AddCell(cell1); 

    PdfPCell cell2 = new PdfPCell(new Phrase("Attendance", boldFont)); 
    cell2.PaddingBottom = 10f; 
    cell2.VerticalAlignment = Element.ALIGN_CENTER; 
    cell2.HorizontalAlignment = Element.ALIGN_CENTER; 
    table.AddCell(cell2); 
} 

Antwort

1

Sie alle Beispiele aus iText in Aktion finden können - Second Editionhere on the itextpdf site.

Zuerst sehen Sie die Java/iText-Versionen der Beispiele, aber am Ende der jeweiligen Seite finden Sie auch Links zu C#/iTextSharp-Versionen.

Zum Beispiel auf der Seite des chapter 1 examples Sie einen Link zu dieser einfachen Hallo Welt Programm welche finden fügt einige normalen Text in die PDF:

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.Linq; 
using iTextSharp.text; 
using iTextSharp.text.pdf; 

namespace kuujinbo.iTextInAction2Ed.Chapter01 { 
    public class HelloWorld : IWriter { 
// =========================================================================== 
    public void Write(Stream stream) { 
     // step 1 
     using (Document document = new Document()) { 
     // step 2 
     PdfWriter.GetInstance(document, stream); 
     // step 3 
     document.Open(); 
     // step 4 
     document.Add(new Paragraph("Hello World!")); 
     }   
    } 
// =========================================================================== 
    } 
} 

(HelloWorld.cs)


kurz gesagt, daher

Jetzt möchte ich einen normalen Text zum PDF hinzufügen. Wie mache ich das?

Sie erstellen einfach einen Paragraph und fügen ihn zu Ihrer Document Instanz hinzu.


Das gesagt, wie Sie sowieso iText neu sind, warum Sie nicht starten Sie den aktuellen iText 7 für .NET?

+0

Wir haben fast gleichzeitig geantwortet ;-) –

+0

;) Ja. Antworten am frühen Morgen ... – mkl

2

PdfPTable und Chunk sind nur zwei Elemente, die zu einem Document in iTextSharp hinzugefügt werden können. Bitte werfen Sie einen Blick auf the official web site. Wenn Sie beispielsweise nach den Beispielen des Buches "iText in Action - Second Edition" suchen, finden Sie a couple of hundreds of examples. Am Ende jeder Beispielseite finden Sie Links zur C# -Version jedes Beispiels. Zum Beispiel:

// step 1 
using (Document document = new Document()) { 
    // step 2 
    PdfWriter.GetInstance(document, stream); 
    // step 3 
    document.Open(); 
    // step 4 
    document.Add(new Paragraph("Hello World!")); 
} 

In diesem einfachen Hallo Welt Beispiel fügen wir ein Paragraph. Das beantwortet bereits Ihre Frage: "Wie füge ich normalen Text zu einem PDF hinzu?"

In chapter 2, werden Sie andere Elemente entdecken wie Anchor, List (und ListItem), und so weiter.

Es scheint jedoch, dass Sie bei der Verwendung von iText neu sind. Warum fangen Sie dann nicht mit der neuesten iText-Version an? Wir haben iText von Grund auf neu geschrieben und wir stellen eine komplett neue API vor.

Eine ausführlichere Übersicht über die neuen Klassen finden Sie im Tutorial iText 7: Building Blocks.

Verwandte Themen