Seite 1 von 1

PDF Datei erzeugen

Verfasst: Mo, 02. Feb 2015 11:47
von BerndR
Hier gleich noch ein Problem...

Ich möchte eine PDF Datei mit List & Label erstellen OHNE das ein Ausdruck am Drucker erfolgt...

In der Doku steht vieles was aber nicht funktioniert!?

Wann und wie wird eine PDF Datei erzeugt und mit welchem Code an welcher Stelle im Ablauf?

Die Hilfe von Combit ist da eher suboptimal... :banghead:

Viele Grüße
Bernd

Re: PDF Datei erzeugen

Verfasst: Mo, 02. Feb 2015 16:10
von Tom
Hallo, Bernd.

Die Exportroutine sieht der Druckroutine sehr ähnlich, es müssen nur einige Parameter (anders) und Optionen gesetzt werden. Leider bin ich ein wenig erkrankt und fern vom Entwicklungsrechner, so dass ich Dir erst morgen oder übermorgen ein Beispiel geben könnte. Falls es keines hier im Forum gibt, wovon ich eigentlich ausgehen würde.

Re: PDF Datei erzeugen

Verfasst: Mo, 02. Feb 2015 16:40
von Wolfgang Ciriack
Dazu kannst du auch meine Routine benutzen (siehe deine Druckerausgabefrage)

Re: PDF Datei erzeugen

Verfasst: Mo, 02. Feb 2015 20:38
von BerndR
PDF / RTF / HTML / XML funktionieren jetzt... :D
Aber die Bilder wie BMP/JPG/TIFF funktionieren alle nicht!? :?:
Hat jemand eine Idee?
Viele Grüße
Bernd

Re: PDF Datei erzeugen

Verfasst: Mo, 02. Feb 2015 23:07
von AUGE_OHR
BerndR hat geschrieben:Aber die Bilder wie BMP/JPG/TIFF funktionieren alle nicht!? :?:
Hat jemand eine Idee?
wie bindest du den die Bilder ein ?

Ich bin mir nicht sicher ob "meine" Methode die richtige ist aber bei der gab es das Problem das ein XbpBitmap() Object
14 Bytes in Header fehlen und es deshalb von externen Programmen nicht anerkannt wird.

Code: Alles auswählen

PROCEDURE LlPublishData( lAsFields, hJob, aField, aType, aLen, aDec, aDataSource, nDataPtr )
...
   FOR i := 1 TO LEN( aField )
      * load field or array element to MyContens
      MyContens := IF( PCOUNT() = 6, FIELDGET( i ), aDataSource[ nDataPtr, i ] )

      * publish typed fields to L&L
      DO CASE

         CASE aType[ i ] $ "V"                                   // BLOB
            IF lAsFields
               LlDefineFieldExtHandle( hJob, ;
                                       aField[ i ], ;
                                       TillBMP( MyContens ), ;   // s.h. PDR 6009
                                       LL_DRAWING_HBITMAP, 0 )

            ELSE
               LlDefineVariableExt( hJob, ;
                                    aField[ i ], ;
                                    MyContens, ;
                                    LL_DRAWING, 0 )
            ENDIF
siehe dir mal PDR 6009 an http://www.alaska-software.com/scripts/ ... PDRID=6009

Re: PDF Datei erzeugen

Verfasst: Di, 03. Feb 2015 10:41
von BerndR
Ich möchte die Dokumente als JPF/TIFF etc. ausgeben nichts einbinden oder ähnliches..
Als Ergebnis soll dann so ähnlich wie bei einem PDF nur JPG´s oder TIFF´s ... herauskommen...
Bei PDF funktioniert es jetzt, da kann ich dem L&L mitgeben das es diese zur Laufzeit erzeugen soll.
So wie es aussieht funktioniert es bei Bildern irgendwie anders!?
Ich vermute mal das diese am Ende erzeugt werden müssen!?

Viele Grüße
Bernd

Re: PDF Datei erzeugen

Verfasst: Di, 03. Feb 2015 14:45
von Tom
Hallo, Bernd.

Das Exportmodul unterstützt m.E. keine Bildformate, da das ja auch vergleichsweise sinnlos wäre, weil Bilder nicht mehrseitig sein können, Reports allerdings durchaus. Ausnahmen sind TIFFs. Alles andere (JPG/PNG) bietet L&L aus der Vorschau heraus auch nur als Einzelseitenspeicherung an.

Das ist allerdings daherbehauptet; ich bin zu Hause und nicht an meinem Entwicklungsarbeitsplatz, weshalb mir die Programmiererreferenz von L&L nicht zur Verfügung steht. Dir jedoch wahrscheinlich schon - wirf doch einfach mal einen Blick hinein! (Abschnitt "Die Export-Module")

Re: PDF Datei erzeugen

Verfasst: Di, 03. Feb 2015 15:37
von BerndR
Und genau da wird auf PICTURE_TIFF / ...PNG / ... hingewiesen...

Re: PDF Datei erzeugen

Verfasst: Sa, 14. Feb 2015 18:03
von BerndR
Hat denn keiner eine Idee?

Re: PDF Datei erzeugen

Verfasst: Sa, 14. Feb 2015 20:05
von Wolfgang Ciriack
Setze doch einfach mal ein LLSetDebug() vor deinen Ausgabecode, starte den debwin3 Debugger und schaue, ob da Fehler angezeigt werden, wenn du als Ausgabe ein Bildformat wählst. Ist denn die cmLL20ex.llx im Pfad vorhanden ?

Re: PDF Datei erzeugen

Verfasst: Mo, 16. Feb 2015 14:18
von ramses
@BerndR

Eine Ausgabe als BMP JPEG usw. ist Problemlos möglich. Pro Seite wird jeweils 1 Datei erzeugt.

als Einleitung musst du mindestens folgende Befehle absetzten (für BMP)

Code: Alles auswählen

  LlPrintStart(hJob, lProject, sName, LL_PRINT_EXPORT , 0 ) 
  LLPrintSetOptionString( hJob, LL_PRNOPTSTR_EXPORT, "PICTURE_BMP" )   



Ich verwende zum Start einer Ausgabe in jpg Dateien folgende Funktion:

Code: Alles auswählen

** hJob       Geöffneter JobHandle 
** lProject   Projecttyp  z.B. LL_PROJECT_LIST
** sName      Projectfile z.B. Liste.lst
** cOutFile   Zielfile inkl. LW+Pfad   -> i:\Dok_Jpg\Liste.jpg

static function LLSetJPGOut( hJob, lProject, sName, cOutFile )
local ret_val := .f.

       cOutFile := alltrim(cOutFile)

       do while .t.
            if empty( cOutFile )
                msgbox("Ausgabe als JPG nicht m”glich, kein Filename angegeben.")
                exit
            endif
            if ! "." $ cOutFile
                cOutFile += ".jpg"
            endif
            if !right(lower( cOutFile ), 3 ) == "jpg" .and. substr(cOutFile, len(cOutFile)-3,1) == "."
                cOutFile := left(cOutFile, len(cOutFile)-3) + "jpg"
            endif
            if !right(lower( cOutFile ), 4 ) == ".jpg"
                msgbox("Ausgabe als JPG nicht m”glich, Filename Ext. '.jpg' nicht angegeben.")
                exit
            endif

            cOutFile := stuff(cOutFile, len(cOutFile)-3,0, "_Seite_%d" )  // Platzhalter für Seitennummerierung

            if  LLErrorMessage(  LlPrintStart(hJob, lProject, sName, LL_PRINT_EXPORT , 0 ) )
                exit
            endif
            if  LLErrorMessage(  LLPrintSetOptionString( hJob, LL_PRNOPTSTR_EXPORT, "PICTURE_JPEG" )   )
                exit
            endif
            if  LLErrorMessage(  LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PICTURE_JPEG", "Resolution", "300" ) )
                exit
            endif
            if  LLErrorMessage(  LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PICTURE_JPEG", "Picture.JPEGQuality", "80" ))
                exit
            endif
            if  LLErrorMessage(  LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PICTURE_JPEG", "Export.Path",  left( cOutFile, rat("\", cOutFile) ) ) )
                exit
            endif
            if  LLErrorMessage(  LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PICTURE_JPEG", "Export.File", right( cOutFile, len(cOutFile) - rat("\",cOutFile)) ) )
                exit
            endif
            if  LLErrorMessage(  LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PICTURE_JPEG", "Export.Quiet", "1") )
                exit
            endif
            ret_val := .t.
            exit
       enddo

return(ret_val)





Cu Carlo