PDF Lib

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

Farbfinsternis

Betreff: PDF Lib

BeitragMi, Mai 17, 2006 10:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit diesem Module kann man sehr einfach PDF Dokumente generieren. Bitte beachtet dass das Module noch nicht in Gänze getestet wurde und führt Euch auch die Licence der PDFLib.dll zu Gemüte.

Download PDFLib (ca. 1.6MB) mit Dokumentation und Testprogramm

Vertex

BeitragMo, Jul 03, 2006 9:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier sei euch mal Gedankt, weil ich das jetzt brauche! Ich werde mich vllt. auch mal ransetzen, und das Ganze ohne DLL versuchen.

PDF hat leider ein ziemlich komisches Koordinatensystem. Aber man kann es übrigens mit PDF_scale(Page, 28.3465, 28.3465) auf Zentimeter umstellen.

mfg olli
vertex.dreamfall.at | GitHub

TheShadow

Moderator

BeitragMo, Jul 03, 2006 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
NEWS: Cairo 1.02 hat ab nun PDF support...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Vertex

BeitragMi, Jul 05, 2006 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, so ohne DLL wirds anscheinend garnichts Razz

Naja, ich brauche mal eure Hilfe...

Ich will eine A4 Seite erstellen mit 1" = 2.54 cm Seitenrand und in den Innenbereich eine Linie von oben links nach unten rechts ziehen.

Code: [AUSKLAPPEN]
+--------------------+
|####################|
|##+--------------+##|
|##|\             |##|
|##| \            |##|
|##|  \           |##|
|##|   \          |##|
|##|    \         |##|
|##|     \        |##|
|##|      \       |##|
|##|       \      |##|
|##|        \     |##|
|##|         \    |##|
|##|          \   |##|
|##|           \  |##|
|##|            \ |##|
|##|             \|##|
|##+--------------+##|
|####################|
+--------------------+

# Seitenrand


Code: [AUSKLAPPEN]
SuperStrict

Framework PUB.PDFLib
Import BRL.StandardIO

Const OUTPUT    : String = "fmmeta.pdf"
Const A4_WIDTH  : Float  = 595.0
Const A4_HEIGHT : Float  = 842.0
Const MARGIN    : Float  = 72.0 ' 1" or 2.54mm

Global PDF  : Int
Global Font : Int

PDF = PDF_new()
If(PDF_open_file(PDF, OUTPUT) = -1) Then
   Print("Error open file")
   End
EndIf

PDF_set_info(PDF, "Title",   "Forbidden Magic Meta Client Documentation")
PDF_set_info(PDF, "Creator", "fmmeta docer")
PDF_set_info(PDF, "Author",  "Oliver Skawronek")
PDF_set_value(PDF, "compress", 9)

PDF_begin_page(PDF, A4_WIDTH, A4_HEIGHT)

PDF_set_value(PDF, "CropBox/llx", MARGIN)
PDF_set_value(PDF, "CropBox/lly", MARGIN)
PDF_set_value(PDF, "CropBox/urx", A4_WIDTH - MARGIN)
PDF_set_value(PDF, "CropBox/ury", A4_HEIGHT - MARGIN)

PDF_translate(PDF, 0.0, A4_HEIGHT - MARGIN)
PDF_scale(PDF, 1.0, -1.0)

PDF_moveto(PDF, 0.0, 0.0)
PDF_lineto(PDF, A4_WIDTH - MARGIN, A4_HEIGHT - MARGIN)
PDF_stroke(PDF)

PDF_end_page(PDF)

PDF_close(PDF)


Also zuerst erstelle ich eine Seite mit der Größe A4_WIDTH, A4_HEIGHT. Dann lege ich diese CropBox fest, wo außerhalb, laut PDFLib Doku, alles weggeschnitten wird.

Mit PDF_translate und scale bearbeite ich nur das Koordinatensystem. Ich verschibe damit den Ursprung nach oben Rechts.

Naja, und dann zeichne ich halt eine Linie eigentlich über den gesamten Dokumentinhalt(Seitenränder ausgeschlossen).

Aber Pustekuchen Smile

mfg olli

Jan_

Ehemaliger Admin

BeitragMi, Jul 05, 2006 14:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe da noch nen Pascal/Delphi quelltext rumliegen, den ich mal geschreiben hatte. bei interresse, mal melden
between angels and insects

Vertex

BeitragMi, Jul 05, 2006 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr aussagekräftig Jan Smile

Habe ein Bug gefunden:
Code: [AUSKLAPPEN]
Global PDF_show_boxed%(p%,txt%,x#,y#,w#,h#,mode$z,feat$z) = GetProcAddress(lib, "PDF_show_boxed")


muss zu

Code: [AUSKLAPPEN]
Global PDF_show_boxed%(p%,txt$z,x#,y#,w#,h#,mode$z,feat$z) = GetProcAddress(lib, "PDF_show_boxed")


mfg olli

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group