www.rolandk.de
- Aktuelle Themen zu .Net -
Achtung: Hier handelt es sich um meine alte Seite.
Die aktuelle ist unter folgendem Link erreichbar: www.rolandk.de/wp/
Home Blog Pdf Dateien mit C# erstellen




















































Pdf Dateien mit C# erstellen
Sonntag, den 19. Juni 2011 um 11:02 Uhr

Neulich habe ich mich gefragt, ob es einen einfachen und schnellen Weg gibt, direkt aus dem C#-Code heraus Pdf-Dateien zu erstellen. Nach kurzem Googlen bin ich auf einige OpenSource Projekte gestoßen, jedoch musste ich feststellen, dass einige davon seit längerem nicht mehr aktiv weiterentwickelt werden. So machte es zum Beispiel bei PdfSharp den Anschein. Am Ende bin ich auf die Bibliothek iTextSharp gestoßen, die an und für sich einen recht guten Eindruck macht.

 

Bei iTextSharp handelt es sich um eine Portierung der Java-Bibliothek iText und kann unter Anderem dafür verwendet werden, Pdf-Dateien zu erstellen. Dokumentationen bzw. HowTo's habe ich auf der Seite http://www.mikesdotnetting.com/ gefunden (nach iTextSharp suchen). Nach ein paar Versuchen ist bei mir folgendes Pdf herausgekommen:

 

 

Zugegeben, sieht nicht gerade berauschend aus. Zeigt aber in ein paar Schritten, wie man die iTextSharp Bibliothek anwenden kann. Nachfolgendes Coding erzeugt diese Pdf-Datei (stammt aus einem einfachen Consolenprogramm):

  1. string pathToFile = string.Empty;
  2.  
  3. //Create font for writing
  4. Console.WriteLine("Creating default font..");
  5. BaseFont bfTimes = BaseFont.CreateFont(
  6. BaseFont.TIMES_ROMAN,
  7. BaseFont.CP1252,
  8. false);
  9. Font times = new Font(bfTimes, 40f, Font.ITALIC, BaseColor.BLUE);
  10.  
  11. try
  12. {
  13. Console.WriteLine("Creating document object..");
  14. using (Document document = new Document())
  15. {
  16. //Get path to testing file
  17. Console.WriteLine("Opening file for writing..");
  18. pathToFile = Path.Combine(
  19. Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
  20. "testing.pdf");
  21.  
  22. //Start writing
  23. Console.WriteLine("Starting write process..");
  24. PdfWriter pdfWriter = PdfWriter.GetInstance(
  25. document,
  26. File.Open(pathToFile, FileMode.Create));
  27. document.Open();
  28.  
  29. //Write a dummy paragraph to the pdf
  30. Console.WriteLine("Writing dummy paragraph..");
  31. Paragraph paragraph = new Paragraph("Only a test", times);
  32. document.Add(paragraph);
  33.  
  34. //Finish writing
  35. document.Close();
  36. }
  37. Console.WriteLine("Write process successful!");
  38.  
  39. //Show pdf using an external program on enter key
  40. Console.ReadLine();
  41. if (!string.IsNullOrEmpty(pathToFile))
  42. {
  43. Process.Start(pathToFile);
  44. }
  45. }
  46. catch (Exception ex)
  47. {
  48. //Note some error message
  49. Console.WriteLine("[Error] Unable to create pdf: " + ex.Message);
  50. }

So macht diese Bibliothek schon einen recht guten Eindruck. Bin gespannt, wie sich komplexere Strukturen wie Tabellen usw. bauen lassen.

 

Kommentar hinzufügen

Ihr Name:
Kommentar: