All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jpedal.examples.viewer.gui.popups.ExtractPDFPagesNup Maven / Gradle / Ivy

The newest version!
/*
 * ===========================================
 * Java Pdf Extraction Decoding Access Library
 * ===========================================
 *
 * Project Info:  http://www.idrsolutions.com
 * Help section for developers at http://www.idrsolutions.com/java-pdf-library-support/
 *
 * (C) Copyright 1997-2013, IDRsolutions and Contributors.
 *
 * 	This file is part of JPedal
 *
     This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) 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
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


 *
 * ---------------
 * ExtractPDFPagesNup.java
 * ---------------
 */
package org.jpedal.examples.viewer.gui.popups;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;

import javax.print.attribute.standard.PageRanges;
import javax.swing.ButtonGroup;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JSpinner;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.SpinnerNumberModel;

import org.jpedal.examples.viewer.Viewer;
import org.jpedal.examples.viewer.utils.ItextFunctions;
import org.jpedal.utils.LogWriter;
import org.jpedal.utils.Messages;

public class ExtractPDFPagesNup extends Save {

	private static final long serialVersionUID = -2276797947489369291L;
	JLabel OutputLabel = new JLabel();
	ButtonGroup buttonGroup1 = new ButtonGroup();
	ButtonGroup buttonGroup2 = new ButtonGroup();

	JToggleButton jToggleButton3 = new JToggleButton();

	JToggleButton jToggleButton2 = new JToggleButton();

	JRadioButton printAll = new JRadioButton();
	JRadioButton printCurrent = new JRadioButton();
	JRadioButton printPages = new JRadioButton();

	JTextField pagesBox = new JTextField();

	ArrayList papers;
	ArrayList paperDimensions;

	private javax.swing.JSpinner horizontalSpacing;
	private javax.swing.JLabel jLabel1;
	private javax.swing.JLabel jLabel11;
	private javax.swing.JLabel jLabel12;
	private javax.swing.JLabel jLabel13;
	private javax.swing.JLabel jLabel14;
	private javax.swing.JLabel jLabel15;
	private javax.swing.JLabel jLabel16;
	private javax.swing.JLabel jLabel17;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JLabel jLabel3;
	private javax.swing.JLabel jLabel4;
	private javax.swing.JSpinner layoutColumns;
	private javax.swing.JSpinner layoutRows;
	private javax.swing.JComboBox layouts;
	private javax.swing.JSpinner leftRightMargins;
	private javax.swing.JSpinner scaleHeight;
	private javax.swing.JCheckBox pageProportionally;
	private javax.swing.JComboBox pageScalings;
	private javax.swing.JSpinner scaleWidth;
	private javax.swing.JSpinner paperHeight;
	private javax.swing.JComboBox paperOrientation;
	private javax.swing.JComboBox paperSizes;
	private javax.swing.JSpinner paperWidth;
	private javax.swing.JSpinner topBottomMargins;
	private javax.swing.JSpinner verticalSpacing;

	private JComboBox repeat = new JComboBox();
	private JSpinner copies = new JSpinner(new SpinnerNumberModel(1, 1, 100, 1));
	private JComboBox ordering = new JComboBox();
	private JComboBox doubleSided = new JComboBox();

	public ExtractPDFPagesNup(String root_dir, int end_page, int currentPage) {
		super(root_dir, end_page, currentPage);

		genertatePaperSizes();

		try {
			jbInit();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}

	// /////////////////////////////////////////////////////////////////////
	/**
	 * get root dir
	 */
	final public int[] getPages() {

		int[] pagesToExport = null;

		if (this.printAll.isSelected()) {
			pagesToExport = new int[this.end_page];
			for (int i = 0; i < this.end_page; i++)
				pagesToExport[i] = i + 1;

		}
		else
			if (this.printCurrent.isSelected()) {
				pagesToExport = new int[1];
				pagesToExport[0] = this.currentPage;

			}
			else
				if (this.printPages.isSelected()) {

					try {
						PageRanges pages = new PageRanges(this.pagesBox.getText());

						int count = 0;
						int i = -1;
						while ((i = pages.next(i)) != -1)
							count++;

						pagesToExport = new int[count];
						count = 0;
						i = -1;
						while ((i = pages.next(i)) != -1) {
							if (i > this.end_page) {
								if (Viewer.showMessages) JOptionPane.showMessageDialog(this,
										Messages.getMessage("PdfViewerText.Page") + ' ' + i + ' ' + Messages.getMessage("PdfViewerError.OutOfBounds")
												+ ' ' + Messages.getMessage("PdfViewerText.PageCount") + ' ' + this.end_page);
								return null;
							}
							pagesToExport[count] = i;
							count++;
						}
					}
					catch (IllegalArgumentException e) {
						LogWriter.writeLog("Exception " + e + " in exporting pdfs");
						if (Viewer.showMessages) JOptionPane.showMessageDialog(this, Messages.getMessage("PdfViewerError.InvalidSyntax"));
					}
				}

		return pagesToExport;
	}

	public float getHorizontalSpacing() {
		return Float.parseFloat(this.horizontalSpacing.getValue().toString());
	}

	public float getVerticalSpacing() {
		return Float.parseFloat(this.verticalSpacing.getValue().toString());
	}

	public float getLeftRightMargin() {
		return Float.parseFloat(this.leftRightMargins.getValue().toString());
	}

	public float getTopBottomMargin() {
		return Float.parseFloat(this.topBottomMargins.getValue().toString());
	}

	public int getPaperWidth() {
		return Integer.parseInt(this.paperWidth.getValue().toString());
	}

	public int getPaperHeight() {
		return Integer.parseInt(this.paperHeight.getValue().toString());
	}

	public String getPaperOrientation() {
		return (String) this.paperOrientation.getSelectedItem();
	}

	public String getScale() {
		return (String) this.pageScalings.getSelectedItem();
	}

	public boolean isScaleProportional() {
		return this.pageProportionally.isSelected();
	}

	public float getScaleWidth() {
		return Float.parseFloat(this.scaleWidth.getValue().toString());
	}

	public float getScaleHeight() {
		return Float.parseFloat(this.scaleHeight.getValue().toString());
	}

	public String getSelectedLayout() {
		return (String) this.layouts.getSelectedItem();
	}

	public int getLayoutRows() {
		return Integer.parseInt(this.layoutRows.getValue().toString());
	}

	public int getLayoutColumns() {
		return Integer.parseInt(this.layoutColumns.getValue().toString());
	}

	public int getRepeat() {
		if (this.repeat.getSelectedIndex() == 0) return ItextFunctions.REPEAT_NONE;

		if (this.repeat.getSelectedIndex() == 1) return ItextFunctions.REPEAT_AUTO;

		return ItextFunctions.REPEAT_SPECIFIED;
	}

	public int getCopies() {
		return Integer.parseInt(this.copies.getValue().toString());
	}

	public int getPageOrdering() {
		if (this.ordering.getSelectedIndex() == 0) return ItextFunctions.ORDER_ACROSS;

		if (this.ordering.getSelectedIndex() == 1) return ItextFunctions.ORDER_DOWN;

		return ItextFunctions.ORDER_STACK;
	}

	public String getDoubleSided() {
		return (String) this.doubleSided.getSelectedItem();
	}

	private void jbInit() throws Exception {
		this.rootFilesLabel.setBounds(new Rectangle(13, 13, 400, 26));
		this.rootDir.setBounds(new Rectangle(20, 40, 232, 23));
		this.changeButton.setBounds(new Rectangle(272, 40, 101, 23));

		JLabel textAndFont = new JLabel(Messages.getMessage("PdfViewerNUPLabel.PaperSize"));
		textAndFont.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
		textAndFont.setDisplayedMnemonic('0');
		textAndFont.setBounds(new Rectangle(13, 70, 220, 26));

		JLabel scale = new JLabel(Messages.getMessage("PdfViewerNUPLabel.Scale"));
		scale.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
		scale.setDisplayedMnemonic('0');
		scale.setBounds(new Rectangle(13, 140, 220, 26));

		JLabel layout = new JLabel(Messages.getMessage("PdfViewerNUPLabel.Layout"));
		layout.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
		layout.setDisplayedMnemonic('0');
		layout.setBounds(new Rectangle(13, 210, 220, 26));

		JLabel margins = new JLabel(Messages.getMessage("PdfViewerNUPLabel.Margins"));
		margins.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
		margins.setDisplayedMnemonic('0');
		margins.setBounds(new Rectangle(13, 280, 220, 26));

		JLabel pageSettings = new JLabel(Messages.getMessage("PdfViewerNUPLabel.PageSettings"));
		pageSettings.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
		pageSettings.setDisplayedMnemonic('0');
		pageSettings.setBounds(new Rectangle(13, 400, 220, 26));

		this.layouts = new javax.swing.JComboBox();
		this.paperOrientation = new javax.swing.JComboBox();
		this.pageScalings = new javax.swing.JComboBox();
		this.jLabel1 = new javax.swing.JLabel();
		this.jLabel2 = new javax.swing.JLabel();
		this.topBottomMargins = new javax.swing.JSpinner(new SpinnerNumberModel(18.00, -720.00, 720.00, 1.00));
		this.leftRightMargins = new javax.swing.JSpinner(new SpinnerNumberModel(18.00, -720.00, 720.00, 1.00));
		this.pageProportionally = new javax.swing.JCheckBox();
		this.paperSizes = new javax.swing.JComboBox();
		this.jLabel11 = new javax.swing.JLabel();
		this.jLabel3 = new javax.swing.JLabel();
		this.jLabel4 = new javax.swing.JLabel();
		this.paperWidth = new javax.swing.JSpinner();
		this.paperHeight = new javax.swing.JSpinner();
		this.scaleWidth = new javax.swing.JSpinner(new SpinnerNumberModel(396.00, 72.00, 5184.00, 1.00));
		this.scaleHeight = new javax.swing.JSpinner(new SpinnerNumberModel(612.00, 72.00, 5184.00, 1.00));
		this.jLabel12 = new javax.swing.JLabel();
		this.jLabel13 = new javax.swing.JLabel();
		this.layoutRows = new JSpinner(new SpinnerNumberModel(1, 1, 100, 1));
		this.layoutColumns = new JSpinner(new SpinnerNumberModel(2, 1, 100, 1));
		this.jLabel14 = new javax.swing.JLabel();
		this.verticalSpacing = new javax.swing.JSpinner(new SpinnerNumberModel(7.20, 0.00, 720.00, 1.00));
		this.horizontalSpacing = new javax.swing.JSpinner(new SpinnerNumberModel(7.20, 0.00, 720.00, 1.00));
		this.jLabel16 = new javax.swing.JLabel();
		this.jLabel15 = new javax.swing.JLabel();
		this.jLabel17 = new javax.swing.JLabel();

		this.layouts.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "2 Up", "4 Up", "8 Up",
				Messages.getMessage("PdfViewerNUPOption.Custom") }));
		this.layouts.setSelectedIndex(0);
		this.layouts.addItemListener(new java.awt.event.ItemListener() {
			@Override
			public void itemStateChanged(java.awt.event.ItemEvent evt) {
				layoutsSelectionChanged(evt);
			}
		});

		this.copies.setEnabled(false);

		this.repeat.setModel(new javax.swing.DefaultComboBoxModel(new String[] { Messages.getMessage("PdfViewerNUPOption.None"),
				Messages.getMessage("PdfViewerNUPOption.Auto"), Messages.getMessage("PdfViewerNUPOption.Specified") }));
		this.repeat.addItemListener(new java.awt.event.ItemListener() {
			@Override
			public void itemStateChanged(java.awt.event.ItemEvent evt) {
				if (ExtractPDFPagesNup.this.repeat.getSelectedItem().equals("None")) {
					ExtractPDFPagesNup.this.copies.getModel().setValue(1);
					ExtractPDFPagesNup.this.copies.setEnabled(false);
				}
				else
					if (ExtractPDFPagesNup.this.repeat.getSelectedItem().equals("Auto")) {
						int rows = Integer.parseInt(ExtractPDFPagesNup.this.layoutRows.getValue().toString());
						int coloumns = Integer.parseInt(ExtractPDFPagesNup.this.layoutColumns.getValue().toString());

						ExtractPDFPagesNup.this.copies.getModel().setValue(rows * coloumns);
						ExtractPDFPagesNup.this.copies.setEnabled(false);
					}
					else
						if (ExtractPDFPagesNup.this.repeat.getSelectedItem().equals("Specified")) {
							ExtractPDFPagesNup.this.copies.setEnabled(true);
						}
			}
		});

		this.ordering.setModel(new javax.swing.DefaultComboBoxModel(new String[] { Messages.getMessage("PdfViewerNUPOption.Across"),
				Messages.getMessage("PdfViewerNUPOption.Down") }));

		this.doubleSided.setModel(new javax.swing.DefaultComboBoxModel(new String[] { Messages.getMessage("PdfViewerNUPOption.None"),
				Messages.getMessage("PdfViewerNUPOption.Front&Back"), Messages.getMessage("PdfViewerNUPOption.Gutter") }));

		this.layouts.setBounds(20, 240, 110, 23);

		this.paperOrientation.setModel(new javax.swing.DefaultComboBoxModel(new String[] { Messages.getMessage("PdfViewerNUPOption.Auto"),
				Messages.getMessage("PdfViewerNUPOption.Portrait"), Messages.getMessage("PdfViewerNUPOption.Landscape") }));
		this.paperOrientation.setBounds(510, 100, 90, 23);

		this.pageScalings.setModel(new javax.swing.DefaultComboBoxModel(new String[] { Messages.getMessage("PdfViewerNUPOption.OriginalSize"),
				Messages.getMessage("PdfViewerNUPOption.Auto"), Messages.getMessage("PdfViewerNUPOption.Specified") }));
		this.pageScalings.setSelectedIndex(1);
		this.pageScalings.addItemListener(new java.awt.event.ItemListener() {
			@Override
			public void itemStateChanged(java.awt.event.ItemEvent evt) {
				scalingSelectionChanged(evt);
			}
		});

		this.pageScalings.setBounds(20, 170, 200, 23);

		this.jLabel1.setText(Messages.getMessage("PdfViewerNUPLabel.Width"));
		this.jLabel1.setBounds(148, 100, 50, 15);

		this.jLabel2.setText(Messages.getMessage("PdfViewerNUPLabel.Height"));
		this.jLabel2.setBounds(278, 100, 50, 15);

		this.pageProportionally.setSelected(true);
		this.pageProportionally.setText(Messages.getMessage("PdfViewerNUPText.Proportionally"));
		this.pageProportionally.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
		this.pageProportionally.setMargin(new java.awt.Insets(0, 0, 0, 0));
		this.pageProportionally.setBounds(240, 170, 120, 15);

		this.paperSizes.setModel(new javax.swing.DefaultComboBoxModel(getPaperSizes()));
		this.paperSizes.addItemListener(new java.awt.event.ItemListener() {
			@Override
			public void itemStateChanged(java.awt.event.ItemEvent evt) {
				pageSelectionChanged(evt);
			}
		});

		this.paperSizes.setBounds(20, 100, 110, 23);

		this.jLabel11.setText(Messages.getMessage("PdfViewerNUPLabel.Orientation"));
		this.jLabel11.setBounds(408, 100, 130, 15);

		this.jLabel3.setText(Messages.getMessage("PdfViewerNUPLabel.Width"));
		this.jLabel3.setBounds(370, 170, 50, 15);

		this.jLabel4.setText(Messages.getMessage("PdfViewerNUPLabel.Height"));
		this.jLabel4.setBounds(500, 170, 50, 15);

		this.paperWidth.setEnabled(false);
		this.paperWidth.setBounds(195, 100, 70, 23);

		this.paperHeight.setEnabled(false);
		this.paperHeight.setBounds(318, 100, 70, 23);

		this.scaleWidth.setEnabled(false);
		this.scaleWidth.setBounds(420, 170, 70, 23);

		this.scaleHeight.setEnabled(false);
		this.scaleHeight.setBounds(540, 170, 70, 23);

		this.jLabel12.setText(Messages.getMessage("PdfViewerNUPLabel.Rows"));
		this.jLabel12.setBounds(148, 240, 50, 15);

		this.jLabel13.setText(Messages.getMessage("PdfViewerNUPLabel.Columns"));
		this.jLabel13.setBounds(278, 240, 50, 15);

		this.layoutRows.setEnabled(false);
		this.layoutRows.setBounds(195, 240, 70, 23);

		this.layoutColumns.setEnabled(false);
		this.layoutColumns.setBounds(328, 240, 70, 23);

		this.jLabel14.setText(Messages.getMessage("PdfViewerNUPLabel.Left&RightMargins"));
		this.jLabel14.setBounds(22, 326, 200, 15);
		this.leftRightMargins.setBounds(210, 322, 70, 23);

		this.jLabel16.setText(Messages.getMessage("PdfViewerNUPLabel.HorizontalSpacing"));
		this.jLabel16.setBounds(22, 356, 180, 15);
		this.horizontalSpacing.setBounds(210, 354, 70, 23);

		this.jLabel15.setText(Messages.getMessage("PdfViewerNUPLabel.Top&BottomMargins"));
		this.jLabel15.setBounds(300, 326, 180, 15);
		this.topBottomMargins.setBounds(480, 320, 70, 23);

		this.jLabel17.setText(Messages.getMessage("PdfViewerNUPLabel.VerticalSpacing"));
		this.jLabel17.setBounds(300, 356, 180, 15);
		this.verticalSpacing.setBounds(480, 354, 70, 23);

		JLabel jLabel18 = new JLabel(Messages.getMessage("PdfViewerNUPLabel.Repeat"));
		jLabel18.setBounds(22, 446, 130, 15);
		this.repeat.setBounds(140, 442, 100, 23);

		JLabel jLabel20 = new JLabel(Messages.getMessage("PdfViewerNUPLabel.Copies"));
		jLabel20.setBounds(300, 446, 130, 15);
		this.ordering.setBounds(140, 474, 130, 23);

		JLabel jLabel19 = new JLabel(Messages.getMessage("PdfViewerNUPLabel.PageOrdering"));
		jLabel19.setBounds(22, 474, 130, 15);
		this.copies.setBounds(420, 440, 70, 23);

		JLabel jLabel21 = new JLabel(Messages.getMessage("PdfViewerNUPLabel.DoubleSided"));
		jLabel21.setBounds(300, 476, 130, 15);
		this.doubleSided.setBounds(420, 474, 100, 23);

		this.pageRangeLabel.setText(Messages.getMessage("PdfViewerNUPLabel.PageRange"));
		this.pageRangeLabel.setBounds(new Rectangle(13, 530, 199, 26));

		this.printAll.setText(Messages.getMessage("PdfViewerNUPOption.All"));
		this.printAll.setBounds(new Rectangle(23, 560, 75, 22));
		this.printAll.setSelected(true);

		this.printCurrent.setText(Messages.getMessage("PdfViewerNUPOption.CurrentPage"));
		this.printCurrent.setBounds(new Rectangle(23, 580, 100, 22));
		// printCurrent.setSelected(true);

		this.printPages.setText(Messages.getMessage("PdfViewerNUPOption.Pages"));
		this.printPages.setBounds(new Rectangle(23, 600, 70, 22));

		this.pagesBox.setBounds(new Rectangle(95, 602, 230, 22));
		this.pagesBox.addKeyListener(new KeyListener() {
			@Override
			public void keyPressed(KeyEvent arg0) {}

			@Override
			public void keyReleased(KeyEvent arg0) {
				if (ExtractPDFPagesNup.this.pagesBox.getText().length() == 0) ExtractPDFPagesNup.this.printCurrent.setSelected(true);
				else ExtractPDFPagesNup.this.printPages.setSelected(true);

			}

			@Override
			public void keyTyped(KeyEvent arg0) {}
		});

		JTextArea pagesInfo = new JTextArea(Messages.getMessage("PdfViewerMessage.PageNumberOrRangeLong"));
		pagesInfo.setBounds(new Rectangle(23, 640, 600, 40));
		pagesInfo.setOpaque(false);

		pageSelectionChanged(null);

		this.add(this.rootDir, null);
		this.add(this.rootFilesLabel, null);
		this.add(this.changeButton, null);

		this.add(this.printAll, null);
		this.add(this.printCurrent, null);

		this.add(scale);
		this.add(layout);
		this.add(margins);

		this.add(this.layoutColumns);
		this.add(this.layoutRows);
		this.add(this.layouts);
		this.add(this.leftRightMargins);
		this.add(this.scaleHeight);
		this.add(this.pageProportionally);
		this.add(this.pageScalings);
		this.add(this.scaleWidth);
		this.add(this.paperHeight);
		this.add(this.paperOrientation);
		this.add(this.paperSizes);
		this.add(this.paperWidth);
		this.add(this.topBottomMargins);
		this.add(this.verticalSpacing);

		this.add(this.horizontalSpacing);
		this.add(this.jLabel1);
		this.add(this.jLabel2);
		this.add(this.jLabel3);
		this.add(this.jLabel4);
		this.add(this.jLabel11);
		this.add(this.jLabel12);
		this.add(this.jLabel13);
		this.add(this.jLabel14);
		this.add(this.jLabel15);
		this.add(this.jLabel16);
		this.add(this.jLabel17);

		this.add(pageSettings);
		this.add(jLabel18);
		this.add(this.repeat);
		this.add(jLabel19);
		this.add(this.copies);
		this.add(jLabel20);
		this.add(this.ordering);
		// this.add(jLabel21);
		// this.add(doubleSided);

		this.add(this.printPages, null);
		this.add(this.pagesBox, null);
		this.add(pagesInfo, null);

		this.add(textAndFont, null);
		this.add(this.changeButton, null);
		this.add(this.pageRangeLabel, null);

		this.add(this.jToggleButton2, null);
		this.add(this.jToggleButton3, null);

		this.buttonGroup1.add(this.printAll);
		this.buttonGroup1.add(this.printCurrent);
		this.buttonGroup1.add(this.printPages);
	}

	private void layoutsSelectionChanged(java.awt.event.ItemEvent evt) {
		String layout = (String) this.layouts.getSelectedItem();

		if (layout.equals("2 Up")) {
			this.layoutRows.getModel().setValue(1);
			this.layoutColumns.getModel().setValue(2);

			this.layoutRows.setEnabled(false);
			this.layoutColumns.setEnabled(false);
		}
		else
			if (layout.equals("4 Up")) {
				this.layoutRows.getModel().setValue(2);
				this.layoutColumns.getModel().setValue(2);

				this.layoutRows.setEnabled(false);
				this.layoutColumns.setEnabled(false);

			}
			else
				if (layout.equals("8 Up")) {
					this.layoutRows.getModel().setValue(2);
					this.layoutColumns.getModel().setValue(4);

					this.layoutRows.setEnabled(false);
					this.layoutColumns.setEnabled(false);

				}
				else
					if (layout.equals("Custom")) {
						this.layoutRows.setEnabled(true);
						this.layoutColumns.setEnabled(true);
					}
	}

	private void scalingSelectionChanged(java.awt.event.ItemEvent evt) {
		String scaling = (String) this.pageScalings.getSelectedItem();

		if (scaling.equals("Use Original Size")) {
			this.pageProportionally.setEnabled(false);
			this.scaleWidth.setEnabled(false);
			this.scaleHeight.setEnabled(false);
		}
		else
			if (scaling.equals("Auto")) {
				this.pageProportionally.setEnabled(true);
				this.scaleWidth.setEnabled(false);
				this.scaleHeight.setEnabled(false);
			}
			else
				if (scaling.equals("Specified")) {
					this.pageProportionally.setEnabled(true);
					this.scaleWidth.setEnabled(true);
					this.scaleHeight.setEnabled(true);
				}
	}

	private void pageSelectionChanged(java.awt.event.ItemEvent evt) {

		Dimension d = getPaperDimension((String) this.paperSizes.getSelectedItem());

		if (d == null) {
			this.paperWidth.setEnabled(true);
			this.paperHeight.setEnabled(true);
		}
		else {
			this.paperWidth.setEnabled(false);
			this.paperHeight.setEnabled(false);

			this.paperWidth.setValue(d.width);
			this.paperHeight.setValue(d.height);
		}
	}

	private void genertatePaperSizes() {
		this.papers = new ArrayList();
		this.paperDimensions = new ArrayList();

		this.papers.add(Messages.getMessage("PdfViewerNUPComboBoxOption.Letter"));
		this.papers.add(Messages.getMessage("PdfViewerNUPComboBoxOption.Legal"));
		this.papers.add("11x17");
		this.papers.add(Messages.getMessage("PdfViewerNUPComboBoxOption.Ledger"));
		this.papers.add("A2");
		this.papers.add("A3");
		this.papers.add("A4");
		this.papers.add("A5");
		this.papers.add("B3");
		this.papers.add("B4");
		this.papers.add("B5");
		this.papers.add(Messages.getMessage("PdfViewerNUPComboBoxOption.Folio"));
		this.papers.add(Messages.getMessage("PdfViewerNUPComboBoxOption.Status"));
		this.papers.add(Messages.getMessage("PdfViewerNUPComboBoxOption.Note"));
		this.papers.add(Messages.getMessage("PdfViewerNUPComboBoxOption.Custom"));

		this.paperDimensions.add(new Dimension(612, 792));
		this.paperDimensions.add(new Dimension(612, 1008));
		this.paperDimensions.add(new Dimension(792, 1224));
		this.paperDimensions.add(new Dimension(1224, 792));
		this.paperDimensions.add(new Dimension(1190, 1684));
		this.paperDimensions.add(new Dimension(842, 1190));
		this.paperDimensions.add(new Dimension(595, 842));
		this.paperDimensions.add(new Dimension(421, 595));
		this.paperDimensions.add(new Dimension(1002, 1418));
		this.paperDimensions.add(new Dimension(709, 1002));
		this.paperDimensions.add(new Dimension(501, 709));
		this.paperDimensions.add(new Dimension(612, 936));
		this.paperDimensions.add(new Dimension(396, 612));
		this.paperDimensions.add(new Dimension(540, 720));

		// paperSizesMap.put("Custom",null);
	}

	private String[] getPaperSizes() {
		return this.papers.toArray(new String[this.papers.size()]);
	}

	private Dimension getPaperDimension(String paper) {
		if (paper.equals("Custom")) return null;

		return this.paperDimensions.get(this.papers.indexOf(paper));
	}

	@Override
	final public Dimension getPreferredSize() {
		return new Dimension(620, 680);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy