?
Solved

How to set default paper size

Posted on 1998-11-08
6
Medium Priority
?
541 Views
Last Modified: 2010-04-30
How to set the default paper size in VB6 and Win NT 4.0 SP3.
The default paper size in the default printer is Letter and I want to change it in A4.
0
Comment
Question by:zutphen
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 2

Expert Comment

by:schild
ID: 1443857
You set it ussing the folowing command:

Printer.PaperSize = <Paper Size Constant>


Constant              Value      Description
_____________________________________________
vbPRPSLetter              1      Letter, 8 1/2 x 11 in.
vbPRPSLetterSmall      2      Letter Small, 8 1/2 x 11 in.
vbPRPSTabloid              3      Tabloid, 11 x 17 in.
vbPRPSLedger              4      Ledger, 17 x 11 in.
vbPRPSLegal              5      Legal, 8 1/2 x 14 in.
vbPRPSStatement              6      Statement, 5 1/2 x 8 1/2 in.
vbPRPSExecutive              7      Executive, 7 1/2 x 10 1/2 in.
vbPRPSA3      8      A3, 297 x 420 mm
vbPRPSA4      9      A4, 210 x 297 mm
vbPRPSA4Small      10      A4 Small, 210 x 297 mm
vbPRPSA5      11      A5, 148 x 210 mm
vbPRPSB4      12      B4, 250 x 354 mm
vbPRPSB5      13      B5, 182 x 257 mm
vbPRPSFolio      14      Folio, 8 1/2 x 13 in.
vbPRPSQuarto      15      Quarto, 215 x 275 mm
vbPRPS10x14      16      10 x 14 in.
vbPRPS11x17      17      11 x 17 in.
vbPRPSNote      18      Note, 8 1/2 x 11 in.
vbPRPSEnv9      19      Envelope #9, 3 7/8 x 8 7/8 in.
vbPRPSEnv10      20      Envelope #10, 4 1/8 x 9 1/2 in.
vbPRPSEnv11      21      Envelope #11, 4 1/2 x 10 3/8 in.
vbPRPSEnv12      22      Envelope #12, 4 1/2 x 11 in.
vbPRPSEnv14      23      Envelope #14, 5 x 11 1/2 in.
vbPRPSCSheet      24      C size sheet
vbPRPSDSheet      25      D size sheet
vbPRPSESheet      26      E size sheet
vbPRPSEnvDL      27      Envelope DL, 110 x 220 mm
vbPRPSEnvC3      29      Envelope C3, 324 x 458 mm
vbPRPSEnvC4      30      Envelope C4, 229 x 324 mm
vbPRPSEnvC5      28      Envelope C5, 162 x 229 mm
vbPRPSEnvC6      31      Envelope C6, 114 x 162 mm
vbPRPSEnvC65      32      Envelope C65, 114 x 229 mm
vbPRPSEnvB4      33      Envelope B4, 250 x 353 mm
vbPRPSEnvB5      34      Envelope B5, 176 x 250 mm
vbPRPSEnvB6      35      Envelope B6, 176 x 125 mm
vbPRPSEnvItaly      36      Envelope, 110 x 230 mm
vbPRPSEnvMonarch      37      Envelope Monarch, 3 7/8 x 7 1/2 in.
vbPRPSEnvPersonal      38      Envelope, 3 5/8 x 6 1/2 in.
vbPRPSFanfoldUS              39      U.S. Standard Fanfold, 14 7/8 x 11 in.
vbPRPSFanfoldStdGerman      40      German Standard Fanfold, 8 1/2 x 12 in.
vbPRPSFanfoldLglGerman      41      German Legal Fanfold, 8 1/2 x 13 in.
 
vbPRPSUser      256      User-defined

0
 

Author Comment

by:zutphen
ID: 1443858
I want to change the properties of the printer. My problem is, that if user are logged in to our network the default paper-size is letter. If they want to print , they must first change the paper-size to A4. I want to make a little program that automatic change the paper-size of the default printer to a4.Proberly I must change the registry, but I can't find they right key(s) and value(s).

0
 
LVL 2

Expert Comment

by:schild
ID: 1443859
You set it ussing the folowing command:

Printer.PaperSize = <Paper Size Constant>


Constant              Value      Description
_____________________________________________
vbPRPSLetter              1      Letter, 8 1/2 x 11 in.
vbPRPSLetterSmall      2      Letter Small, 8 1/2 x 11 in.
vbPRPSTabloid              3      Tabloid, 11 x 17 in.
vbPRPSLedger              4      Ledger, 17 x 11 in.
vbPRPSLegal              5      Legal, 8 1/2 x 14 in.
vbPRPSStatement              6      Statement, 5 1/2 x 8 1/2 in.
vbPRPSExecutive              7      Executive, 7 1/2 x 10 1/2 in.
vbPRPSA3      8      A3, 297 x 420 mm
vbPRPSA4      9      A4, 210 x 297 mm
vbPRPSA4Small      10      A4 Small, 210 x 297 mm
vbPRPSA5      11      A5, 148 x 210 mm
vbPRPSB4      12      B4, 250 x 354 mm
vbPRPSB5      13      B5, 182 x 257 mm
vbPRPSFolio      14      Folio, 8 1/2 x 13 in.
vbPRPSQuarto      15      Quarto, 215 x 275 mm
vbPRPS10x14      16      10 x 14 in.
vbPRPS11x17      17      11 x 17 in.
vbPRPSNote      18      Note, 8 1/2 x 11 in.
vbPRPSEnv9      19      Envelope #9, 3 7/8 x 8 7/8 in.
vbPRPSEnv10      20      Envelope #10, 4 1/8 x 9 1/2 in.
vbPRPSEnv11      21      Envelope #11, 4 1/2 x 10 3/8 in.
vbPRPSEnv12      22      Envelope #12, 4 1/2 x 11 in.
vbPRPSEnv14      23      Envelope #14, 5 x 11 1/2 in.
vbPRPSCSheet      24      C size sheet
vbPRPSDSheet      25      D size sheet
vbPRPSESheet      26      E size sheet
vbPRPSEnvDL      27      Envelope DL, 110 x 220 mm
vbPRPSEnvC3      29      Envelope C3, 324 x 458 mm
vbPRPSEnvC4      30      Envelope C4, 229 x 324 mm
vbPRPSEnvC5      28      Envelope C5, 162 x 229 mm
vbPRPSEnvC6      31      Envelope C6, 114 x 162 mm
vbPRPSEnvC65      32      Envelope C65, 114 x 229 mm
vbPRPSEnvB4      33      Envelope B4, 250 x 353 mm
vbPRPSEnvB5      34      Envelope B5, 176 x 250 mm
vbPRPSEnvB6      35      Envelope B6, 176 x 125 mm
vbPRPSEnvItaly      36      Envelope, 110 x 230 mm
vbPRPSEnvMonarch      37      Envelope Monarch, 3 7/8 x 7 1/2 in.
vbPRPSEnvPersonal      38      Envelope, 3 5/8 x 6 1/2 in.
vbPRPSFanfoldUS              39      U.S. Standard Fanfold, 14 7/8 x 11 in.
vbPRPSFanfoldStdGerman      40      German Standard Fanfold, 8 1/2 x 12 in.
vbPRPSFanfoldLglGerman      41      German Legal Fanfold, 8 1/2 x 13 in.
 
vbPRPSUser      256      User-defined

0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Author Comment

by:zutphen
ID: 1443860
Your answer is true with the current project, if the project has ended the default value is back to letter. It doesn't change the default printer, it must change a registry-key under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers. I want to change the default property under settings/printer/default printer.

0
 

Author Comment

by:zutphen
ID: 1443861
Adjusted points to 150
0
 
LVL 2

Accepted Solution

by:
Poddy earned 450 total points
ID: 1443862
You need to use the API

  Dim lngRet As Long
  Dim lngHPrinter As Long
  Dim lngDPMode As Long
  Dim dvmPaper As DEVMODE
  Dim dvmRet As DEVMODE
  On Error GoTo Err_SetPaper
    lngRet = OpenPrinter(pstrPrinterName, lngHPrinter, 0&)
      If lngRet = 0 Then
      Else
        lngDPMode = DM_MODIFY + DM_UPDATE
        dvmPaper.dmFields = DM_PAPERSIZE
        dvmPaper.dmPaperSize = pintPaperSize
        dvmPaper.dmSize = Len(dvmPaper)
        dvmRet.dmSize = Len(dvmRet)
        lngRet = DocumentProperties(0&, lngHPrinter, vbNullChar, dvmRet, dvmPaper, lngDPMode)
        ClosePrinter lngHPrinter
      End If
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Suggested Courses
Course of the Month12 days, 17 hours left to enroll

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question