Español
Foro

Druck con Prospeed.DLL es a klein

 

Bernd
Krauss
¡Hola,
en una Ausdruck con Prospeed.DLL es el Druck viel a klein. Wenn Yo en el Faktor 10 erhöhe, entonces klappt lo con manchen Druckern, en otro Rechner stürzt él de. Am Bildschirm se el Bild correcto adecuado. Hier es el Code para el Procedimiento. Lo se el Bild = BDatei$ el Koordinaten = Bx&, By& el gewünschte Breite y Höhe = BreitX&, BreitY& y si gedruckt voluntad se = Drk% übermittelt.
Kann me alguien helfen?
KompilierenMarcaSeparación
Proc BildAnz

    parameters BDatei$, Bx&, By&, BreitX&, BreitY&, Drk%
    declare BQuelle&, BBreite&, BHoehe&, neubreit&, neuhoch&
    declare neubreitx&, neuhochy&, DrkKlein&, DrkBild&
    declare Faktor%
    let Faktor% = 10
    BQuelle&=LoadExtImage(addr(BDatei$))

    ifnot equ(BQuelle&,0)

        BBreite& = GetBmpWidth(BQuelle&)                          Breite und Hoehe des Bilds
        BHoehe& = GetBmpHeight(BQuelle&)                          ermitteln
        messagebox(Str$(BBreite&),Str$(BHoehe&),0)

        if gt(BBreite& / BHoehe& , BreitX& / BreitY&)

            neubreit& = BreitX&
            neuhoch& = BHoehe&/BBreite&*neubreit&

        else

            neuhoch& = BreitY&
            neubreit& = BBreite&/BHoehe&*neuhoch&

        endif

        if drk%

            let neuhoch& = neuhoch& * Faktor%
            let neubreit& = neubreit& * Faktor%
            DrkKlein&=CreateExtBmp(%HDC,neubreit&,neuhoch&)
            SizeExtBmp (DrkKlein&,0,0,neubreit&,neuhoch&,BQuelle&,0,0,BBreite&,BHoehe&,0)
            DrkBild&=CreateExtBmp(%HDC,neuhoch&,neubreit&)
            Die automatische Zentrierung beim Rotieren ausgleichen

            If neubreit&>=neuhoch&

                neubreitx&=(neubreit&-neuhoch&)/2

            Else

                neubreitx&=(neuhoch&-neubreit&)/2

            EndIf

            neuhochy&=neubreitx&
            Case neubreit&>neuhoch&:neubreitx&=-neubreitx&
            Case neuhoch&>neubreit&:neuhochy&=-neuhochy&
            RotateExtBmp(DrkBild&,neubreitx&,neuhochy&,neubreit&,neuhoch&,DrkKlein&,0,0,90,0)
            let Bx& = Bx& * Faktor%
            let By& = By& * Faktor%
            CopyExtBmp(%hdc,Bx&,By&,neuhoch&,neubreit&,DrkBild&,0,0,0)

        else

            SizeExtBmp (%hdc,Bx&,By&,neubreit&,neuhoch&,BQuelle&,0,0,BBreite&,BHoehe&,0)

        endif

    endif

    FreeAllExtBmps()

='./../../funktionsreferenzen/XProfan/ENDPROC/'>ENDPROC

 
11.02.2007  
 




Frank
Abbing
Bitte una lauffähigen Demoquellcode puesto. Hier kann Yo nirgendwo erkennen, como dein Ausdruck vostatten ir se.
Auch el Angabe deiner Profanversion wäre de Vorteil.

Apéndice de IF:
[tb]minimalbeispiel[/tb]
 
11.02.2007  
 




Bernd
Krauss
¡Hola Franco,
vielen Dank para el rasche Antwort. Hier es el lauffähige Ver código fuente, entschuldige Por favor,, Yo kam no früher dazu. Voraussetzung Es el Prospeed.dll y una Bild nombre "alf.jpg" en el Programmverzeichnis. Yo habe el de el Prospeed.dll como jpg-Expediente genommen.
Wenn al Programa startet, sieht uno, el Bild se korrekt al Bildschirm adecuado, se aber a klein y a falscher Punto gedruckt. Der Parámetro drk% en el Procedimiento Bildanz juega en diesem Programmbeispiel ningún papel. Tal vez el Procedimiento en efecto viel a kompliziert programmiert. Lo se una JPG-Expediente a uno best. Punto en una Rechteck eingepasst y en 90 Grad gedreht voluntad.
Profanversion es XProfan 10
Viele Grüße
Bernd Krauss
Hier also el lauffähige Ver código fuente:
KompilierenMarcaSeparación
declare neudll&, Antw%
DEF LoadExtImage(1) !"ProSpeed","LoadExtImage"
DEF SizeExtBmp(11) !"ProSpeed","SizeExtBmp"
DEF CreateExtBmp(3) !"ProSpeed","CreateExtBmp"
DEF RotateExtBmp(10) !"ProSpeed","RotateExtBmp"
DEF CopyExtBmp(9) !"ProSpeed","CopyExtBmp"
DEF GetBmpWidth(1) !"ProSpeed","GetBmpWidth"
DEF GetBmpHeight(1) !"ProSpeed","GetBmpHeight"
DEF FreeAllExtBmps(0) !"ProSpeed","FreeAllExtBmps"
neudll&=usedll("ProSpeed.dll")

Proc BildAnz

    parameters BDatei$, Bx&, By&, BreitX&, BreitY&, Drk%
    declare BQuelle&, BBreite&, BHoehe&, neubreit&, neuhoch&
    declare neubreitx&, neuhochy&, DrkKlein&, DrkBild&
    BQuelle&=LoadExtImage(addr(BDatei$))

    ifnot equ(BQuelle&,0)

        BBreite& = GetBmpWidth(BQuelle&)                          Breite und Hoehe des Bilds
        BHoehe& = GetBmpHeight(BQuelle&)                          ermitteln
        Es wird geprüft, ob an Breite oder Höhe angepasst wird

        if gt(BBreite& / BHoehe& , BreitX& / BreitY&)

            neubreit& = BreitX&
            neuhoch& = BHoehe&/BBreite&*neubreit&

        else

            neuhoch& = BreitY&
            neubreit& = BBreite&/BHoehe&*neuhoch&

        endif

        DrkKlein&=CreateExtBmp(%HDC,neubreit&,neuhoch&)
        SizeExtBmp (DrkKlein&,0,0,neubreit&,neuhoch&,BQuelle&,0,0,BBreite&,BHoehe&,0)
        DrkBild&=CreateExtBmp(%HDC,neuhoch&,neubreit&)
        Die automatische Zentrierung beim Rotieren ausgleichen

        If neubreit&>=neuhoch&

            neubreitx&=(neubreit&-neuhoch&)/2

        Else

            neubreitx&=(neuhoch&-neubreit&)/2

        EndIf

        neuhochy&=neubreitx&
        Case neubreit&>neuhoch&:neubreitx&=-neubreitx&
        Case neuhoch&>neubreit&:neuhochy&=-neuhochy&
        RotateExtBmp(DrkBild&,neubreitx&,neuhochy&,neubreit&,neuhoch&,DrkKlein&,0,0,90,0)
        CopyExtBmp(%hdc,Bx&,By&,neuhoch&,neubreit&,DrkBild&,0,0,0)

    endif

    FreeAllExtBmps()

endproc

cls
rectangle 100 , 100  , 300, 400
BildAnz "alf.jpg" , 100 , 100 , 300, 200 , 0
let Antw%=messagebox ("Willst du drucken?", "Druck?", 4)

if Antw%=6

    cls
    startprint
    rectangle 100 , 100  , 300, 400
    BildAnz "alf.jpg" , 100 , 100 , 300, 200 , 1
    endprint

endif

FreeAllExtBmps()
freedll
eudll& end
 
13.02.2007  
 




Frank
Abbing
Ach sí, Yo sehe, qué du media. Erklären kann Yo dir pero no. Wird una interne Profano-Drucker-HDC Geschichte ser.
ProSpeeds CopyExtBmp() es sí sólo una Aufruf el API BitBlt(). Und el funktioniert auch falso, habs ausgetestet y esta allen Schnickschnack weggelassen. Lo liegt also no a el Dll.
Wenn Roland que aquí liessst, se él sicher qué dazu sagen puede. Ansonsten musst du ihn veces direkt kontakten.
 
13.02.2007  
 




RGH
¡Hola,

API-Características leitet XProfan grundsätzlich unverändert más. API-Características voluntad also grundsätzlich "auf propio Gefahr" hin verwandt.
Beim Drucken es a beachten, daß el Druckseite en el Normalfall en el Faktor 10 größer es, como el Koordinaten- y Größenangaben en XProfan. Alle Koordinatenangaben y Größenangaben beim Drucken mittels el API son por lo tanto en esta Faktor a multiplizieren.
(Ab XProfan 10 puede ser el Faktor mittels uno Conjunto-Función einstellen y mittels uno Get-Función auslesen. Näheres siehe Ayuda.)

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
14.02.2007  
 




Bernd
Krauss
Hola Roland,
vielen Dank para rápido Info. Mit el Faktor 10 es. Der "Absturz", de el Yo anfangs schrieb ha se aufgeklärt: Mit el Faktor 10 dauert el Berechnung para el Druck en mi alten P III 600 así largo, dass Yo siempre pensamiento, el PC sei abgestürzt. Que el Conjunto y Get-Función Yo allerdings trotz Studium el XProfan 10 Ayuda no verstanden. Welche Conjunto-Función se Yo nehmen y welcher Syntax? Und con welcher Get Función se Yo qué auslesen? Yo habe simplemente el Koordinaten Bx& y By& y neubreit& y neuhoch& con 10 multipliziert. Ist el auch ok?
Viele Grüße
Bernd
 
15.02.2007  
 




RGH
Bernd Krauss
Que el Conjunto y Get-Función Yo allerdings trotz Studium el XProfan 10 Ayuda no verstanden. Welche Conjunto-Función se Yo nehmen y welcher Syntax? Und con welcher Get Función se Yo qué auslesen?


Großes SORRY! Como Yo genau esta Conjunto-Función en el Ayuda vergessen:

Mit @Conjunto("PrintRes", N%) puede ser el Faktor verändern. Wennn Usted para N% valor 1 nimmst, debería lo zwar trabajo, sin daß Usted el Faktor en Deinem Programa einbaust, pero la Ausdruck dürfte entonces algo grobkörnig ser, como sólo etwa 80dpi (20 cm = ca. 8 Zoll. 640 Punkte en 8 Zoll macht eben 80 Punkte/Zoll) gedruckt se. El Druckauflösung entspricht entonces also etwa 3 Punkte/mm. Si el reicht, etwa para Farb-Fotos, es el el einfachste Solución. En Liniengrafiken könnten entonces allerdings Treppchen a sehen ser. (In el Standardeinstellung con Faktor 10 entspricht el Druckauflösung etwa 800dpi ... en como Treppchen a sehen, braucht lo ya una Laserdrucker, dünne diaogonale Linien y una gute Lupe.)

Mit @Get("PrintRes") kann el eingestellte Valor ausgelesen voluntad.

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
15.02.2007  
 




RGH
Großes SORRY! Como Yo genau esta Conjunto-Función en el Ayuda vergessen:

 
15.02.2007  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.403 Views

Untitledvor 0 min.
Erasmus.Herold08.05.2016
Peter Max Müller27.03.2013

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie