Avatar billede domino1977 Nybegynder
13. november 2002 - 13:20 Der er 59 kommentarer og
1 løsning

Tilpas til A4 papir ved udskrivning!

Jeg har denne kode her til udskrivning:

Printer.Orientation = vbPRORLandscape
Printer.PaintPicture LoadPicture("C:\TEST.GIF"), 0, 0
Printer.EndDoc

Men hvoedan får jeg den til at tilpasse sig så den kan være på et stykke A4 papir???
Avatar billede lovgret Nybegynder
13. november 2002 - 13:25 #1
Hvad med
Printer.PaperSize =  vbPRPSA4
Avatar billede domino1977 Nybegynder
13. november 2002 - 13:35 #2
Det sker der ikke noget ved!
Avatar billede domino1977 Nybegynder
13. november 2002 - 14:05 #3
Den vil bare ikke.....
Hverken med scale eller noget!!
Avatar billede ocp Nybegynder
13. november 2002 - 14:23 #4
LoadPicture("C:\test.jpg",vbLPCustom,,Printer.width,Printer.height)
Avatar billede martinlind Nybegynder
13. november 2002 - 14:27 #5
Brug WindowsMetaFile ( WMF ), det kan skale det du har lavet på det.
Avatar billede domino1977 Nybegynder
13. november 2002 - 14:37 #6
Printer.Orientation = vbPRORLandscape
Printer.PaintPicture  LoadPicture("C:\test.gif",vbLPCustom,,Printer.width,Printer.height) Printer.EndDoc
Avatar billede domino1977 Nybegynder
13. november 2002 - 14:38 #7
OCP -> Hvordan skal jeg ellers sætte det ind i min sætning???
Avatar billede domino1977 Nybegynder
13. november 2002 - 14:44 #8
Hvis jeg skriver:

Printer.Orientation = vbPRORLandscape
Printer.PaintPicture LoadPicture("C:\test.gif"), Printer.Width, Printer.Height
Printer.EndDoc

Så bliver mit papir bare blankt!
Avatar billede domino1977 Nybegynder
13. november 2002 - 14:44 #9
Hvad er WMF???
Avatar billede ocp Nybegynder
13. november 2002 - 14:47 #10
Du har jo ikke skrevet det jeg foreslog...
Avatar billede ocp Nybegynder
13. november 2002 - 14:48 #11
Sorry:

Printer.PaintPicture LoadPicture("C:\test.jpg",vbLPCustom,,Printer.width,Printer.height)
Avatar billede ocp Nybegynder
13. november 2002 - 14:50 #12
HUSK der er to ,,
Avatar billede domino1977 Nybegynder
13. november 2002 - 15:12 #13
Den stopper her:

.PaintPicture

Og siger "Argument not optional"
Avatar billede domino1977 Nybegynder
13. november 2002 - 15:24 #14
Nogle gode ideer??
Avatar billede ocp Nybegynder
13. november 2002 - 15:38 #15
Printer.PaintPicture LoadPicture("C:\test.jpg",vbLPCustom,,Printer.width,Printer.height),0,0
Avatar billede domino1977 Nybegynder
13. november 2002 - 15:43 #16
Desværre den skriver STADIG for stort! kan man ikke sige at den må MAX skrive width = 21 cm og height = 29 cm???
Avatar billede domino1977 Nybegynder
13. november 2002 - 15:44 #17
Der kommer kunca 1/4 del ud af tegningen!
Avatar billede domino1977 Nybegynder
13. november 2002 - 15:46 #18
Jeg har en anden udprintning, det er godt nok nogle andre filer som kræver at de bliver åbnet op i en bestemt viewer... lidt ligesom PDF'er bliver åbnet op i Acrobar Reader... derefter bliver de skrevet ud og programmer lukker helt selv igen!

Kan man ikke sige til VB at den skal åbne filen i Photoeditor og printe din ud så den passer ind på siden og lukke programmet igen????
Avatar billede ocp Nybegynder
13. november 2002 - 15:55 #19
Det er fordi printer.height og width altid er angivet i TWIPS. NUUUUU skulle det virke:

Printer.PaintPicture LoadPicture("C:\test.jpg",vbLPCustom,,Printer.Width / Printer.TwipsPerPixelX, Printer.Height / Printer.TwipsPerPixelX),0,0
Avatar billede mikker Nybegynder
13. november 2002 - 16:45 #20
OCP>> HMmm var ellers ude i noget med noget picturebox, men det her virker jo fortræffeligt.

- Mikker
Avatar billede ocp Nybegynder
13. november 2002 - 19:55 #21
Ups... ERstat lige den sidste TwipsPerPixelX med TwipsPerPixelY :)
Avatar billede domino1977 Nybegynder
14. november 2002 - 08:17 #22
Nixen virker stadig ikke......
Avatar billede domino1977 Nybegynder
14. november 2002 - 09:02 #23
Det er sådan her min kode skal se ud???

Printer.PaintPicture LoadPicture("C:\test.gif", vbLPCustom, , Printer.Width / Printer.TwipsPerPixelX, Printer.Height / Printer.TwipsPerPixelY), 0, 0

Jeg kan bare ikke få den til at virke!!!!

Er den nogle rererancer jeg skal slå til? Eller????
Avatar billede domino1977 Nybegynder
14. november 2002 - 09:03 #24
Eller skal jeg sætte nogle mål ind???
Avatar billede ocp Nybegynder
14. november 2002 - 09:41 #25
Det er præcis sådan koden skal se ud. Hvordan virker det ikke?
Avatar billede ocp Nybegynder
14. november 2002 - 09:54 #26
Dette fungerer perfekt hos mig:

    Dim strFil As String
    strFil = "C:\Documents and Settings\Test\My Documents\My Pictures\antenna9.jpg"

    Printer.Orientation = vbPRORLandscape
    Printer.PaintPicture LoadPicture(strFil, vbLPCustom, , Printer.Width / Printer.TwipsPerPixelX, Printer.Height / Printer.TwipsPerPixelY), 0, 0
    Printer.EndDoc
Avatar billede domino1977 Nybegynder
14. november 2002 - 09:54 #27
Min gif der bliver skrevet alt for stort!!!
Avatar billede ocp Nybegynder
14. november 2002 - 10:01 #28
NÅH - Den skal kun tilpasse hvis billedet er for stort?

Så gør du således:

    Dim strFil As String
    Dim pic As Image
    strFil = "C:\Documents and Settings\Test\My Documents\My Pictures\antenna9.jpg"

    Image = LoadPicture(strFil)

    Printer.Orientation = vbPRORLandscape
    If Image.Height > Printer.Height Or Image.Width > Printer.Width Then
        Printer.PaintPicture LoadPicture(strFil, vbLPCustom, , Printer.Width / Printer.TwipsPerPixelX, Printer.Height / Printer.TwipsPerPixelY), 0, 0
    Else
        Printer.PaintPicture LoadPicture(strFil), 0, 0
    End If
    Printer.EndDoc
Avatar billede ocp Nybegynder
14. november 2002 - 10:02 #29
Der var lige en fejl:

    Dim strFil As String
    Dim pic As Image
    strFil = "C:\Documents and Settings\Test\My Documents\My Pictures\antenna9.jpg"

    Set pic = LoadPicture(strFil)

    Printer.Orientation = vbPRORLandscape
    If Image.Height > Printer.Height Or Image.Width > Printer.Width Then
        Printer.PaintPicture LoadPicture(strFil, vbLPCustom, , Printer.Width / Printer.TwipsPerPixelX, Printer.Height / Printer.TwipsPerPixelY), 0, 0
    Else
        Printer.PaintPicture LoadPicture(strFil), 0, 0
    End If
    Printer.EndDoc
Avatar billede domino1977 Nybegynder
14. november 2002 - 10:18 #30
Den siger type mismatch:

Dim strFil As String
Dim pic As Image

strFil = ("C:\test.gif")
Set pic = LoadPicture(strFil)

Printer.Orientation = vbPRORLandscape
If Image.Height > Printer.Height Or Image.Width > Printer.Width Then
        Printer.PaintPicture LoadPicture(strFil, vbLPCustom, , Printer.Width / Printer.TwipsPerPixelX, Printer.Height / Printer.TwipsPerPixelY), 0, 0
    Else
        Printer.PaintPicture LoadPicture(strFil), 0, 0
    End If
    Printer.EndDoc
Avatar billede domino1977 Nybegynder
14. november 2002 - 10:33 #31
Og stopper her:
Set pic = LoadPicture(strFil)
Avatar billede martin_moth Mester
14. november 2002 - 11:23 #32
prøv strFil = "C:\test.gif" og ikke strFil = ("C:\test.gif")
Avatar billede ocp Nybegynder
14. november 2002 - 11:24 #33
Hvilken fejlbesked?
Avatar billede domino1977 Nybegynder
14. november 2002 - 11:25 #34
Har prøvet... samme besked!
Avatar billede martin_moth Mester
14. november 2002 - 11:27 #35
Har du tjekket at test.gif rent faktisk er et billede?
Avatar billede domino1977 Nybegynder
14. november 2002 - 11:33 #36
JA!..... ikke noget problem der!
Avatar billede domino1977 Nybegynder
14. november 2002 - 11:35 #37
Hvis jeg skriver:

strFil = "C:\test.gif"
Set Image = LoadPicture(strFil)

så kommer den og siger:

Run-time error '383':
'Image' property is read-only
Avatar billede domino1977 Nybegynder
14. november 2002 - 11:36 #38
Og så marker den:
Set Image = LoadPicture(strFil)
Avatar billede ocp Nybegynder
14. november 2002 - 11:39 #39
Suk, gisp... Nu har jeg for en gangs skyld TESTET det jeg havde foreslået. Det kræver at du lægger en skjult picturebox (picture1) på din form:

Dim strFil As String
Dim pic As PictureBox

strFil = ("C:\test.gif")

Set pic = Picture1

pic.Picture = LoadPicture(strFil)

Printer.Orientation = vbPRORLandscape
If Image.Height > Printer.Height Or Image.Width > Printer.Width Then
        Printer.PaintPicture LoadPicture(strFil, vbLPCustom, , Printer.Width / Printer.TwipsPerPixelX, Printer.Height / Printer.TwipsPerPixelY), 0, 0
    Else
        Printer.PaintPicture LoadPicture(strFil), 0, 0
    End If
    Printer.EndDoc
End Sub
Avatar billede domino1977 Nybegynder
14. november 2002 - 12:05 #40
*GGG*

Virker stadig ikke!!
Avatar billede ocp Nybegynder
14. november 2002 - 12:10 #41
Hvad er der nu galt? Det virker i hvert fald hos mig!
Avatar billede domino1977 Nybegynder
14. november 2002 - 12:21 #42
Den kommer bare ud i for stor størrelse!

Den kan ikke være på parpiret!
Avatar billede ocp Nybegynder
14. november 2002 - 13:21 #43
Det var da utroligt! Det tilpasser sig perfekt til min printer.

Prøv lige dette:

prøv Dim strFil As String
Dim pic As PictureBox

strFil = ("C:\test.gif")

Set pic = Picture1

pic.Picture = LoadPicture(strFil)

Printer.Orientation = vbPRORLandscape
If Image.Height > Printer.Height Or Image.Width > Printer.Width Then
        Printer.PaintPicture LoadPicture(strFil, vbLPCustom, , (Printer.Width - 100)/ Printer.TwipsPerPixelX, (Printer.Height-100) / Printer.TwipsPerPixelY), 0, 0
    Else
        Printer.PaintPicture LoadPicture(strFil), 0, 0
    End If
    Printer.EndDoc
End Sub
Avatar billede martin_moth Mester
14. november 2002 - 13:26 #44
Kan det være fordi Printer.Width returnerer en forkert værdi? Prøv lige at fortæl hvad Printer.Width og height returnerer...
Avatar billede domino1977 Nybegynder
14. november 2002 - 13:27 #45
Nixen... det samme!!
Avatar billede ocp Nybegynder
14. november 2002 - 13:30 #46
Bare for at kontrollere det: Kan du prøve med en jpg-fil?
Avatar billede domino1977 Nybegynder
14. november 2002 - 13:30 #47
Printer.Height = 11904
Printer.Width = 16834
Image.Width = 27093

Skal jeg prøve at sende billedet til dig????
Avatar billede domino1977 Nybegynder
14. november 2002 - 13:35 #48
Nu har jeg osse prøvet med en JPG... det er det samme!
Avatar billede ocp Nybegynder
14. november 2002 - 13:38 #49
Ja, prøv at sende det.
mailto:anonymanonym715@hotmail.com
Avatar billede ocp Nybegynder
14. november 2002 - 14:03 #50
Yes: Send på anonymanonym715@hotmail.com
Avatar billede domino1977 Nybegynder
14. november 2002 - 14:11 #51
Er sendt!
Avatar billede domino1977 Nybegynder
14. november 2002 - 14:13 #52
Kunne du ikke prøve at sende den form du har der virker tilbage til mig?? Så kan jeg lige se om jeg kan få det til at virke her????
Avatar billede ocp Nybegynder
14. november 2002 - 14:48 #53
Din fil virker sjovt nok heller ikke hos mig.
Avatar billede ocp Nybegynder
14. november 2002 - 14:55 #54
Ta daaaaaa.........

Dim strFil As String
Dim pic As Picture
strFil = ("C:\Documents and Settings\TGY.EC\My Documents\My Pictures\test.jpg")

Set pic = LoadPicture(strFil)

Printer.Orientation = vbPRORLandscape
If Image.Height > Printer.Height Or Image.Width > Printer.Width Then
    Printer.PaintPicture pic, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight
Else
    Printer.PaintPicture pic, 0, 0
End If
Printer.EndDoc
Avatar billede ocp Nybegynder
14. november 2002 - 14:56 #55
Og slet så bare den picturebox på formen :o)
Avatar billede domino1977 Nybegynder
14. november 2002 - 14:57 #56
He he !!!
Avatar billede domino1977 Nybegynder
14. november 2002 - 14:58 #57
Du får sgu 50 for det!!!

Takker!
Avatar billede ocp Nybegynder
14. november 2002 - 14:58 #58
Og med en lille - men vigtig - rettelse:

Dim strFil As String
Dim pic As Picture
strFil = ("C:\Documents and Settings\TGY.EC\My Documents\My Pictures\test.jpg")

Set pic = LoadPicture(strFil)

Printer.Orientation = vbPRORLandscape
If pic.Height > Printer.ScaleHeight Or pic.Width > Printer.ScaleWidth Then
    Printer.PaintPicture pic, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight
Else
    Printer.PaintPicture pic, 0, 0
End If
Printer.EndDoc
Avatar billede domino1977 Nybegynder
14. november 2002 - 15:02 #59
Hvad er foreskellen????
Avatar billede ocp Nybegynder
14. november 2002 - 15:17 #60
Jeg benytter den korrekte variabel og de korrekte properties til at kontroller om billedet kan være på en side.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester