PDF aus Vorlage und Eingabe Felder generieren

ric

Angesehenes Mitglied
tagchen zusammen

kann mir jemand ein tipp geben, wie ihr das folgende problem lösen würdet.

ich muss ein druckfähiges PDF erzeugen.

ich habe eine vorlage mit vektoriserten feldern und logo.
nun soll der user über eingabe felder das form ausfüllen,
nach dem senden soll daraus ein neues pdf gedruckt werden.
(aus vorlage und den ausgefüllten felder)

dieses wird anschliessend versendet... bla bla bla (das ist nicht mehr wichtig)
meine Frage, habt Ihr Tipps, jemand schonmal sowas gemacht ?

bin dankbar für jeden vernünftigen tipp ;-)
ric
 
Ich hab das mal gemacht, und zwar hab ich dazu ein PDF-Control benutzt, das es in verschiedenen Versionen gibt. Für meine Anforderungen hat die Freeware-Version gereicht. Allerdings war das mit Dotnet. Falls es Dich dennoch interessiert, such ich mal das Control raus (hab den Entwicklungs-PC grad nicht am laufen) und geb Dir die Details durch.

Griessli
Irene
 
ja gerne... schau mir alles mal an, am schluss gugen was mer machen .

danke schon im voraus für die bemühungen.

gruus ric
 
Also, ich hab den "DynamicPDF Generator for .NET" von cete Software, zu finden unter http://www.cete.com/Products/GeneratorForNET . Die Community Edition ist gratis, hat aber eingeschränkte Features. Und so sieht mein Code aus (gekürzt, ist so nicht konsistent):

CODE Try

‘ diverse Berechnungen basierend auf den Eingaben
...

Dim ctl As Control
For Each ctl In Me.Controls
ctl.Visible = False
Next

‘Daten aus DB holen
...

Dim dr As DataRow = ds.Tables("Daten").Rows(0)

If Not dr Is Nothing Then

Dim oDoc As Document = New Document()
Dim oPage As ceTe.DynamicPDF.Page = New ceTe.DynamicPDF.Page(PageSize.A4, PageOrientation.Landscape, 42)
oPage.Dimensions.BottomMargin = 29

''seitenränder sichtbar machen
'Dim oRect As New PageElements.Rectangle(0, 0, oPage.Dimensions.Body.Width, oPage.Dimensions.Body.Height)
'oRect.BorderColor = Color.Blue
'oRect.BorderStyle = LineStyle.Solid
'oRect.BorderWidth = 1
'oRect.Apply = Apply.Stroke
'oPage.Elements.Add(oRect)

‘Layout
Dim iWidthPage As Integer = CInt(oPage.Dimensions.Body.Width)
Dim iHeightPage As Integer = CInt(oPage.Dimensions.Body.Height)
Dim iLeftCaptions As Integer = 0
Dim iLeftDaten As Integer = 190
Dim iTopTitel As Integer = 0
Dim iTopDaten As Integer = 70
...

Dim lbl As ceTe.DynamicPDF.PageElements.Label

lbl = New Label(DBtoString(dr("Data1")), iLeftCaptions, iTopTitel, iWidthCaptions, iHeightTitel, fFont, iSizeCaption, TextAlign.Right)
lbl.VAlign = VAlign.Center
oPage.Elements.Add(lbl)

lbl = New Label(Me.GetLabel("Data2"), iLeftCaptions, iTopDaten, iWidthCaptions, iHeightNormal, fFont, iSizeCaption, TextAlign.Right)
lbl.VAlign = VAlign.Center
oPage.Elements.Add(lbl)

lbl = New Label(Me.GetLabel("Data3"), iLeftCaptions, iTopOpt, iWidthCaptions, iHeightNormal, fFont, iSizeCaption, TextAlign.Right)
lbl.VAlign = VAlign.Center
oPage.Elements.Add(lbl)
...

lbl = New Label("URL", 500, iHeightPage - 20, iWidthPage - 500, 20, fFont, 12)
lbl.Align = TextAlign.Right
lbl.VAlign = VAlign.Bottom
lbl.TextColor = New RGBColor(0, 51, 153)
oPage.Elements.Add(lbl)

Dim ln As New Line(0, iTopDaten - 10, iWidthPage, iTopDaten - 10, 1, Color.Black, LineStyle.Solid)
oPage.Elements.Add(ln)
ln = New Line(0, iTopOpt - 10, iWidthPage, iTopOpt - 10, 1, Color.Black, LineStyle.Solid)
oPage.Elements.Add(ln)

‘für Debug : Rahmen um alle Elemente
Dim oEl As PageElement
Dim oL As Label
Dim oTA As TextArea
Dim oGrp As New Group()
For Each oEl In oPage.Elements
If (TypeOf oEl Is Label) Then
oL = CType(oEl, Label)
oGrp.Add(New Rectangle(oL.X, oL.Y, oL.Width, oL.Height, Color.Orange, 1, LineStyle.Solid))
ElseIf (TypeOf oEl Is TextArea) Then
oTA = CType(oEl, TextArea)
oGrp.Add(New Rectangle(oTA.X, oTA.Y, oTA.Width, oTA.Height, Color.Red, 1, LineStyle.Solid))
End If
Next
'oPage.Elements.Add(oGrp)
'oPage.Elements.Add(New LayoutGrid())

oDoc.Pages.Add(oPage)
oDoc.Draw(Me) 'normal
'odoc.Draw(Me, "helloworld.pdf", True) 'ohne browserfenster, nur acrobat

End If ' no data

Catch ex As Exception
Trace.Warn(ex.ToString)
End Try


Griessli
Irene
 
Hi,

Wenn du mit PHP arbeiten möchtest, solltest du auch die CPDF und die PDFlib in Betracht ziehen. CPDF hat zwar mehr Features als die PDFlib, aber so viel ich weiss handelt es sich dabei um ein kommerzielles Projekt, das nur für den privaten Gebrauch kostenlos benützt werden darf...


Greats,

Stefan B.
 
Zurück
Oben