Français
Forum

Druck avec Prospeed.DLL ist trop petite

 

Bernd
Krauss
Salut,
chez einem Ausdruck avec Prospeed.DLL ist qui Druck viel trop petite. si je um den facteur 10 erhöhe, ensuite klappt es avec manchen Druckern, sur anderen calculateur stürzt il ab. Am Bildschirm wird cela Bild richtig angezeigt. ici ist qui Code pour qui Procédure. Es wird cela Bild = BDatei$ qui Koordinaten = Bx&, By& qui gewünschte Breite et Hauteur = BreitX&, BreitY& et si gedruckt volonté soll = Drk% übermittelt.
peux mir quelqu'un aider?
KompilierenMarqueSéparation
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
s'il te plaît une lauffähigen Demoquellcode posten. ici peux je nirgendwo erkennen, comment dein Ausdruck vostatten aller soll.
aussi qui Angabe deiner Profanversion wäre de Vorteil.

Nachtrag de iF:
[tb]minimalbeispiel[/tb]
 
11.02.2007  
 




Bernd
Krauss
allô Frank,
vielen Dank pour qui rasche Antwort. ici ist qui lauffähige Voir le texte source, entschuldige s'il te plaît, je kam pas früher en supplément. Voraussetzung ist qui Prospeed.dll et un Bild nommé "alf.jpg" im Programmverzeichnis. j'ai cela de qui Prospeed.dll comme jpg-Dossier pris.
si on cela Programme startet, sieht on, cela Bild wird korrekt am Bildschirm angezeigt, wird mais trop petite et à falscher Stelle gedruckt. qui paramètre drk% dans qui Procédure Bildanz écoutes dans diesem Programmbeispiel aucun rôle. Peut-être qui Procédure oui aussi viel trop compliqué programmiert. Es soll une JPG-Dossier à einer best. Stelle dans un Rechteck eingepasst et um 90 Grad gedreht volonté.
Profanversion ist XProfan 10
Viele Grüße
Bernd Krauss
ici alors qui lauffähige Voir le texte source:
KompilierenMarqueSéparation
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
ah oui, je vois, quoi du meinst. expliquer peux je es dir mais pas. Wird une interne Profan-Drucker-HDC Geschichte son.
ProSpeeds CopyExtBmp() ist oui seulement un Aufruf qui API BitBlt(). et qui funktioniert aussi faux, habs ausgetestet et dabei allen Schnickschnack weggelassen. Es liegt alors pas à qui Dll.
si Roland que voici liessst, wird il sûrement quoi en supplément dire peut. Ansonsten musst du ihn la fois direct kontakten.
 
13.02.2007  
 




RGH
Salut,

API-Funktionen leitet XProfan grundsätzlich inchangé plus. API-Funktionen volonté alors grundsätzlich "auf eigene Gefahr" hin verwandt.
Beim Drucken ist trop tenir compte de, qui qui Druckseite im Normalfall um den facteur 10 größer ist, comme qui Koordinaten- et Größenangaben dans XProfan. Alle Koordinatenangaben et Größenangaben beim Drucken mittels qui API sommes daher um cette facteur trop multiplizieren.
(Ab XProfan 10 peux on den facteur mittels einer Set-Funktion einstellen et mittels einer Get-Funktion auslesen. Particularités siehe Aider.)

Salut
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
allô Roland,
vielen Dank pour qui schnelle Info. avec dem facteur 10 ca va. qui "Absturz", de dem je anfangs schrieb hat sich aufgeklärt: avec dem facteur 10 dauert qui Berechnung pour den Druck sur meinem alten P III 600 so longtemps, dass je toujours dachte, qui PC sei abgestürzt. Que le Set et Get-Funktion habe je allerdings trotz Studium qui XProfan 10 Aider pas verstanden. quelle Set-Funktion soll je prendre et quel Syntax? et avec quel Get Funktion soll je quoi auslesen? j'ai simple qui Koordinaten Bx& et By& et neubreit& et neuhoch& avec 10 multipliziert. Ist cela aussi ok?
Viele Grüße
Bernd
 
15.02.2007  
 




RGH
Bernd Krauss
Que le Set et Get-Funktion habe je allerdings trotz Studium qui XProfan 10 Aider pas verstanden. quelle Set-Funktion soll je prendre et quel Syntax? et avec quel Get Funktion soll je quoi auslesen?


Großes SORRY! là habe je oui c'est ca cet Set-Funktion dans qui Aider oublier qc:

avec @Set("PrintRes", N%) peux on den facteur verändern. Wennn Du pour N% la valeur 1 prends, sollte es zwar marcher, sans qui Du den facteur dans Deinem Programme einbaust, mais qui Ausdruck pourrait ensuite quelque chose grobkörnig son, là seulement avec etwa 80dpi (20 cm = ca. 8 douane. 640 Punkte sur 8 douane pouvoir plan 80 Punkte/douane) gedruckt wird. qui Druckauflösung entspricht ensuite alors etwa 3 Punkte/mm. si cela reicht, etwa pour Farb-Fotos, ist cela qui einfachste Solution. chez Liniengrafiken könnten ensuite allerdings Treppchen trop voyons son. (dans qui Standardeinstellung avec facteur 10 entspricht qui Druckauflösung etwa 800dpi ... um là Treppchen trop voyons, braucht es déjà une Laserdrucker, dünne diaogonale Linien et une gute Lupe.)

avec @Get("PrintRes") peux qui eingestellte Wert ausgelesen volonté.

Salut
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! là habe je oui c'est ca cet Set-Funktion dans qui Aider oublier qc:

 
15.02.2007  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.419 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie