Jump to content

How do I select Letter instead of A4?


Recommended Posts

By: K.C. Baltz - kcbaltz

How do I select Letter instead of A4?

2002-11-26 12:57

When I try to print my report, the printer thinks it's in A4 format. How can I switch it to Letter?

 

Someone mentioned the 'printservice' example and that looks like it might work, but I can't find a way to get it to print something other than a file. I.e. I'd like to pass it a JasperPrint object so I don't have to have a temporary file.

 

 

By: Albert L. - looks

RE: How do I select Letter instead of A4?

2002-11-27 01:28

You need to change the pageWidth and pageHeight attributes. The default is for A4 setting.

 

To safe retyping, this java source is taken from iText, and should have all common values to use for these attributes.

 

/*

* $Id: PageSize.java,v 1.26 2002/06/20 13:30:24 blowagie Exp $

* $Name: $

*

* Copyright 1999, 2000, 2001, 2002 by Bruno Lowagie.

*

* The contents of this file are subject to the Mozilla Public License Version 1.1

* (the "License"); you may not use this file except in compliance with the License.

* You may obtain a copy of the License at http://www.mozilla.org/MPL/

*

* Software distributed under the License is distributed on an "AS IS" basis,

* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License

* for the specific language governing rights and limitations under the License.

*

* The Original Code is 'iText, a free JAVA-PDF library'.

*

* The Initial Developer of the Original Code is Bruno Lowagie. Portions created by

* the Initial Developer are Copyright © 1999, 2000, 2001, 2002 by Bruno Lowagie.

* All Rights Reserved.

* Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer

* are Copyright © 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.

*

* Contributor(s): all the names of the contributors are added in the source code

* where applicable.

*

* Alternatively, the contents of this file may be used under the terms of the

* LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the

* provisions of LGPL are applicable instead of those above. If you wish to

* allow use of your version of this file only under the terms of the LGPL

* License and not to allow others to use your version of this file under

* the MPL, indicate your decision by deleting the provisions above and

* replace them with the notice and other provisions required by the LGPL.

* If you do not delete the provisions above, a recipient may use your version

* of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.

*

* This library is free software; you can redistribute it and/or modify it

* under the terms of the MPL as stated above or under the terms of the GNU

* Library General Public License as published by the Free Software Foundation;

* either version 2 of the License, or any later version.

*

* This library is distributed in the hope that it will be useful, but WITHOUT

* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

* FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more

* details.

*

* If you didn't download this code from the following link, you should check if

* you aren't using an obsolete version:

* http://www.lowagie.com/iText/

*/

 

package com.lowagie.text;

 

/**

* The <CODE>PageSize</CODE>-object contains a number of rectangles representing the most common papersizes.

*

* @see Rectangle

*/

 

public class PageSize {

 

// membervariables

 

/** This is the letter format */

public static final Rectangle LETTER = new Rectangle(612,792);

 

/** This is the note format */

public static final Rectangle NOTE = new Rectangle(540,720);

 

/** This is the legal format */

public static final Rectangle LEGAL = new Rectangle(612,1008);

 

/** This is the a0 format */

public static final Rectangle A0 = new Rectangle(2380,3368);

 

/** This is the a1 format */

public static final Rectangle A1 = new Rectangle(1684,2380);

 

/** This is the a2 format */

public static final Rectangle A2 = new Rectangle(1190,1684);

 

/** This is the a3 format */

public static final Rectangle A3 = new Rectangle(842,1190);

 

/** This is the a4 format */

public static final Rectangle A4 = new Rectangle(595,842);

 

/** This is the a5 format */

public static final Rectangle A5 = new Rectangle(421,595);

 

/** This is the a6 format */

public static final Rectangle A6 = new Rectangle(297,421);

 

/** This is the a7 format */

public static final Rectangle A7 = new Rectangle(210,297);

 

/** This is the a8 format */

public static final Rectangle A8 = new Rectangle(148,210);

 

/** This is the a9 format */

public static final Rectangle A9 = new Rectangle(105,148);

 

/** This is the a10 format */

public static final Rectangle A10 = new Rectangle(74,105);

 

/** This is the b0 format */

public static final Rectangle B0 = new Rectangle(2836,4008);

 

/** This is the b1 format */

public static final Rectangle B1 = new Rectangle(2004,2836);

 

/** This is the b2 format */

public static final Rectangle B2 = new Rectangle(1418,2004);

 

/** This is the b3 format */

public static final Rectangle B3 = new Rectangle(1002,1418);

 

/** This is the b4 format */

public static final Rectangle B4 = new Rectangle(709,1002);

 

/** This is the b5 format */

public static final Rectangle B5 = new Rectangle(501,709);

 

/** This is the archE format */

public static final Rectangle ARCH_E = new Rectangle(2592,3456);

 

/** This is the archD format */

public static final Rectangle ARCH_D = new Rectangle(1728,2592);

 

/** This is the archC format */

public static final Rectangle ARCH_C = new Rectangle(1296,1728);

 

/** This is the archB format */

public static final Rectangle ARCH_B = new Rectangle(864,1296);

 

/** This is the archA format */

public static final Rectangle ARCH_A = new Rectangle(648,864);

 

/** This is the flsa format */

public static final Rectangle FLSA = new Rectangle(612,936);

 

/** This is the flse format */

public static final Rectangle FLSE = new Rectangle(612,936);

 

/** This is the halfletter format */

public static final Rectangle HALFLETTER = new Rectangle(396,612);

 

/** This is the 11x17 format */

public static final Rectangle _11X17 = new Rectangle(792,1224);

 

/** This is the ledger format */

public static final Rectangle LEDGER = new Rectangle(1224,792);

}

 

 

By: K.C. Baltz - kcbaltz

RE: How do I select Letter instead of A4?

2002-11-27 10:16

Thanks, that did it.

 

I'm surprised that I had to set the H, W programmatically rather than changing the attributes in my XML file. I tried changing pageHeight and pageWidth in <jasperReport> first, but that didn't help. It was only when I used JasperPrint.setPageHeight/Width that it worked.

 

 

By: Albert L. - looks

RE: How do I select Letter instead of A4?

2002-11-27 11:23

I think you need not set the H and W programmatically.

 

Did you re-compile the XML after setting the pageHeigth and pageWidth in <jasperReport> ?

 

 

 

 

By: K.C. Baltz - kcbaltz

RE: How do I select Letter instead of A4?

2002-11-27 11:42

I did recompile. I just tested it again. Here's how I'm printing:

InputStream is;

...

 

JasperPrint print = JasperFillManager.fillReport( is, parameters, new StatGenJRDataSource( jTable1.getModel() ) );

_viewer = new JasperViewer( print );

_viewer.show();

 

I click the print button in the JasperViewer to print the page.

 

 

By: Albert L. - looks

RE: How do I select Letter instead of A4?

2002-11-27 23:49

Try this empty XML page, changing the pageWidth / pageHeight and run the test program. You should see the blank page size difference. Maybe set pageHeight of 800, then 400. I'm just using an empty data source for the example.

 

-----------------myreport.xml-----------------

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="myreport" columnCount="1" pageWidth="595" pageHeight="800" orientation="Portrait" whenNoDataType="NoPages" columnWidth="555" columnSpacing="0" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="40" isTitleNewPage="false" isSummaryNewPage="false">

<title>

<band height="0" />

</title>

<pageHeader>

<band height="0" />

</pageHeader>

<columnHeader>

<band height="0" />

</columnHeader>

<detail>

<band height="0" />

</detail>

<columnFooter>

<band height="0" />

</columnFooter>

<pageFooter>

<band height="0" />

</pageFooter>

<summary>

<band height="0" />

</summary>

</jasperReport>

 

---------TestReport.java------------

 

import javax.swing.*;

import java.awt.event.*;

import dori.jasper.engine.*;

import dori.jasper.view.*;

 

public class TestReport {

 

String report = "myreport";

 

public static void main( String[] para ) {

 

System.setProperty(

"org.xml.sax.driver",

"org.apache.xerces.parsers.SAXParser" );

 

TestReport test = new TestReport();

if ( test.compile()) {

if ( test.fill()) {

test.view( true );

}

}

}

 

public boolean compile() {

boolean pass = true;

System.out.println( "compile" );

try {

JasperCompileManager.compileReportToFile( report + ".xml" );

} catch ( Exception x ) {

pass = false;

System.out.println( x );

} finally {

return pass;

}

}

 

public boolean fill() {

boolean pass = true;

System.out.println( "fill" );

 

try {

JasperFillManager.fillReportToFile(

report + ".jasper", null, new JREmptyDataSource());

}

catch (JRException e) {

pass = false;

e.printStackTrace();

}

catch (Exception e) {

pass = false;

e.printStackTrace();

} finally {

return pass;

}

}

 

/**

* pass true to call System.exit() when window closed.

* pass false, to continue swing operation after window closed.

*/

public boolean view( boolean sysExit ) {

boolean pass = true;

System.out.println( "view" );

 

try {

 

JFrame frame = new JFrame();

if ( sysExit ) {

frame.addWindowListener( new WindowAdapter() {

public void windowClosing( WindowEvent e ) {

System.exit(0);

}

});

}

 

JRViewer view = new JRViewer( report + ".jrprint", false );

frame.getContentPane().add( view );

frame.pack();

frame.setLocationRelativeTo( null );

frame.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );

frame.setVisible( true );

 

} catch ( Exception x ) {

pass = false;

System.out.println( x );

} finally {

return pass;

}

}

}

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...