PureBoard
http://forums.purebasic.com/german/

PDF erstellen
http://forums.purebasic.com/german/viewtopic.php?f=28&t=30540
Seite 1 von 1

Autor:  babelfish [ 12.01.2018 08:18 ]
Betreff des Beitrags:  PDF erstellen

Hallo Liebe PB'ler

Ich war jetzt einige Zeit ruhig da ich einiges selbst herausgefunden hatte und aber auch sehr wenig Zeit zum programmieren hatte.
Jetzt stehen aber einige Verbesserungen in unserer Software an. (ich hab komplette Kunden-Verwaltung, Faktura und Bankverbindung geschrieben).

Mein aktuelles Problem: Sollte die Rechnungserstellungs-App aktualisieren aber leider macht mir die PDF-Erestellung probleme.
Suche schon seit Tagen aber entweder suche ich falsch oder niemand anderer hat das Problem...

Auf Grund der PDF-Qualität konnte ich bisher damit weiterkommen:
viewtopic.php?f=28&t=22708

Aber leider bekomme ich jetzt immer ein:
Native types can't be used with pointers.
Code:
Declare.l LeggeBMP(FileName.s, Array ImgBuf.b(1), Array ImgColor.b(1), *ImgWidth.l, *ImgHeight.l, *ImgBPP.b, ColorSpace.l = #pdfRGB)


Und lösche ich einfach alle "*" 8) bekomme ich ein Syntax error bei der Font-Beschreibung:
Code:
TimesNormal: Data.l 250, 333, 408, 500, 500, 833, 778, 180, 333, 333, 500, 564, 250, 333, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 564, 564, 564, 444, 921, 722, 667, 667, 722, 611, 556, 722, 722, 333, 389, 722, 611, 889, 722, 722, 556, 722, 667, 556, 611, 722, 722, 944, 722, 722, 611, 333, 278, 333, 469, 500


Gibts ein Workaround - oder hat jemand eine andere Idee?
Einen Druck starten und als PDF abspeichern ist keine Variante da teilweise Rechnungen im Hintergrund per Email versendet werden und andere wiederrum ausgedruckt werden müssen.
Der Druck selbst wäre ja nicht das Problem - aber die Emails... das muss (auf Grund der Menge) automatisch ablaufen.

Daher wird erst ein PDF erzeugt (auch als Rechnungskopie nötig) und dann entweder gemailt oder gedruckt.
Und bei 5000 Rechnungen im Jahr muss es automatisch ablaufen ... Dateiname usw

Das Programm läuft weiterhin - aber ich kann nicht neu kompilieren und damit eingie nötige aktualisierung nicht durchführen.
Letzte mal wurde es im Juli 2016 kompiliert (nach Dateidatum jedenfalls - mit Kommentare leider in dieser hinsicht gespart :)

Hab auch schon versucht alte Compiler einzusetzen... Selbe Fehler.

Danke und Grüße

Robert

Autor:  Kiffi [ 12.01.2018 08:24 ]
Betreff des Beitrags:  Re: PDF erstllen

babelfish hat geschrieben:
[...] bekomme ich ein Syntax error bei der Font-Beschreibung:
Code:
TimesNormal: Data.l 250, 333, 408, 500, 500, 833, 778, 180, 333, 333, 500, 564, 250, 333, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 564, 564, 564, 444, 921, 722, 667, 667, 722, 611, 556, 722, 722, 333, 389, 722, 611, 889, 722, 722, 556, 722, 667, 556, 611, 722, 722, 944, 722, 722, 611, 333, 278, 333, 469, 500

Gibts ein Workaround - oder hat jemand eine andere Idee?


einfach einen Zeilenumbruch einfügen:
Code:
TimesNormal:
Data.l 250, 333, 408, 500, 500, 833, 778, 180, 333, 333, 500, 564, 250, 333, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 564, 564, 564, 444, 921, 722, 667, 667, 722, 611, 556, 722, 722, 333, 389, 722, 611, 889, 722, 722, 556, 722, 667, 556, 611, 722, 722, 944, 722, 722, 611, 333, 278, 333, 469, 500


Grüße ... Peter

Autor:  NicTheQuick [ 12.01.2018 11:03 ]
Betreff des Beitrags:  Re: PDF erstllen

babelfish hat geschrieben:
Native types can't be used with pointers.
Code:
Declare.l LeggeBMP(FileName.s, Array ImgBuf.b(1), Array ImgColor.b(1), *ImgWidth.l, *ImgHeight.l, *ImgBPP.b, ColorSpace.l = #pdfRGB)

Du darfst nicht die * weg machen, sondern musst die nativen Typen weg machen:
Code:
Declare.l LeggeBMP(FileName.s, Array ImgBuf.b(1), Array ImgColor.b(1), *ImgWidth, *ImgHeight, *ImgBPP, ColorSpace.l = #pdfRGB)

Zumindest denke ich, dass es eher so gedacht ist. Wer weiß ich ja nicht von deinem Code.

Autor:  Andesdaf [ 12.01.2018 11:39 ]
Betreff des Beitrags:  Re: PDF erstllen

allgemein kann PB unter Mac OS inzwischen auch nativ PDFs rendern. Schau mal bei
PdfVectorOutput() bzw. VectorDrawing.

Autor:  babelfish [ 12.01.2018 20:28 ]
Betreff des Beitrags:  Re: PDF erstllen

Zitat:
einfach einen Zeilenumbruch einfügen:

Ernsthaft? mehr nicht?
LoL - ok... ich bin ja kein Profi-Programmierer und das Zeugs ist mir schon zu stark.
Darum muss ich auch:

Zitat:
Du darfst nicht die * weg machen, sondern musst die nativen Typen weg machen:


Aaaaahaaaaa :)


Andesdaf hat geschrieben:
allgemein kann PB unter Mac OS inzwischen auch nativ PDFs rendern. Schau mal bei
PdfVectorOutput() bzw. VectorDrawing.


Genau das hab ich gesucht...
Das wäre mir die liebste Lösung. Bin ja damals ausgewichen da die Qualität der erzeugten PDF's mehr als Sch... war.

Danke an alle für den Schubs... jetzt kann ich wieder selbst-studium betreiben.
Ich probiert gleich alles aus.

Autor:  babelfish [ 12.01.2018 20:56 ]
Betreff des Beitrags:  Re: PDF erstellen

ja genau...

Natives PDF-Rendering funktioniert schon sehr gut:

Einfacher Test der, für mich, wichtigsten Funktionen:
Code:
LoadFont(0, "Times New Roman", 20)

UsePNGImageDecoder();

  If StartVectorDrawing(PdfVectorOutput("/Users/DeinUserName/Desktop/test.pdf", 595, 842)) 
    VectorFont(FontID(0), 25)
   
    MovePathCursor(20, 20)
    DrawVectorText("This is page 1... 20/20")
   
    VectorFont(FontID(0), 12)

    MovePathCursor(20, 40)
    DrawVectorText("This is page 1... 20/40")
   
    VectorFont(FontID(0), 12)
    VectorSourceColor(RGBA(0, 0, 0, 80))
    MovePathCursor(100, 100)
    DrawVectorText("This is page 1... 100/50")
   
    NewVectorPage()
   
    MovePathCursor(20, 20)
    DrawVectorText("This is page 2...")     
   
      LoadImage(0, "/Users/DeinUserName/Desktop/test.png")
      DrawVectorImage(ImageID(0) , 127 , ImageWidth(0) / 2, ImageHeight(0)/2)
     
      For i = 1 To 4
        AddPathLine(80, 0, #PB_Path_Relative)
        AddPathLine(0, 40, #PB_Path_Relative)
      Next i
      VectorSourceColor(RGBA(255, 0, 0, 255))
      StrokePath(1, #PB_Path_RoundCorner)
 
    StopVectorDrawing()
  EndIf


Danke - es geht los...
Tauche unter und vergrabe mich im Coder-room :)

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/