AspPDF
Om AspPDF
AspPDF er et ActiveX serverkomponent til generering, åbning og ændring af dokumenttypen PDF (Portable Document Format). AspPDF gør det f.eks. muligt at skræddersy .pdf filer og fremsende dem til slutbrugeren, blot ved at de henvender sig via en formular på din hjemmeside.
Generering af en PDF
Følgende eksempel genererer en PDF ud fra funktionen
DrawText(Text, param, Font)
Teksten bliver placeret ud fra X og Y parametrene, der er defineret i
variablen param. Alle andre parametre man ønsker tilføjet teksten, angives
også heri, eksemplevis Rendering, alignment osv.
<%
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.CreateDocument
Set page = Doc.Pages.Add( 216, 216 )
Text = Request("largetext")
Set Font = Doc.Fonts("Times-Roman")
Set param = pdf.CreateParam("x=10;y=206;height=196;width=196; size=30;")
Do While Len(Text) > 0
CharsPrinted = Page.Canvas.DrawText(Text, param, Font)
if CharsPrinted = Len(Text) Then Exit Do
Set Page = Page.NextPage
Text = Right( Text, Len(Text) - CharsPrinted)
Loop
Filename = Doc.Save( Server.MapPath("text.pdf"), False )
%>
Skrive til en eksisterende PDF
Dette eksempel tager udgangspunkt i en allerede eksisterende .pdf fil.
Filens placering er angivet via Pdf.OpenDocument("")
Dette kan eksempelvis bruges til .pdf filer, hvor man har en masse grafisk
layout som er lavet på forhånd og hvor der blot er brug for at indsætte felter
fra eksempelvis en formular eller en database.
<%
Text = "Test af AspPDF"
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.OpenDocument( Server.MapPath("test.pdf"))
If Doc Is Nothing Then Response.Write "This PDF is password-protected."
Set Canvas = Doc.Pages(1).Canvas
Set Param = Pdf.CreateParam("x=100;y=800;height=100;width=200; size=30;")
Set Font = Doc.Fonts("Helvetica-Bold")
CharsPrinted = Canvas.DrawText( Text, Param, Font)
Filename = Doc.Save( Server.MapPath("output.pdf"), False )
%>
Fonte
Med AspPDF, har man mulighed for at bruge alle fonte, det er ikke begrænset af de fonte der ligger på serveren, dog skal man sikre sig at fonten man anvender ikke er under en licensbeskyttelse. Hvis man vil sikre sig dette, kan man anvende følgende tjek i sin kode. Bemærk, anvendelse af fonte uden nedenstående tjek er muligt, dog på eget ansvar.
<%
Set Font = Doc.Fonts.LoadFromFile("d:\home\dit-ftpbrugernavn\db\somefont.ttf")
If Font.Embedding = 2 Then
Response.Write "Embedding of this font is prohibited."
Set Font = Nothing
End If
%>
Indsæt et billede i en ny PDF
AspPDF understøtter BMP, GIF og JPEG.
Nedenstående kode viser hvordan du kan indsætte et billede i en
PDF du genererer. Defineringen af ScaleX og ScaleY er valgfri, det
giver blot mulighed for at skalere det billede du indsætter.
I nedenstående eksempel halveres størrelsen på billedet.
Ved Placering af billeder, tager AspPDF udgangspunkt i billedets
højre hjørne i bunden.
<%
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.CreateDocument
Set Page = Doc.Pages.Add
Set Image = Doc.OpenImage( Server.MapPath( "image.jpg") )
Set Param = Pdf.CreateParam
Param("x") = "100"
Param("y") = "500"
Param("ScaleX") = 1 / 2
Param("ScaleY") = 1 / 2
Page.Canvas.DrawImage Image, Param
Filename = Doc.Save( Server.MapPath("image.pdf"), False )
%>
Indsæt et billede i en eksisterende PDF
Samme eksempel som ovenstående, blot udført med en eksisterende PDF fil.
<%
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.OpenDocument( Server.MapPath("test.pdf"))
If Doc Is Nothing Then Response.Write "This PDF is password-protected."
Set Canvas = Doc.Pages(1).Canvas
Set Image = Doc.OpenImage( Server.MapPath( "image.jpg") )
Set Param = Pdf.CreateParam
Param("x") = "100"
Param("y") = "500"
Param("ScaleX") = 1 / 2
Param("ScaleY") = 1 / 2
Canvas.DrawImage Image, Param
Filename = Doc.Save( Server.MapPath("output.pdf"), False )
%>
