Forum | | | | Muemmelmann | Danke Torsten,
@create("listbox",%hwnd, 0,0,0,0,0) clearlist @addstring(0, bemerk$) @db("PutMemo", "VP_MEMO")
so gehts, wenn ich bei "listbox" 10,10,100,100 als Koordinaten und Größe eingebe erschein zwar ein Fenster, aber mitt 0,0,0,0 klappt es so wie ich will
LG Uwe |
| | | | |
| | Muemmelmann | Hallo, ich habe da mal noch ne andere Frage:
gibt es die Möglichkeit (XProfan) direkt eine PDF zu erzeugen, in PHP geht das mit fpdf.php ???
vielen Dank schon mal...
LG Uwe |
| | | | |
| | Thomas Freier | Im Prinzip ja, aber nur ganz Einfache (Font und Text) Hatte das als Rechnungsdokumentationsablage gemacht. Die gedruckte Rechnung hatte natürlich einen heute üblichen Font, usw. Das Beispiel im Texteditor öffnen und du siehst die für die PDF erforderlichen Zeilen.
Man kann aber auch über den PDFCreator (ist dann der Drucker, auf den die Befehle von XProfan landen) PDFs erstellen, im eingestellten Ordner speichern und drucken. |
| | | | |
| | Muemmelmann | Hallo Thomas,
ja so was wie in Deiner Anlage würde reichen, wie hast Du das gemacht ???
LG Uwe
(XProfan X2) |
| | | | |
| | Thomas Freier | Hallo Uwe, so eine einfache Text-PDF besteht aus einem Kopf-, Text-, ggf. neue Seite und Endteil. Den Textteil speichere ich in eine Listbox und jede Zeile wird dann um die für die PDF erforderlichen Zeichen ergänzt. Zulässig ist nur ein Font vom Typ1 (Adobe Vorgabe). Ideal ist ein Font mit gleichem Zeichenabstand, und bei tabellenförmigem Format, wenn dann auch noch Zahlenreihen rechtsbündig sein sollen, unerläßlich. Wird z.B.: Arial verwendet, muß die Stringlänge (px) berechnet werden, damit der Text der Zeile noch in der Blattbreite bleibt. Hier der reduzierte Code
$H Windows.ph
Declare Ende&
CLS ~GetSysColor(~Color_BTNFACE)
WindowTitle "Neues Projekt"
Var but1& = @Create("Button", %hwnd ,"Start",0,0,60,22)
Var but2& = @Create("Button", %hwnd ,"Ende",80,0,60,22)
Whilenot Ende&
Waitinput
Case getfocus(but1&):RECHNUNG_NEU
Case getfocus(but2&):Ende&=1
Endwhile
End
|
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'für alle gelisteten Daten wird eine Rechnung erstellt
Proc RECHNUNG_NEU
Var pSeite% = 1
' für NotPDF Seitenwechsel
Var pwechsel%=0
Set("Decimals",2)
Var aRgNr%= 10012
RECNUNG_SCHREIBE
If FileExists("D:\\"+str$(aRgNr%) +".pdf")=1
@MessageBox("10012.pdf erstellt","Hinweis",64)
Else
@MessageBox("10012.pdf nicht erstellt","Hinweis",32)
Endif
EndProc
Proc RECNUNG_SCHREIBE
pSeite% = 1
pwechsel%=0
Declare pdfjob%, y%
Declare pxn%'Anzahl gedruckter Zeilen
NOT_PDF_KOPF "D:\\"+str$(aRgNr%) +".pdf"
' die Listbox nimmt alle Daten für die PDF-Datei auf
ClearList 0
RNG_ADRESS' Rechnungsadresse
RNG_NUMMER' Rechnungsnummer
RNG_SEITE' Seiten-NR und LISTENüberschrift
'Alle Datensätze zur Kunden-Nummer
Whileloop 20
AddString(0,str$(&loop))
Endwhile
' Wieviele Sätze noch zur Kostenstelle und Seitenwechsel?
y%=8
pxn%= 30
If (pxn%+y%)>36
Case y%>0 : pwechsel%=1
AddString(0, "---------------------------------------------------------------------------------")
AddString(0, "Übertrag : ")
Not_PDF_INHALT "D:\\"+str$(aRgNr%) +".pdf"
ClearList 0
NOT_PDF_SEITE "D:\\"+str$(aRgNr%) +".pdf"
inc pSeite%
RNG_ADRESS' Rechnungsadresse
RNG_ANLAGE' Rechnungsanlage
RNG_SEITE' Seiten-NR und LISTENüberschrift
EndIf
Whileloop 10
AddString(0,str$(&loop))
EndWhile
Not_PDF_INHALT "D:\\"+str$(aRgNr%) +".pdf"
Not_PDF_ENDE "D:\\"+str$(aRgNr%) +".pdf"
EndProc
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Proc RNG_ADRESS
' Drucken DIN-Adressfeld, Font und Höhe bleiben fest
AddString(0, "Musterfirma")'trim$(dbGet$("KDNNAMEN")))
AddString(0, "")' trim$(dbGet$("KDNZUSATZ")))
AddString(0, "Musterweg 2")'trim$(dbGet$("KDNSTR")))
AddString(0, "23421 Muster")'trim$(dbGet$("KDNPLZ"))+" "+trim$(dbGet$("KDNORT")))
AddString(0, "DEUTSCHLAND")'upper$(trim$(dbGet$("KDNLAND"))))
AddString(0, "")
EndProc
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Proc RNG_NUMMER
AddString(0, " R E C H N U N G")
AddString(0, " Nummer : ")
AddString(0, " ------------------------")
AddString(0, " vom : ")
AddString(0, " Kunde : ")
AddString(0, "")
AddString(0, "")
AddString(0, "")
AddString(0, "")
EndProc
Proc RNG_ANLAGE
AddString(0, " Anlage zur")
AddString(0, " ------------------------")
AddString(0, " Rechnung-Nr.: ")
AddString(0, " vom : ")
AddString(0, " Kunde : ")
AddString(0, " Seite : "+str$(pSeite%))
AddString(0, "")
AddString(0, "")
AddString(0, "")
EndProc
Proc RNG_SEITE
AddString(0, "Einzelaufstellung")
AddString(0, "-----------------")
AddString(0, "Datum Beleg Fahrer Leistung Ihre Zeichen/Zusatz Betrag EUR")
AddString(0, "---------------------------------------------------------------------------------")
inc pxn%
If pwechsel%=1
inc pxn%
AddString(0, "Übertrag : ")
AddString(0, "")
dec pxn%
EndIf
inc pxn%
EndProc
Proc NOT_PDF_KOPF
Parameters pdf_file$
Assign #32,pdf_file$
Rewrite #32
Print #32,"%PDF-1.2"
Print #32,"%âãÏÓ"
Print #32,"1 0 obj"
Print #32,"<<"
Print #32,"/Author (ich)"
Print #32,"/CreationDate (D:" + dt("getDate",6) +" )"
Print #32,"/Creator (ich v1.1)"
Print #32,"/Producer ()"
Print #32,"/Title ()"
Print #32,"/Subject ()"
Print #32,"/Keywords ()"
Print #32,">>"
Print #32,"endobj"
Print #32,"4 0 obj"
Print #32,"<<"
Print #32,"/Type /Font"
Print #32,"/Subtype /Type1"
Print #32,"/Name /F1"
Print #32,"/Encoding 5 0 R"
Print #32,"/BaseFont /Courier"
'nur Font-Type1 wie z.B.: Arial, Verdana, usw. zulässig
Print #32,">>"
Print #32,"endobj"
Print #32,"5 0 obj"
Print #32,"<<"
Print #32,"/Type /Encoding"
Print #32,"/BaseEncoding /WinAnsiEncoding"
Print #32,">>"
Print #32,"endobj"
Print #32,"6 0 obj"
Print #32,"<<"
Print #32," /Font << /F1 4 0 R >>"
Print #32," /ProcSet [ /PDF /Text ]"
Print #32,">>"
Print #32,"endobj"
Print #32,"7 0 obj"
Print #32,"<<"
Print #32,"/Type /Page"
Print #32,"/Parent 3 0 R"
Print #32,"/Resources 6 0 R"
Print #32,"/Contents 8 0 R"
Print #32,"/Rotate 0"
Print #32,">>"
Print #32,"endobj"
Print #32,"8 0 obj"
Print #32,"<<"
Print #32,"/Length 6 0 R"
Print #32,">>"
Print #32,"stream"
Print #32,"BT"
Print #32,"/F1 10 Tf"
Print #32,"1 0 0 1 54 676 Tm"
'54 ist Rand links
'676 ist Abstand 1. Textzeile vom Blattende
Print #32,"10 TL"
Close #32
pdfjob%=9
EndProc
Proc NOT_PDF_INHALT
Parameters pdf_file$
Declare textpdf$
Assign #32,pdf_file$
Append #32
WhileLoop 0,%GetCount
textpdf$ = GetString$(0,&Loop)
textpdf$=Translate$(Textpdf$,"(","\(")
textpdf$=Translate$(Textpdf$,")","\)")
textpdf$="T* (" + textpdf$ + ") Tj"
Print #32,textpdf$
EndWhile
Close #32
EndProc
Proc NOT_PDF_SEITE
Parameters pdf_file$
Assign #32,pdf_file$
Append #32
Print #32,"1 0 0 1 504 25 Tm"
Print #32,"() Tj"
Print #32,"/F1 10 Tf"
Print #32,"ET"
Print #32,"endstream"
Print #32,"endobj"
Print #32,"9 0 obj"
Print #32,"3950"
Print #32,"endobj"
inc pdfjob%
Print #32,str$(pdfjob%)+" 0 obj"'10
inc pdfjob%
Print #32,"<<"
Print #32,"/Type /Page"
Print #32,"/Parent 3 0 R"
Print #32,"/Resources 6 0 R"
Print #32,"/Contents "+str$(pdfjob%)+" 0 R"
Print #32,"/Rotate 0"
Print #32,">>"
Print #32,"endobj"
Print #32,str$(pdfjob%)+" 0 obj"
Print #32,"<<"
Print #32,"/Length 12 0 R"
Print #32,">>"
Print #32,"stream"
Print #32,"BT"
Print #32,"/F1 10 Tf"
Print #32,"1 0 0 1 54 676 Tm"
Print #32,"12 TL"
Close #32
inc pdfjob%
EndProc
Proc NOT_PDF_ENDE
Parameters pdf_file$
Assign #32,pdf_file$
Append #32
Print #32,"() Tj"
Print #32,"/F1 10 Tf"
Print #32,"ET"
Print #32,"endstream"
Print #32,"endobj"
Print #32,"9 0 obj"
Print #32,"275"
Print #32,"endobj"
Print #32,"2 0 obj"
Print #32,"<<"
Print #32,"/Type /Catalog"
Print #32,"/Pages 3 0 R"
Print #32,">>"
Print #32,"endobj"
Print #32,"3 0 obj"
Print #32,"<<"
Print #32,"/Type /Pages"
Set("Decimals",0)
Print #32,"/Count "+str$(pSeite%)
Print #32,"/MediaBox [ 0 0 595 842 ]"
var pdfjob$="/Kids [ "
Var pdfb%=7
whileLoop pSeite%
pdfjob$= pdfjob$ + str$(pdfb%)+ " 0 R "
pdfb%=pdfb%+3
' Case p.Seite%=2 : Print #32,"/Kids [ 7 0 R 10 0 R ]"
' Case p.Seite%=3 : Print #32,"/Kids [ 7 0 R 10 0 R 13 0 R ]"
EndWhile
pdfjob$=pdfjob$+"]"
Print #32,pdfjob$
Print #32,">>"
Print #32,"endobj"
Print #32,"0 10"
Print #32,"0000000000 65535 f"
Print #32,"0000000013 00000 n"
Print #32,"0000002875 00000 n"
Print #32,"0000002918 00000 n"
Print #32,"0000000156 00000 n"
Print #32,"0000000245 00000 n"
Print #32,"0000000307 00000 n"
Print #32,"0000000372 00000 n"
Print #32,"0000000453 00000 n"
Print #32,"0000002858 00000 n"
Print #32,"trailer"
Print #32,"<<"
Print #32,"/Size 10"
Print #32,"/Root 2 0 R"
Print #32,"/Info 1 0 R"
Print #32,">>"
Print #32,"startxref"
Print #32,"909"
Print #32,"%%EOF"
Close #32
EndProc
Gruß Thomas |
| | | | |
|
AntwortenThemenoptionen | 4.299 Betrachtungen |
ThemeninformationenDieses Thema hat 2 Teilnehmer: |