📄 tiffdialog.java
字号:
// $Id: TiffDialog.java,v 1.13 2006/08/03 13:02:15 mike Exp $package org.faceless.pdf2.viewer;import org.faceless.pdf2.PDFParser;import java.awt.Dimension;import java.awt.Frame;import java.awt.GridBagConstraints;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.image.ColorModel;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import javax.swing.InputVerifier;import javax.swing.JComboBox;import javax.swing.JComponent;import javax.swing.JFileChooser;import javax.swing.JOptionPane;/** * Dialog to get details for the "Save As TIFF" option * * <p><i> * This code is copyright the Big Faceless Organization. You're welcome to * use, modify and distribute it in any form in your own projects, provided * those projects continue to make use of the Big Faceless PDF library. * </i></p> */class TiffDialog extends java.awt.Dialog{ /** * Creates new form TiffDialog */ public TiffDialog(java.awt.Frame parent, final PDFViewport vp, boolean modal) { super(parent, modal); this.vp = vp; this.frame = parent; java.awt.GridBagConstraints gridBagConstraints; propPanel = new javax.swing.JPanel(); lblCm = new javax.swing.JLabel(); lblDpi = new javax.swing.JLabel(); String[] cs = { "Device RGB", "Device Gray", "Black & White"}; cbColorSpace = new javax.swing.JComboBox(cs); cbColorSpace.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { final JComboBox cb = (JComboBox) evt.getSource(); String name = (String) cb.getSelectedItem(); if (name.equals("Device RGB")) { cm = ColorModel.getRGBdefault(); } else if (name.equals("Device Gray")) { cm = PDFParser.GRAYSCALE; } else if (name.equals("Black & White")) { cm = PDFParser.BLACKANDWHITE; } // else if (name.equals("Device CMYK")) { // System.out.println("NOT SUPPORTED"); // } } }); txtdpi = new javax.swing.JFormattedTextField(); txtdpi.setText("72"); txtdpi.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { validateDPI(); saveAsTIFF(); } } }); txtdpi.setInputVerifier(new InputVerifier() { public boolean verify(JComponent input) { return validateDPI(); } }); btnSave = new javax.swing.JButton(); btnSave.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { saveAsTIFF(); } }); btnCancel = new javax.swing.JButton(); btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { dispose(); } }); setLayout(new java.awt.GridBagLayout()); setSize(new Dimension(200,155)); setBackground(new java.awt.Color(224, 223, 227)); setModal(true); setResizable(false); setTitle("PDF to Tiff"); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); propPanel.setLayout(new java.awt.GridBagLayout()); propPanel.setBorder(new javax.swing.border.TitledBorder("Options")); lblCm.setText("Color Model:"); lblCm.setVerticalAlignment(javax.swing.SwingConstants.TOP); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0); propPanel.add(lblCm, gridBagConstraints); lblDpi.setText("DPI:"); lblDpi.setVerticalAlignment(javax.swing.SwingConstants.TOP); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.ipadx = 38; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(45, 10, 0, 0); propPanel.add(lblDpi, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.ipadx = 20; gridBagConstraints.ipady = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 10, 0, 0); propPanel.add(cbColorSpace, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.ipadx = 25; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(40, 10, 0, 0); propPanel.add(txtdpi, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.weightx = 1.0; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); add(propPanel, gridBagConstraints); btnSave.setText("Save as..."); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.ipady = 25; gridBagConstraints.weightx = 0.3; gridBagConstraints.weighty = 1.0; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 3, 3, 3); add(btnSave, gridBagConstraints); btnCancel.setText("Cancel"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.ipady = 25; gridBagConstraints.weightx = 0.7; gridBagConstraints.weighty = 1.0; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 3, 3); add(btnCancel, gridBagConstraints); setLocationRelativeTo(parent); setVisible(true); pack(); } /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); dispose(); } private void saveAsTIFF() { JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showSaveDialog(frame); if (returnVal == JFileChooser.APPROVE_OPTION) { final File file = chooser.getSelectedFile(); try { dispose(); vp.writeAsTIFF(new FileOutputStream(file), dpi,cm); } catch (FileNotFoundException e) { ErrorInfo.displayThrowable(e, "File Not Found Error", this); } } } /** * checks that the dpi is valid */ private boolean validateDPI() { boolean valid = true; try { String s = txtdpi.getText(); s = s.trim(); dpi = Integer.parseInt(s); if (dpi<1 || dpi>300) throw new Exception(); } catch (Exception x) { valid = false; txtdpi.setText("72"); JOptionPane.showMessageDialog(frame, "Invalid DPI, please enter a number between 1 and 300.", "BFO ERROR", JOptionPane.ERROR_MESSAGE); txtdpi.selectAll(); } return valid; } // Variables declaration private int dpi = 72; private ColorModel cm = ColorModel.getRGBdefault(); private final Frame frame; private PDFViewport vp; private javax.swing.JButton btnSave; private javax.swing.JButton btnCancel; private javax.swing.JComboBox cbColorSpace; private javax.swing.JFormattedTextField txtdpi; private javax.swing.JLabel lblCm; private javax.swing.JLabel lblDpi; private javax.swing.JPanel propPanel;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -