[Module] pbPDF-Module
- Thorsten1867
- Beiträge: 1359
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: [Module] pbPDF-Module
Update: PDF::GetStringHeight() added
-
- Beiträge: 220
- Registriert: 30.04.2009 21:21
- Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS
Re: [Module] pbPDF-Module
Hallo Thorsten1867,
erstmal vielen Dank für die tolle Arbeit die Du hier leistest.
Wie ich sehe hast Du seit meinem letzten Post das Modul wieder erheblich erweitert, u.a. auch eine Unicode Zeichenunterstützung eingebaut. Ich habe folgendes versucht:Ich habe "Arial" verwendet, da dieser Font einen erweiterten Zeichensatz enthält.
Ich habe testhalber auch einmal ein arabischen Font (Amiri) versucht
Leider erhalte ich immer nur ???? als Ausgabe.
Habe ich da ein Denkfehler?
erstmal vielen Dank für die tolle Arbeit die Du hier leistest.
Wie ich sehe hast Du seit meinem letzten Post das Modul wieder erheblich erweitert, u.a. auch eine Unicode Zeichenunterstützung eingebaut. Ich habe folgendes versucht:
Code: Alles auswählen
PDF::Cell(#PDF, "نشوان عبد الرزاق عبد الب" + Chr(Asc("ا"))+" " + Chr(Asc("ق"))+ " " + Chr(Asc("ي")),20,10,#False,PDF::#Right,"",#False)
Ich habe testhalber auch einmal ein arabischen Font (Amiri) versucht
Code: Alles auswählen
PDF::EmbedFont(#PDF,"Amiri","","")
PDF::SetFont(#PDF, "Amiri","B", 16)
PDF::Cell(#PDF, "نشوان عبد الرزاق عبد الب" + Chr(Asc("ا"))+" " + Chr(Asc("ق"))+ " " + Chr(Asc("ي")),20,10,#False,PDF::#Right,"",#False)
Habe ich da ein Denkfehler?
Wissen schadet nur dem, der es nicht hat !
- Thorsten1867
- Beiträge: 1359
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: [Module] pbPDF-Module
Update: Konvertierung inkompatibler PNGs
Re: [Module] pbPDF-Module
Hallo,
bin gerade am testen mit dem pbPDF-Module
Wie kann ich die Schriftart auf zb. Verdana umstellen ?
bzw andere Schriftarten ?
Gruß
gnaps
bin gerade am testen mit dem pbPDF-Module
Wie kann ich die Schriftart auf zb. Verdana umstellen ?
bzw andere Schriftarten ?
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: [Module] pbPDF-Module
Hi,
wer die Anleitung lesen kann ist klar im Vorteil.
jedoch gehts nicht
PDF::EmbedFont(#PDF,"C:\WINDOWS\FONTS\VERDANA.TTF","Verdana")
was mache ich falsch ?
Gruß
gnaps
wer die Anleitung lesen kann ist klar im Vorteil.
jedoch gehts nicht
PDF::EmbedFont(#PDF,"C:\WINDOWS\FONTS\VERDANA.TTF","Verdana")
was mache ich falsch ?
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: [Module] pbPDF-Module
Hallo Thorsten,
nach längerer Zeit habe ich mich mal wieder Deinem PDF Modul gewidmet. Ich bin immer noch stark beeindruckt. Gutes Modul, super umgesetzt
Ich würde aber nicht schreiben, wenn es da nicht was gäbe. Und zwar funktioniert bei mir Header & Footer nicht. Diese werden auf der PDF einfach nicht angezeigt / berücksichtigt. Als Beispielcode nehme ich einfach mal das beiliegende Beispiel für PageFormat (pbPDF-PageFormat.pb). Die bei mir erstellte PDF hat weder Header noch Footer. Seltsam
Meine Specs:
PureBasic: 5.72 - 32 Bit (auf 64 Bit OS)
OS: Windows 7 - 64 Bit
Wäre cool, wenn Du da mal schauen könntest.
Gruß,
Morty
nach längerer Zeit habe ich mich mal wieder Deinem PDF Modul gewidmet. Ich bin immer noch stark beeindruckt. Gutes Modul, super umgesetzt
Ich würde aber nicht schreiben, wenn es da nicht was gäbe. Und zwar funktioniert bei mir Header & Footer nicht. Diese werden auf der PDF einfach nicht angezeigt / berücksichtigt. Als Beispielcode nehme ich einfach mal das beiliegende Beispiel für PageFormat (pbPDF-PageFormat.pb). Die bei mir erstellte PDF hat weder Header noch Footer. Seltsam
Meine Specs:
PureBasic: 5.72 - 32 Bit (auf 64 Bit OS)
OS: Windows 7 - 64 Bit
Wäre cool, wenn Du da mal schauen könntest.
Gruß,
Morty
-
- Beiträge: 220
- Registriert: 30.04.2009 21:21
- Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS
Re: [Module] pbPDF-Module
Hallo Thorsten,
der Beitrag von Morty ist jetzt fast 1 Jahr her. Konntest Du schon einmal in Deinem Code nachsehen?
Ohne Header und Footer ist es nicht wirklich Möglich sinnvoll Formulare mit Folgeseiten zu erstellen. Bin gerade dabei ein Update für mein Programm zu schreiben und wollte mal wieder auf Deine Resource zurück greifen und jetzt habe ich das gleiche Problem wie Morty
By the way: alle Module waren bislang eine wirklich tolle Umsetzung
der Beitrag von Morty ist jetzt fast 1 Jahr her. Konntest Du schon einmal in Deinem Code nachsehen?
Ohne Header und Footer ist es nicht wirklich Möglich sinnvoll Formulare mit Folgeseiten zu erstellen. Bin gerade dabei ein Update für mein Programm zu schreiben und wollte mal wieder auf Deine Resource zurück greifen und jetzt habe ich das gleiche Problem wie Morty
By the way: alle Module waren bislang eine wirklich tolle Umsetzung
Wissen schadet nur dem, der es nicht hat !
Re: [Module] pbPDF-Module
Hallo!
Ohne jetzt wirklich Ahnung zu haben, benutze ich das pbPDF-Modul ebenfalls seit
langer Zeit. Ich bin halt ein Universaldilletant.
Jedoch funktioniert bei mir das Setzen von Header und Footer problemlos. Ich er-
innere mich zwar dunkel, daß ich damals lange tüfteln mußte, bis es so lief, wie
ich es mir dachte.
Es geht aber jetzt immer noch problemlos mit PB 6.00 Alpha 3(x64) und dem ASM-
Backend als Compiler. Das C-Backend bereitet mir noch große Probleme. Da will
ich aber die nächsten(n) Alpha-(und dann Beta-)Versionen abwarten.
Ich habe zwei Proceduren definiert:Diese werden im Rahmen der PDF-Initialisierung von mir so aufgerufen:Ich meine mich aber dunkel erinnern zu können, daß das Einbinden von Header
und Footer an der richtigen Position im Code stehen muß. Das ganze ist aber schon
7 Jahre her. Die PDF-Erstellung fasse ich auch nicht mehr an solange es funktioniert.
Die grobe Reihenfolge der Initialisierung sieht etwa so bei mir aus:Ich hoffe, zumindest einen Ansatz für eine Fehlersuche geliefert zu haben.
Ohne jetzt wirklich Ahnung zu haben, benutze ich das pbPDF-Modul ebenfalls seit
langer Zeit. Ich bin halt ein Universaldilletant.
Jedoch funktioniert bei mir das Setzen von Header und Footer problemlos. Ich er-
innere mich zwar dunkel, daß ich damals lange tüfteln mußte, bis es so lief, wie
ich es mir dachte.
Es geht aber jetzt immer noch problemlos mit PB 6.00 Alpha 3(x64) und dem ASM-
Backend als Compiler. Das C-Backend bereitet mir noch große Probleme. Da will
ich aber die nächsten(n) Alpha-(und dann Beta-)Versionen abwarten.
Ich habe zwei Proceduren definiert:
Code: Alles auswählen
Procedure Header()
pdf_SetFont("MS Sans Serif Standard","B",14)
pdf_SetY(Rand\ro)
pdf_Cell(0,16, FormatString(Rand\HT),#PDF_CELL_BOTTOMBORDER,0,#PDF_ALIGN_CENTER)
pdf_SetY(Rand\ro +24)
EndProcedure
Procedure Footer()
pdf_SetFont("MS Sans Serif Standard","",10)
pdf_SetY(Rand\ru-Rand\FH)
pdf_Cell(0,rand\FH,FormatString(Rand\FT),#PDF_CELL_TOPBORDER,0,#PDF_ALIGN_RIGHT)
EndProcedure
Code: Alles auswählen
If Rand\HS
pdf_SetProcHeader(@Header())
EndIf
If Rand\FS
pdf_SetProcFooter(@Footer())
EndIf
und Footer an der richtigen Position im Code stehen muß. Das ganze ist aber schon
7 Jahre her. Die PDF-Erstellung fasse ich auch nicht mehr an solange es funktioniert.
Die grobe Reihenfolge der Initialisierung sieht etwa so bei mir aus:
Code: Alles auswählen
pdf_Create
pdf_SetDisplayMode
pdf_DisplayPreferences
pdf_AliasNbPages
pdf_SetTitle
pdf_SetSubject
pdf_SetCreator
pdf_SetAutoPageBreak
pdf_SetMargins
pdf_SetFont
pdf_SetProcHeader
pdf_SetProcFooter
pdf_SetProcCompression
pdf_AddPage
...
...
-
- Beiträge: 220
- Registriert: 30.04.2009 21:21
- Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS
Re: [Module] pbPDF-Module
@Lord
So nebenbei bemerkt, gemessen an Deinem hier ausgegebenen Code arbeitest Du mit einer älteren Version, was OK ist. Ich schätze mal die PBI heißt "purePDFModule.pbi".
So nebenbei bemerkt, gemessen an Deinem hier ausgegebenen Code arbeitest Du mit einer älteren Version, was OK ist. Ich schätze mal die PBI heißt "purePDFModule.pbi".
Wissen schadet nur dem, der es nicht hat !
-
- Beiträge: 220
- Registriert: 30.04.2009 21:21
- Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS
Re: [Module] pbPDF-Module
Auch wenn es ein Doppelpost wird, ich habe die Lösung für die Anzeige von Kopf und Fußzeilen gefunden.
Es ist direkt nach dem Create die Kopf und Fußzeile einzuschalten. Laut Dokumentation sollte das automatisch funktionieren. Da ist wohl noch ein Bug drin. So konnte ich das lösen:
Good Luck
Es ist direkt nach dem Create die Kopf und Fußzeile einzuschalten. Laut Dokumentation sollte das automatisch funktionieren. Da ist wohl noch ein Bug drin. So konnte ich das lösen:
Code: Alles auswählen
XIncludeFile ".\pbPDFModule.pbi"
#PDFFILE = 1
Procedure Header()
PDF::SetFont(#PDFFILE,"Arial","I",8)
PDF::SetColorRGB(#PDFFILE,PDF::#TextColor,127,255,127)
PDF::Cell(#PDFFILE,"Header",#False,8,#False,PDF::#NextLine,PDF::#CenterAlign,#False,"")
PDF::Ln(20)
EndProcedure
Procedure Footer()
PDF::SetPosY(#PDFFILE,-20,#False)
PDF::SetFont(#PDFFILE,"Arial","I",8)
PDF::SetColorRGB(#PDFFILE,PDF::#TextColor,127,0,127)
PDF::Cell(#PDFFILE,"Dies ist eine Fußzeile mal ohne Angabe von Seitenzahlen",#False,8,#False,PDF::#NextLine,PDF::#CenterAlign,#False,"")
EndProcedure
If PDF::Create(#PDFFILE);,"P","mm",PDF::#Format_A4)
; ===== General Settings =====
PDF::EnableHeader(#PDFFILE,#True)
PDF::EnableFooter(#PDFFILE,#True)
PDF::SetAutoPageBreak(#PDFFILE,#True)
PDF::SetPageNumbering(#PDFFILE,#True)
; ===== Meta Settings =====
PDF::SetInfo(#PDFFILE,PDF::#Author,"Author Name")
PDF::SetInfo(#PDFFILE,PDF::#Title,"Document Title")
PDF::SetInfo(#PDFFILE,PDF::#Subject,"Document Subject")
PDF::SetInfo(#PDFFILE,PDF::#Keywords,"Document Keywords")
PDF::SetInfo(#PDFFILE,PDF::#Creator,"Who has written this document")
; ===== File Control =====
PDF::SetHeaderProcedure(#PDFFILE,@Header())
PDF::SetFooterProcedure(#PDFFILE,@Footer())
; ===== File content =====
PDF::AddPage(#PDFFILE)
PDF::SetFont(#PDFFILE,"Arial","",10)
PDF::SetColorRGB(#PDFFILE,PDF::#TextColor,127,127,127)
PDF::Cell(#PDFFILE,"Hier beginnt das Formular",#False,8,#False,PDF::#NextLine,PDF::#CenterAlign,#False,"")
PDF::AddPage(#PDFFILE)
PDF::SetColorRGB(#PDFFILE,PDF::#TextColor,227,227,227)
PDF::Cell(#PDFFILE,"Hier beginnt das Formular Seite 2",#False,8,#False,PDF::#NextLine,PDF::#CenterAlign,#False,"")
PDF::AddPage(#PDFFILE)
PDF::SetColorRGB(#PDFFILE,PDF::#TextColor,27,27,27)
PDF::Cell(#PDFFILE,"Hier beginnt das Formular Seite 3",#False,8,#False,PDF::#NextLine,PDF::#CenterAlign,#False,"")
; ===== Finalize Document =====
PDF::Close(#PDFFILE,"test.pdf")
RunProgram("test.pdf")
EndIf
Wissen schadet nur dem, der es nicht hat !