Setting printer paper size in VB.Net for rdlc repo

2019-04-10 06:19发布

问题:

I built a report with a landscape orientation using VB.net 2010 and made the ​​size 16.5 cm * 8.25 cm

When you print the report directly shows the size of the page A4 !!!

I need to provide the printer with a custom paper size. How can I make my report have a custom paper size?

Link: http://www.uploadmb.com/dw.php?id=1379145264

回答1:

In order to change the default format (A4) of a report, you must change the report properties to accept a custom paper size.

Set PaperSize By GUI

Step 1

Open your report and right click (on the gray pane, not the report itself) to select "Report Properties"

Step 2

Choose Landscape for your orientation and select a custom paper size. Specify your width and height as well.


Programmatically Set PaperSize

  1. Paper Size should be the size in inches multiplied by 100
  2. Width: The width of the paper, in hundredths of an inch
  3. Height: The height of the paper, in hundredths of an inch

Here is the code I used to programmatically set a custom paper size to my report

ReportViewer1.PrinterSettings.DefaultPageSettings.PaperSize = new PaperSize("Custom", 650, 325)

**Note: Don't forget, you may need to use the code ReportViewer1.RefreshReport() if it doesn't work.*

For more information, visit MSDN's PaperSettings.PaperSize page



回答2:

Dim page As XmlElement = AddElement(reportSection, "Page", Nothing)

        'landscape
        AddElement(page, "PageHeight", "8.5in")
        AddElement(page, "PageWidth", "11in")