In het forum zag ik een oude post staan met daarop de vraag 'Hoe een pdf te maken op mijn webpagina'. Er was geen antwoord op gegeven en het onderwerp is reeds gesloten. Hierdoor wil ik graag via deze weg wijzen op de open source tool PDFsharp , waarmee je kan pdf documenten opmaken, aanpassen en samenvoegen in C#.
Om te starten moeten we eerst de nodige files downloaden van Sourceforge :
http://sourceforge.net/project/showfiles.php?group_id=150343
In VS maken we een nieuwe website aan. De pagina zal bestaan uit een eenvoudige textbox met een button. De ingevoerde tekst wordt ingevoegd in een pdf document bij een klik op de knop. Het nieuw aangemaakte document wordt ge-opend in de browser.
Vooraleer we kunnen gebruik maken van PDFsharp moeten we eerst de nodige dll toevoegen aan ons project:
- In uw solution explorer rechtsklik op uw website en Add reference..
- Blader nu naar de map waarin u alles hebt unzipt.
- Daarin ga je naar de bin en klik je op PdfSharp.dll
In de onderstaande code heb ik de uitleg in commentaar erbij gevoegd.
Meer voorbeelden vindt u op http://www.pdfsharp.com/PDFsharp/index.php?option=com_content&task=view&id=24&Itemid=35 Uitleg:
DE WEBPAGINA
==========
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Uw Tekst: "></asp:Label>
<asp:TextBox
ID="txtMijnTekst" runat="server"></asp:TextBox>
<asp:Button ID="btnMaakPdf" runat="server" Text="Button"
onclick="btnMaakPdf_Click" />
</div>
</form>
</body>
</html>
DE CODE BEHIND FILE
===============
using System;
using System.Collections.Generic;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
public partial class _Default : System.Web.UI.Page
{
// hier maken we het nieuwe document aan
private PdfDocument _doc = new PdfDocument();
//We maken een font aan om te gebruiken in de pdf
private XFont _font = new XFont("Verdana", 24, XFontStyle.Bold);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnMaakPdf_Click(object sender, EventArgs e) {
string textToDraw = txtMijnTekst.Text;
//Bij het klikken op de knop maken we een pdf pagina aan
PdfPage myPage = _doc.AddPage();
//we hebben een XGraphics object nodig om op de pagina te kunnen schrijven (en tekenen)
XGraphics myXGraph = XGraphics.FromPdfPage(myPage);
//We schrijven de tekst van textBox naar de pagina
myXGraph.DrawString(textToDraw, _font, XBrushes.Green, new XRect(0, 0, myPage.Width, myPage.Height), XStringFormats.Center);
//Send de pdf naar uw browser om te openen
MemoryStream stream = new MemoryStream();
_doc.Save(stream, false);
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", stream.Length.ToString());
Response.BinaryWrite(stream.ToArray());
Response.Flush();
stream.Close();
Response.End();
}
}
|