aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/lowagie/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/lowagie/tools')
-rw-r--r--src/main/java/com/lowagie/tools/BuildTutorial.java156
-rw-r--r--src/main/java/com/lowagie/tools/CvsLogParser.java138
-rw-r--r--src/main/java/com/lowagie/tools/Executable.java322
-rw-r--r--src/main/java/com/lowagie/tools/LPR.java716
-rw-r--r--src/main/java/com/lowagie/tools/SwingWorker.java127
-rw-r--r--src/main/java/com/lowagie/tools/ToolMenuItems.java84
-rw-r--r--src/main/java/com/lowagie/tools/Toolbox.java354
-rw-r--r--src/main/java/com/lowagie/tools/Versions.java143
-rw-r--r--src/main/java/com/lowagie/tools/arguments/BitsetArgument.java136
-rw-r--r--src/main/java/com/lowagie/tools/arguments/DirFilter.java65
-rw-r--r--src/main/java/com/lowagie/tools/arguments/FileArgument.java165
-rw-r--r--src/main/java/com/lowagie/tools/arguments/ImageArgument.java117
-rw-r--r--src/main/java/com/lowagie/tools/arguments/ImageFilter.java135
-rw-r--r--src/main/java/com/lowagie/tools/arguments/LabelAccessory.java158
-rw-r--r--src/main/java/com/lowagie/tools/arguments/OptionArgument.java210
-rw-r--r--src/main/java/com/lowagie/tools/arguments/PageSelectionTableDialog.java243
-rw-r--r--src/main/java/com/lowagie/tools/arguments/PageSelectorToolArgument.java112
-rw-r--r--src/main/java/com/lowagie/tools/arguments/PageSizeArgument.java172
-rw-r--r--src/main/java/com/lowagie/tools/arguments/PageTableModel.java146
-rw-r--r--src/main/java/com/lowagie/tools/arguments/PdfFilter.java77
-rw-r--r--src/main/java/com/lowagie/tools/arguments/TableMap.java89
-rw-r--r--src/main/java/com/lowagie/tools/arguments/TableSorter.java367
-rw-r--r--src/main/java/com/lowagie/tools/arguments/ToolArgument.java281
-rw-r--r--src/main/java/com/lowagie/tools/concat_pdf.java96
-rw-r--r--src/main/java/com/lowagie/tools/encrypt_pdf.java99
-rw-r--r--src/main/java/com/lowagie/tools/handout_pdf.java122
-rw-r--r--src/main/java/com/lowagie/tools/plugins/AbstractTool.java341
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Bookmarks2XML.java148
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Burst.java140
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Concat.java185
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Decrypt.java148
-rw-r--r--src/main/java/com/lowagie/tools/plugins/DvdCover.java201
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Encrypt.java193
-rw-r--r--src/main/java/com/lowagie/tools/plugins/ExtractAttachments.java227
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Handouts.java232
-rw-r--r--src/main/java/com/lowagie/tools/plugins/HtmlBookmarks.java288
-rw-r--r--src/main/java/com/lowagie/tools/plugins/ImageXRefViewer.java256
-rw-r--r--src/main/java/com/lowagie/tools/plugins/InspectPDF.java173
-rw-r--r--src/main/java/com/lowagie/tools/plugins/KnitTiff.java178
-rw-r--r--src/main/java/com/lowagie/tools/plugins/LPRClient.java245
-rw-r--r--src/main/java/com/lowagie/tools/plugins/NUp.java165
-rw-r--r--src/main/java/com/lowagie/tools/plugins/PhotoAlbum.java200
-rw-r--r--src/main/java/com/lowagie/tools/plugins/RemoveLaunchApplication.java189
-rw-r--r--src/main/java/com/lowagie/tools/plugins/ReversePages.java180
-rw-r--r--src/main/java/com/lowagie/tools/plugins/SelectedPages.java150
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Split.java168
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Tiff2Pdf.java192
-rw-r--r--src/main/java/com/lowagie/tools/plugins/TreeViewPDF.java160
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Txt2Pdf.java169
-rw-r--r--src/main/java/com/lowagie/tools/plugins/Watermarker.java163
-rw-r--r--src/main/java/com/lowagie/tools/plugins/XML2Bookmarks.java156
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/AnalyzePDF.java507
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/ArrayTreeNode.java107
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/DictionaryTreeNode.java112
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/FileTreeNode.java86
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/ICommonAnalyzer.java79
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/IUpdatenodeview.java59
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/OutlinelistTreeNode.java98
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/PagelistTreeNode.java87
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/Pagetreenode.java208
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/ProgressDialog.java124
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/SimpletextTreeNode.java69
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/TextpaneTreeNode.java91
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/TreeViewInternalFrame.java272
-rw-r--r--src/main/java/com/lowagie/tools/plugins/treeview/UpdateableTreeNode.java74
-rw-r--r--src/main/java/com/lowagie/tools/split_pdf.java103
66 files changed, 0 insertions, 11753 deletions
diff --git a/src/main/java/com/lowagie/tools/BuildTutorial.java b/src/main/java/com/lowagie/tools/BuildTutorial.java
deleted file mode 100644
index 8087731..0000000
--- a/src/main/java/com/lowagie/tools/BuildTutorial.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * $Id: BuildTutorial.java,v 1.8 2004/12/10 14:21:01 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This code 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.
- *
- * itext@lowagie.com
- */
-package com.lowagie.tools;
-
-import java.io.*;
-
-import javax.xml.transform.*;
-import javax.xml.transform.stream.*;
-
-/**
- * This class can be used to build the iText website.
- *
- * @author Bruno Lowagie (based on an example found in the Developer's Almanac)
- */
-public class BuildTutorial {
-
- static String root;
- static FileWriter build;
-
- //~ Methods
- // ----------------------------------------------------------------
-
- /**
- * Main method so you can call the convert method from the command line.
- * @param args 4 arguments are expected:
- * <ul><li>a sourcedirectory (root of the tutorial xml-files),
- * <li>a destination directory (where the html and build.xml files will be generated),
- * <li>an xsl to transform the index.xml into a build.xml
- * <li>an xsl to transform the index.xml into am index.html</ul>
- */
-
- public static void main(String[] args) {
- if (args.length == 4) {
- File srcdir = new File(args[0]);
- File destdir = new File(args[1]);
- File xsl_examples = new File(srcdir, args[2]);
- File xsl_site = new File(srcdir, args[3]);
- try {
- System.out.print("Building tutorial: ");
- root = new File(args[1], srcdir.getName()).getCanonicalPath();
- System.out.println(root);
- build = new FileWriter(new File(root, "build.xml"));
- build.write("<project name=\"tutorial\" default=\"all\" basedir=\".\">\n");
- build.write("<target name=\"all\">\n");
- action(srcdir, destdir, xsl_examples, xsl_site);
- build.write("</target>\n</project>");
- build.flush();
- build.close();
- }
- catch(IOException ioe) {
- ioe.printStackTrace();
- }
- } else {
- System.err
- .println("Wrong number of parameters.\nUsage: BuildSite srcdr destdir xsl_examples xsl_site");
- }
- }
-
- /**
- * Inspects a file or directory that is given and performs the necessary actions on it (transformation or recursion).
- * @param source a sourcedirectory (possibly with a tutorial xml-file)
- * @param destination a destination directory (where the html and build.xml file will be generated, if necessary)
- * @param xsl_examples an xsl to transform the index.xml into a build.xml
- * @param xsl_site an xsl to transform the index.xml into am index.html
- * @throws IOException when something goes wrong while reading or creating a file or directory
- */
- public static void action(File source, File destination, File xsl_examples, File xsl_site) throws IOException {
- if ("CVS".equals(source.getName())) return;
- System.out.print(source.getName());
- if (source.isDirectory()) {
- System.out.print(" ");
- System.out.println(source.getCanonicalPath());
- File dest = new File(destination, source.getName());
- dest.mkdir();
- File current;
- File[] xmlFiles = source.listFiles();
- for (int i = 0; i < xmlFiles.length; i++) {
- current = xmlFiles[i];
- action(current, dest, xsl_examples, xsl_site);
- }
- }
- else if (source.getName().equals("index.xml")) {
- System.out.println("... transformed");
- convert(source, xsl_site, new File(destination, "index.html"));
- File buildfile = new File(destination, "build.xml");
- String path = buildfile.getCanonicalPath().substring(root.length());
- path = path.replace(File.separatorChar, '/');
- if ("/build.xml".equals(path)) return;
- convert(source, xsl_examples, buildfile);
- build.write("\t<ant antfile=\"${basedir}");
- build.write(path);
- build.write("\" target=\"install\" inheritAll=\"false\" />\n");
- }
- else {
- System.out.println("... skipped");
- }
- }
-
- /**
- * Converts an <code>infile</code>, using an <code>xslfile</code> to an
- * <code>outfile</code>.
- *
- * @param infile
- * the path to an XML file
- * @param xslfile
- * the path to the XSL file
- * @param outfile
- * the path for the output file
- */
- public static void convert(File infile, File xslfile, File outfile) {
- try {
- // Create transformer factory
- TransformerFactory factory = TransformerFactory.newInstance();
-
- // Use the factory to create a template containing the xsl file
- Templates template = factory.newTemplates(new StreamSource(
- new FileInputStream(xslfile)));
-
- // Use the template to create a transformer
- Transformer xformer = template.newTransformer();
-
- // passing 2 parameters
- String branch = outfile.getParentFile().getCanonicalPath().substring(root.length());
- branch = branch.replace(File.separatorChar, '/');
- StringBuffer path = new StringBuffer();
- for (int i = 0; i < branch.length(); i++) {
- if (branch.charAt(i) == '/') path.append("/..");
- }
-
- xformer.setParameter("branch", branch);
- xformer.setParameter("root", path.toString());
-
- // Prepare the input and output files
- Source source = new StreamSource(new FileInputStream(infile));
- Result result = new StreamResult(new FileOutputStream(outfile));
-
- // Apply the xsl file to the source file and write the result to the
- // output file
- xformer.transform(source, result);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
-//The End
diff --git a/src/main/java/com/lowagie/tools/CvsLogParser.java b/src/main/java/com/lowagie/tools/CvsLogParser.java
deleted file mode 100644
index 39181f1..0000000
--- a/src/main/java/com/lowagie/tools/CvsLogParser.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * $Id: CvsLogParser.java,v 1.5 2006/05/22 11:00:30 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This code 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.
- *
- * itext@lowagie.com
- */
-package com.lowagie.tools;
-
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.StreamTokenizer;
-
-import java.util.Enumeration;
-
-/**
- * If you get a changelog from CVS, for instance:
- * cvs -d:ext:blowagie@itext.cvs.sourceforge.net:/cvsroot/itext log -d ">2005-07-29"
- * you get an overview that contains all the changes.
- * With this class, you can parse out the important entries.
- *
- * @author blowagie
- */
-public class CvsLogParser implements Enumeration {
-
- /** the tokenizer object. */
- protected StreamTokenizer st;
-
- /** indicates if the current token contains changes. */
- protected boolean changes = false;
-
- /** indicates if the tokenizer has more tokens. */
- protected boolean more = false;
-
- /**
- * @param file
- * @throws FileNotFoundException
- */
- public CvsLogParser(String file) throws FileNotFoundException {
- BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
- st = new StreamTokenizer(r);
- st.eolIsSignificant(true);
- st.ordinaryChar('/');
- st.ordinaryChar('\'');
- more = true;
- }
-
- /**
- * @see java.util.Enumeration#hasMoreElements()
- */
- public boolean hasMoreElements() {
- return more;
- }
-
- /**
- * Returns the next token in the log file.
- * @see java.util.Enumeration#nextElement()
- */
- public Object nextElement(){
- StringBuffer token = new StringBuffer();
- StringBuffer line = new StringBuffer();
- boolean moreToken = true;
- changes = false;
- try {
- while (more && moreToken) {
- st.nextToken();
- switch(st.ttype) {
- case StreamTokenizer.TT_EOF:
- more = false;
- case StreamTokenizer.TT_EOL:
- token.append(line.toString());
- if (line.toString().endsWith("=============================================================================")) {
- moreToken = false;
- }
- else {
- line = new StringBuffer("\n");
- }
- break;
- case StreamTokenizer.TT_WORD:
- line.append(st.sval);
- line.append(" ");
- break;
- case StreamTokenizer.TT_NUMBER:
- if (st.nval > 0 && line.toString().endsWith("selected revisions :")) {
- changes = true;
- }
- line.append(st.nval);
- break;
- default:
- line.append((char) st.ttype);
- }
- }
- return token.toString();
- }
- catch(IOException ioe) {
- more = false;
- return "";
- }
- }
-
- /**
- * Indicates if the current token is one that contains changes.
- * @return true if the token is relevant
- */
- private boolean hasChanged() {
- return changes;
- }
-
-
- /**
- * Parses a log form CVS.
- * @param args the path to the logfile
- */
- public static void main(String[] args) {
- try {
- CvsLogParser p = new CvsLogParser(args[0]);
- String token;
- while (p.hasMoreElements()) {
- token = (String) p.nextElement();
- if (p.hasChanged()) {
- System.out.println(token);
- }
- }
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/Executable.java b/src/main/java/com/lowagie/tools/Executable.java
deleted file mode 100644
index 0467b24..0000000
--- a/src/main/java/com/lowagie/tools/Executable.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * $Id: Executable.java,v 1.6 2005/08/10 14:32:51 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Bruno Lowagie / Roger Mistelli
- *
- * 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 (C) 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 (C) 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.tools;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-
-/**
- * This class enables you to call an executable that will show a PDF file.
- */
-public class Executable {
-
- /**
- * The path to Acrobat Reader.
- */
- public static String acroread = null;
-
-
- /**
- * Performs an action on a PDF document.
- * @param fileName
- * @param parameters
- * @param waitForTermination
- * @return a process
- * @throws IOException
- */
- private static Process action(final String fileName,
- String parameters, boolean waitForTermination) throws IOException {
- Process process = null;
- if (parameters.trim().length() > 0) {
- parameters = " " + parameters.trim();
- }
- else {
- parameters = "";
- }
- if (acroread != null) {
- process = Runtime.getRuntime().exec(
- acroread + parameters + " \"" + fileName + "\"");
- }
- else if (isWindows()) {
- if (isWindows9X()) {
- process = Runtime.getRuntime().exec(
- "command.com /C start acrord32" + parameters + " \"" + fileName + "\"");
- }
- else {
- process = Runtime.getRuntime().exec(
- "cmd /c start acrord32" + parameters + " \"" + fileName + "\"");
- }
- }
- else if (isMac()) {
- if (parameters.trim().length() == 0) {
- process = Runtime.getRuntime().exec(
- new String[] { "/usr/bin/open", fileName });
- }
- else {
- process = Runtime.getRuntime().exec(
- new String[] { "/usr/bin/open", parameters.trim(), fileName });
- }
- }
- try {
- if (process != null && waitForTermination)
- process.waitFor();
- } catch (InterruptedException ie) {
- }
- return process;
- }
-
- /**
- * Opens a PDF document.
- * @param fileName
- * @param waitForTermination
- * @return a process
- * @throws IOException
- */
- public static final Process openDocument(String fileName,
- boolean waitForTermination) throws IOException {
- return action(fileName, "", waitForTermination);
- }
-
- /**
- * Opens a PDF document.
- * @param file
- * @param waitForTermination
- * @return a process
- * @throws IOException
- */
- public static final Process openDocument(File file,
- boolean waitForTermination) throws IOException {
- return openDocument(file.getAbsolutePath(), waitForTermination);
- }
-
- /**
- * Opens a PDF document.
- * @param fileName
- * @return a process
- * @throws IOException
- */
- public static final Process openDocument(String fileName) throws IOException {
- return openDocument(fileName, false);
- }
-
- /**
- * Opens a PDF document.
- * @param file
- * @return a process
- * @throws IOException
- */
- public static final Process openDocument(File file) throws IOException {
- return openDocument(file, false);
- }
-
- /**
- * Prints a PDF document.
- * @param fileName
- * @param waitForTermination
- * @return a process
- * @throws IOException
- */
- public static final Process printDocument(String fileName,
- boolean waitForTermination) throws IOException {
- return action(fileName, "/p", waitForTermination);
- }
-
- /**
- * Prints a PDF document.
- * @param file
- * @param waitForTermination
- * @return a process
- * @throws IOException
- */
- public static final Process printDocument(File file,
- boolean waitForTermination) throws IOException {
- return printDocument(file.getAbsolutePath(), waitForTermination);
- }
-
- /**
- * Prints a PDF document.
- * @param fileName
- * @return a process
- * @throws IOException
- */
- public static final Process printDocument(String fileName) throws IOException {
- return printDocument(fileName, false);
- }
-
- /**
- * Prints a PDF document.
- * @param file
- * @return a process
- * @throws IOException
- */
- public static final Process printDocument(File file) throws IOException {
- return printDocument(file, false);
- }
-
- /**
- * Prints a PDF document without opening a Dialog box.
- * @param fileName
- * @param waitForTermination
- * @return a process
- * @throws IOException
- */
- public static final Process printDocumentSilent(String fileName,
- boolean waitForTermination) throws IOException {
- return action(fileName, "/p /h", waitForTermination);
- }
-
- /**
- * Prints a PDF document without opening a Dialog box.
- * @param file
- * @param waitForTermination
- * @return a process
- * @throws IOException
- */
- public static final Process printDocumentSilent(File file,
- boolean waitForTermination) throws IOException {
- return printDocumentSilent(file.getAbsolutePath(), waitForTermination);
- }
-
- /**
- * Prints a PDF document without opening a Dialog box.
- * @param fileName
- * @return a process
- * @throws IOException
- */
- public static final Process printDocumentSilent(String fileName) throws IOException {
- return printDocumentSilent(fileName, false);
- }
-
- /**
- * Prints a PDF document without opening a Dialog box.
- * @param file
- * @return a process
- * @throws IOException
- */
- public static final Process printDocumentSilent(File file) throws IOException {
- return printDocumentSilent(file, false);
- }
-
- /**
- * Launches a browser opening an URL.
- * This code was based on the Public Domain class BareBonesBrowserLaunch,
- * found at <a href="http://www.centerkey.com/java/browser/myapp/BareBonesBrowserLaunch.java">Centerkey</a>.
- *
- * @param url the URL you want to open in the browser
- * @throws IOException
- */
- public static final void launchBrowser(String url) throws IOException {
- try {
- if (isMac()) {
- Class macUtils = Class.forName("com.apple.mrj.MRJFileUtils");
- Method openURL = macUtils.getDeclaredMethod("openURL", new Class[] {String.class});
- openURL.invoke(null, new Object[] {url});
- }
- else if (isWindows())
- Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
- else { //assume Unix or Linux
- String[] browsers = {
- "firefox", "opera", "konqueror", "mozilla", "netscape" };
- String browser = null;
- for (int count = 0; count < browsers.length && browser == null; count++)
- if (Runtime.getRuntime().exec(new String[] {"which", browsers[count]}).waitFor() == 0)
- browser = browsers[count];
- if (browser == null)
- throw new Exception("Could not find web browser.");
- else
- Runtime.getRuntime().exec(new String[] {browser, url});
- }
- }
- catch (Exception e) {
- throw new IOException("Error attempting to launch web browser");
- }
- }
-
- /**
- * Checks the Operating System.
- *
- * @return true if the current os is Windows
- */
- public static boolean isWindows() {
- String os = System.getProperty("os.name").toLowerCase();
- return os.indexOf("windows") != -1 || os.indexOf("nt") != -1;
- }
-
- /**
- * Checks the Operating System.
- *
- * @return true if the current os is Windows
- */
- public static boolean isWindows9X() {
- String os = System.getProperty("os.name").toLowerCase();
- return os.equals("windows 95") || os.equals("windows 98");
- }
-
- /**
- * Checks the Operating System.
- *
- * @return true if the current os is Apple
- */
- public static boolean isMac() {
- String os = System.getProperty("os.name").toLowerCase();
- return os.indexOf("mac") != -1;
- }
-
- /**
- * Checks the Operating System.
- *
- * @return true if the current os is Linux
- */
- public static boolean isLinux() {
- String os = System.getProperty("os.name").toLowerCase();
- return os.indexOf("linux") != -1;
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/LPR.java b/src/main/java/com/lowagie/tools/LPR.java
deleted file mode 100644
index f969f8a..0000000
--- a/src/main/java/com/lowagie/tools/LPR.java
+++ /dev/null
@@ -1,716 +0,0 @@
-/*
- * Class based on freeware by Mario Muller (http://www.hemasoft.de/dev/lprj/ )
- * posted by Anonymous. */
-package com.lowagie.tools;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-/**
- * Modified!
- *
- * This class provides methods for the Line Printer Daemon Protocol <BR>
- * <A HREF="http://www.hemasoft.de/dev/lprj/">more info about LPD/LPR </A>
- *
- * @author <A HREF=mailto:supermario@gmx.net>Mario M&uuml;ller </A>
- * @version 1.0 (12/98)
- */
-public class LPR {
- public static final int UNKNOWN = 0;
-
- private String host;
-
- private int port = 515;
-
- private String user = System.getProperty("user.name");
-
- private Vector jobs = new Vector();
-
- private String hostname = null;
-
- private String jobname = "";
-
- private String cfAlen;
-
- private String cfA;
-
- private int copies = 1;
-
- private int timeout = 60000;
-
- private boolean cfA_formatted = false; // f
-
- private boolean cfA_postscript = false; // o
-
- private boolean cfA_banner = false; // L
-
- private boolean cfA_pr = false;
-
- /**
- * default constructor without parameters, standard port is <B>515 </B>
- */
- public LPR() {
- try {
- hostname = InetAddress.getLocalHost().getHostName();
- } catch (Exception e2) {
- System.out.println("can't resolve hostname");
- hostname = null;
- }
- }
-
- /**
- * constuctor with host and username standard port is <B>515 </B>
- */
- public LPR(String host, String user) {
- this();
- setHost(host);
- setUser(user);
- }
-
- /**
- * constuctor with host, port and username
- */
- public LPR(String host, int port, String user) {
- this();
- setHost(host);
- setUser(user);
- setPort(port);
- }
-
- /**
- * set LPD host
- */
- public void setHost(String value) {
- host = value;
- }
-
- /**
- * get LPD host
- */
- public String getHost() {
- return host;
- }
-
- /**
- * set LPD port
- */
- public void setPort(int value) {
- port = value;
- }
-
- /**
- * get LPD port
- */
- public int getPort() {
- return port;
- }
-
- /**
- * set username
- */
- public void setUser(String value) {
- user = value;
- }
-
- /**
- * get username
- */
- public String getUser() {
- return user;
- }
-
- /**
- * set the timeout for any commands
- */
- public void setTimeout(int timeout) {
- this.timeout = timeout;
- }
-
- /**
- * get the timeout for any commands
- */
- public int getTimeout() {
- return timeout;
- }
-
- /**
- * get if file printed as postscript file
- */
- public boolean getCfA_postscript() {
- return cfA_postscript;
- }
-
- /**
- * set if file printed as postscript file
- * <P>
- * <I>o option in control file </I>
- * </P>
- * <P>
- * This command prints the data file to be printed, treating the data as
- * standard Postscript input.
- * </P>
- */
- public void setCfA_postscript(boolean value) {
- cfA_postscript = value;
-
- if (value) {
- cfA_formatted = false;
- }
- }
-
- /**
- * get the job name
- */
- public String getCfA_jobname() {
- return jobname;
- }
-
- /**
- * set the job name
- * <P>
- * <I>J option in control file </I>
- * </P>
- * <P>
- * This command sets the job name to be printed on the banner page. The name
- * of the job must be 99 or fewer octets. It can be omitted. The job name is
- * conventionally used to display the name of the file or files which were
- * "printed". It will be ignored unless the print banner command ('L') is
- * also used.
- * </P>
- */
- public void setCfA_jobname(String value) {
- jobname = value;
- cfA_banner = true;
- }
-
- /**
- * get if print file with 'pr' format
- */
- public boolean getCfA_pr() {
- return cfA_pr;
- }
-
- /**
- * <P>
- * <I>p - Print file with 'pr' format </I>
- * </P>
- * <P>
- * This command causes the data file to be printed with a heading, page
- * numbers, and pagination. The heading should include the date and time
- * that printing was started, the title, and a page number identifier
- * followed by the page number. The title is the name of file as specified
- * by the 'N' command, unless the 'T' command (title) has been given. After
- * a page of text has been printed, a new page is started with a new page
- * number. (There is no way to specify the length of the page.)
- * </P>
- */
- public void setCfA_pr(boolean value) {
- cfA_pr = value;
- }
-
- /**
- * get if job printed with banner page
- */
- public boolean getCfA_banner() {
- return cfA_banner;
- }
-
- /**
- * set if job printed with banner page
- * <P>
- * <I>L option in control file </I>
- * </P>
- * <P>
- * This command causes the banner page to be printed. The user name can be
- * omitted. The class name for banner page and job name for banner page
- * commands must precede this command in the control file to be effective.
- * </P>
- */
- public void setCfA_banner(boolean value) {
- cfA_banner = value;
- }
-
- /**
- * get the host name for this computer
- */
- public String getHostname() {
- return hostname;
- }
-
- /**
- * set the host name for this computer
- */
- public void setHostname(String value) {
- hostname = value;
- }
-
- /**
- * set Copies
- */
- public void setCopies(int value) {
- copies = value;
- }
-
- /**
- * get Copies
- */
- public int getCopies() {
- return copies;
- }
-
- /**
- * Print any waiting jobs
- * <P>
- * This command starts the printing process if it not already running.
- * </P>
- */
- public boolean printWaitingJobs(String queue) {
- Socket printer = connect();
-
- if (printer != null) {
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(
- printer.getInputStream()));
- DataOutputStream out = new DataOutputStream(printer
- .getOutputStream());
-
-//-------------------------- start -------------------------------
- out.write(01);
- out.writeBytes(queue + "\n");
-
- if (in.read() != 0) {
- System.err.println("Error while start print jobs on queue " + queue);
-
- return false;
- }
-
- close(printer, in, out);
-
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- return false;
- }
-
- /**
- * Remove job
- * <P>
- * This command deletes the print jobs from the specified queue which are
- * listed as the other operands. If only the agent is given, the command is
- * to delete the currently active job. Unless the agent is "root", it is not
- * possible to delete a job which is not owned by the user. This is also the
- * case for specifying user names instead of numbers. That is, agent "root"
- * can delete jobs by user name but no other agents can.
- * </P>
- */
- public boolean removeJob(String queue, String user, String jobid) {
- Socket printer = connect();
-
- if (printer != null) {
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(
- printer.getInputStream()));
- DataOutputStream out = new DataOutputStream(printer
- .getOutputStream());
-
-//-------------------------- start -------------------------------
- out.write(05);
- out.writeBytes(queue + " " + user + " " + jobid + "\n");
-
- if (in.read() != 0) {
- System.err.println("Error while remove print job " + jobid + " on queue " + queue);
- return false;
- }
-
- close(printer, in, out);
-
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- return false;
- }
-
- /**
- * gets the state and description of the printer queue in short or long
- * format
- */
- public String getQueueState(String queue, boolean shortstate) {
- Socket printer = connect();
-
- if (printer != null) {
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(
- printer.getInputStream()));
-
- DataOutputStream out = new DataOutputStream(printer
- .getOutputStream());
-
- if (shortstate) {
- out.write(03);
- } else {
- out.write(04);
- }
-
- out.writeBytes(queue + " \n");
-
- LineNumberReader lnr = new LineNumberReader(in);
- String line = in.readLine();
- close(printer, in, out);
-
- return line;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- return null;
- }
-
- /**
- * print a byte array with the document name as parameter
- *
- * @see LPR#print(String queue, String dfA, String document) {
- */
- public String print(String queue, byte[] dfA, String document) {
- PrintJob job = new PrintJob(queue, dfA, document);
- job.start();
-
- return job.getJobId();
- }
-
- /**
- * print a String with the document name as parameter
- *
- * @see LPR#print(String queue, String dfA, String document) {
- */
- public String print(String queue, String dfA, String document) {
- PrintJob job = new PrintJob(queue, dfA.toCharArray(), document);
- job.start();
-
- return job.getJobId();
- }
-
- /**
- * print a char array with the document name as parameter
- *
- * @see LPR#print(String queue, String dfA, String document) {
- */
- public String print(String queue, char[] dfA, String document) {
- PrintJob job = new PrintJob(queue, dfA, document);
- job.start();
-
- return job.getJobId();
- }
-
- /**
- * print a file with the document name as parameter
- *
- * @see LPR#print(String queue, String dfA, String document) {
- */
- public String print(String queue, File file, String document) {
- if (file.exists()) {
- try {
- FileInputStream in = new FileInputStream(file);
- byte[] data = new byte[(int) file.length()];
- int count = 0;
- int size = (int) file.length();
-
- while (count < size) {
- count += in.read(data, count, size - count);
- }
-
- in.close();
-
- PrintJob job = new PrintJob(queue, data, document);
- job.start();
- waitFor(job.getJobId());
-
- return job.getJobId();
- } catch (Exception e) {
- System.out.println("error while printig file " + file.getName()
- + "\n" + e.getMessage());
- }
- } else {
- System.out.println("file " + file.getName() + " not found");
- }
-
- return null;
- }
-
- /**
- * wait until job is printed
- */
- public void waitFor(String jobid) {
- try {
- while (jobs.contains(jobid)) {
- Thread.sleep(500);
- }
- } catch (Exception e) {
- }
- }
-
- /**
- * internal funktion for printing
- */
- private boolean print(String queue, String document, byte[] dfA1,
- char[] dfA2, int mode, String jobid) {
- Socket printer = connect();
-
- if (printer != null) {
- boolean rc = true;
- makecfA(document, jobid);
-
- String dfAlen = String.valueOf(((mode == 1) ? dfA1.length
- : dfA2.length));
-
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(
- printer.getInputStream()));
- DataOutputStream out = new DataOutputStream(printer
- .getOutputStream());
- System.out.println("jobid: " + jobid + " queue: " + queue);
-
-//-------------------------- start -------------------------------
- out.write(02);
- out.writeBytes(queue + "\n");
- out.flush();
-
- if (in.read() != 0) {
- rc = false;
- System.out.println("Error while start printing on queue "
- + queue);
- }
-
-//----------------------- write control file ----------------------------
- out.write(02);
- out.writeBytes(cfAlen);
- out.writeBytes(" ");
- out.writeBytes("cfA" + jobid + user + "\n");
- out.flush();
-
- if (in.read() != 0) {
- rc = false;
- System.out
- .println("Error while start sending control file");
- }
-
- out.writeBytes(cfA);
- out.writeByte(0);
- out.flush();
-
- if (in.read() != 0) {
- rc = false;
- System.out.println("Error while sending control file");
- }
-
-//----------------------- write data file ----------------------------
- out.write(03);
-
- /**
- * Länge des Datenfiles
- */
- out.writeBytes(dfAlen);
- out.writeBytes(" ");
- out.writeBytes("dfA" + jobid + user + "\n");
- out.flush();
-
- if (in.read() != 0) {
- rc = false;
- System.err.println("Error while start sending data file");
- }
-
- if (mode == 1) {
- out.write(dfA1);
- } else {
- out.writeBytes(new String(dfA2));
- }
-
- out.writeByte(0);
- out.flush();
-
- if (in.read() != 0) {
- rc = false;
- System.out.println("Error while sending data file");
- }
- out.flush();
- close(printer, in, out);
- } catch (Exception e) {
- rc = false;
- e.printStackTrace();
- }
-
- return rc;
- }
-
- return false;
- }
-
- /**
- * connect to the LPD Server
- */
- private Socket connect() {
- try {
- System.out.println("Connect with " + host);
-
- Socket socket = new Socket(InetAddress.getByName(host), port);
- socket.setSoTimeout(timeout);
-
- return socket;
- } catch (Exception e1) {
- System.out
- .println("Error while connecting to " + host + ":" + port);
- System.out.println(e1.getMessage());
- }
-
- return null;
- }
-
- /**
- * closed connection to the LPD
- */
- private void close(Socket socket, BufferedReader in, DataOutputStream out) {
- try {
- in.close();
- out.close();
- socket.close();
- } catch (Exception e) {
- System.out.println("Errror while closing printerport");
- System.out.println(e.getMessage());
- }
- }
-
- /**
- * internal methode to create the control file
- */
- private void makecfA(String document, String jobid) {
- cfA = "";
-
- if (hostname != null) {
- cfA += ("H" + hostname + "\n");
- }
-
- cfA += ("P" + user + "\n");
- cfA += ("J" + document + "\n");
- cfA += ("L" + user + "\n");
-
- if (cfA_formatted) {
- cfA += ("f" + document + "\n");
- }
-
- if (cfA_postscript) {
- cfA += ("o" + document + "\n");
- }
-
- if (cfA_banner) {
- cfA += ("L" + jobname + "\n");
- }
-
- cfA += ("UdfA" + jobid + hostname + "\n");
-
- for (int i = 0; i < copies; i++) {
- cfA += ("ldfA" + jobid + user + "\n");
- }
-
- cfA += ("N" + document + "\n");
- cfAlen = String.valueOf(cfA.length());
-
- System.out.println(cfA);
-
- }
-
- private String getNewJobId() {
- return fillLeft(String.valueOf((int) Math.floor(Math.random() * 999)),
- 3, "0");
- }
-
- private String fillLeft(String data, int size, String filler) {
- while (data.length() < size) {
- data = filler + data;
- }
-
- return data;
- }
-
- /** ******************* Job ************************ */
- private class PrintJob extends Thread {
- String queue;
-
- String document;
-
- String id;
-
- int mode;
-
- private byte[] dfA1 = null;
-
- private char[] dfA2 = null;
-
- public PrintJob(String queue, byte[] data, String document) {
- super();
- this.queue = queue;
- this.dfA1 = data;
- this.document = document;
- this.mode = 1;
- this.id = getNewJobId();
- jobs.addElement(id);
- System.out.println("Printjob (byte) " + id + " queue=" + queue + " document=" + document);
- }
-
- public PrintJob(String queue, char[] data, String document) {
- super();
- this.queue = queue;
- this.dfA2 = data;
- this.document = document;
- this.mode = 2;
- this.id = getNewJobId();
- jobs.addElement(id);
- System.out.println("Printjob (char) " + id + " queue=" + queue + " document=" + document);
- }
-
- public void run() {
- boolean rc = false;
- int i = 0;
- System.out.println("Printjob (char) " + id + " queue=" + queue + " document=" + document);
-
- while (!rc) {
- try {
- i++;
- rc = print(queue, document, dfA1, dfA2, mode, id);
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
-
- if (!rc && (i > 5)) {
- break;
- }
-
- if (!rc) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException ex) {
- break;
- }
- }
- }
-
- jobs.removeElement(id);
-
- if (rc) {
- System.out.println("Job " + id + " allready printed and removed from queue (" + i + " trys)");
- } else {
- System.out.println("Job " + id + " not printed and removed from queue (" + i + " trys)");
- }
- }
-
- public String getJobId() {
- return this.id;
- }
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/SwingWorker.java b/src/main/java/com/lowagie/tools/SwingWorker.java
deleted file mode 100644
index 634a61a..0000000
--- a/src/main/java/com/lowagie/tools/SwingWorker.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.lowagie.tools;
-import javax.swing.SwingUtilities;
-
-/**
- * This is the 3rd version of SwingWorker (also known as
- * SwingWorker 3), an abstract class that you subclass to
- * perform GUI-related work in a dedicated thread. For
- * instructions on using this class, see:
- *
- * http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html
- */
-public abstract class SwingWorker {
- private Object value; // see getValue(), setValue()
- private Thread thread;
-
- /**
- * Class to maintain reference to current worker thread
- * under separate synchronization control.
- */
- private static class ThreadVar {
- private Thread thread;
- ThreadVar(Thread t) { thread = t; }
- synchronized Thread get() { return thread; }
- synchronized void clear() { thread = null; }
- }
-
- private ThreadVar threadVar;
-
- /**
- * Get the value produced by the worker thread, or null if it
- * hasn't been constructed yet.
- */
- protected synchronized Object getValueX() {
- return value;
- }
-
- /**
- * Set the value produced by worker thread
- */
- private synchronized void setValueX(Object x) {
- value = x;
- }
-
- /**
- * Compute the value to be returned by the <code>get</code> method.
- */
- public abstract Object construct();
-
- /**
- * Called on the event dispatching thread (not on the worker thread)
- * after the <code>construct</code> method has returned.
- */
- public void finished() {
- }
-
- /**
- * A new method that interrupts the worker thread. Call this method
- * to force the worker to stop what it's doing.
- */
- public void interrupt() {
- Thread t = threadVar.get();
- if (t != null) {
- t.interrupt();
- }
- threadVar.clear();
- }
-
- /**
- * Return the value created by the <code>construct</code> method.
- * Returns null if either the constructing thread or the current
- * thread was interrupted before a value was produced.
- *
- * @return the value created by the <code>construct</code> method
- */
- public Object get() {
- while (true) {
- Thread t = threadVar.get();
- if (t == null) {
- return getValueX();
- }
- try {
- t.join();
- }
- catch (InterruptedException e) {
- Thread.currentThread().interrupt(); // propagate
- return null;
- }
- }
- }
-
-
- /**
- * Start a thread that will call the <code>construct</code> method
- * and then exit.
- */
- public SwingWorker() {
- final Runnable doFinished = new Runnable() {
- public void run() { finished(); }
- };
-
- Runnable doConstruct = new Runnable() {
- public void run() {
- try {
- setValueX(construct());
- }
- finally {
- threadVar.clear();
- }
-
- SwingUtilities.invokeLater(doFinished);
- }
- };
-
- Thread t = new Thread(doConstruct);
- threadVar = new ThreadVar(t);
- }
-
- /**
- * Start the worker thread.
- */
- public void start() {
- Thread t = threadVar.get();
- if (t != null) {
- t.start();
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/ToolMenuItems.java b/src/main/java/com/lowagie/tools/ToolMenuItems.java
deleted file mode 100644
index fdcf916..0000000
--- a/src/main/java/com/lowagie/tools/ToolMenuItems.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * $Id: ToolMenuItems.java,v 1.4 2005/08/29 08:44:16 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools;
-
-/**
- * Keeps all the possible menuitems.
- */
-public interface ToolMenuItems {
-
- /** An item in the menubar. */
- public static final String FILE = "File";
- /** An item in the menubar. */
- public static final String CLOSE = "Close";
- /** An item in the menubar. */
- public static final String TOOLS = "Tools";
- /** An item in the menubar. */
- public static final String HELP = "Help";
- /** An item in the menubar. */
- public static final String VERSION = "Version";
- /** An item in the menubar. */
- public static final String ABOUT = "About";
- /** An item in the menubar. */
- public static final String TOOL = "Tool";
- /** An item in the menubar. */
- public static final String USAGE = "Usage";
- /** An item in the menubar. */
- public static final String ARGUMENTS = "Arguments";
- /** An item in the menubar. */
- public static final String EXECUTE = "Execute";
- /** An item in the menubar. */
- public static final String EXECUTESHOW = "Execute+Open";
- /** An item in the menubar. */
- public static final String EXECUTEPRINT = "Execute+Printdialog";
- /** An item in the menubar. */
- public static final String EXECUTEPRINTSILENT = "Execute+Print";
-
-}
diff --git a/src/main/java/com/lowagie/tools/Toolbox.java b/src/main/java/com/lowagie/tools/Toolbox.java
deleted file mode 100644
index 89a0bc3..0000000
--- a/src/main/java/com/lowagie/tools/Toolbox.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
- * $Id: Toolbox.java,v 1.16 2006/05/29 10:30:39 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.KeyEvent;
-import java.beans.PropertyVetoException;
-import java.io.IOException;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import java.io.PrintStream;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.TreeMap;
-
-import javax.swing.Box;
-import javax.swing.JDesktopPane;
-import javax.swing.JFrame;
-import javax.swing.JInternalFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JScrollPane;
-import javax.swing.JSplitPane;
-import javax.swing.JTextArea;
-
-import com.lowagie.tools.plugins.AbstractTool;
-
-import java.awt.Toolkit;
-import java.awt.Dimension;
-
-/**
- * This is a utility that allows you to use a number of iText tools.
- */
-public class Toolbox extends JFrame implements ToolMenuItems, ActionListener {
-
- /** The DesktopPane of the toolbox. */
- private JDesktopPane desktop;
- /** The ConsolePane of the toolbox. */
- private JScrollPane console;
-
- /** The list of tools in the toolbox. */
- private Properties toolmap = new Properties();
-
- /** x-coordinate of the location of a new internal frame. */
- private int locationX = 0;
-
- /** y-coordinate of the location of a new internal frame. */
- private int locationY = 0;
-
- /**
- * Constructs the Toolbox object.
- */
- public Toolbox() {
- super();
- setSize(600, 500);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setResizable(true);
- setTitle("iText Toolbox");
- setJMenuBar(getMenubar());
- desktop = new JDesktopPane();
- Console c;
- try {
- c = new Console();
- console = new JScrollPane(c.textArea);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, desktop, console);
- splitPane.setContinuousLayout(true);
- splitPane.setOneTouchExpandable(true);
- splitPane.setDividerLocation(300);
- setContentPane(splitPane);
- centerFrame(this);
- setVisible(true);
- }
-
- /**
- * Starts the Toolbox utility.
- *
- * @param args
- * no arguments needed
- */
- public static void main(String[] args) {
- Toolbox toolbox = new Toolbox();
- if(args.length==0){
-
- }else{
- try {
- AbstractTool tool = toolbox.createFrame(args[0]);
- String[] nargs=new String[args.length-1];
- System.arraycopy(args,1,nargs,0,args.length-1);
- tool.setArguments(nargs);
- tool.execute();
- }
- catch (PropertyVetoException ex) {
- }
- catch (ClassNotFoundException ex) {
- }
- catch (IllegalAccessException ex) {
- }
- catch (InstantiationException ex) {
- }
- }
- }
-
- /**
- * Gets the menubar.
- *
- * @return a menubar
- */
- private JMenuBar getMenubar() {
- Properties p = new Properties();
- try {
- p.load(Toolbox.class.getClassLoader().getResourceAsStream(
- "com/lowagie/tools/plugins/tools.txt"));
- } catch (IOException e) {
- e.printStackTrace();
- }
- toolmap = new Properties();
- TreeMap tmp = new TreeMap();
- tmp.putAll(p);
- JMenuBar menubar = new JMenuBar();
- JMenu file = new JMenu(FILE);
- JMenuItem close = new JMenuItem(CLOSE);
- close.setMnemonic(KeyEvent.VK_C);
- close.addActionListener(this);
- file.add(close);
- JMenu tools = new JMenu(TOOLS);
- file.setMnemonic(KeyEvent.VK_T);
- String name, tool;
- JMenu current = null;
- JMenuItem item;
- for (Iterator i = tmp.keySet().iterator(); i.hasNext();) {
- name = (String) i.next();
- if (current == null || !name.startsWith(current.getText())) {
- current = new JMenu(name.substring(0, name.indexOf(".")));
- tools.add(current);
- }
- item = new JMenuItem(name.substring(current.getText().length() + 1));
- item.addActionListener(this);
- tool = (String) tmp.get(name);
- try {
- Class.forName(tool);
- toolmap.put(item.getText(), tool);
- current.add(item);
- } catch (ClassNotFoundException e) {
- System.err.println("Plugin " + name
- + " was not found in your CLASSPATH.");
- }
- }
- JMenu help = new JMenu(HELP);
- JMenuItem about = new JMenuItem(ABOUT);
- about.setMnemonic(KeyEvent.VK_A);
- about.addActionListener(this);
- help.add(about);
- JMenuItem versions = new JMenuItem(VERSION);
- versions.addActionListener(this);
- help.add(versions);
- menubar.add(file);
- menubar.add(tools);
- menubar.add(Box.createGlue());
- menubar.add(help);
- return menubar;
- }
-
- /**
- * Creates an Internal Frame.
- *
- * @param name
- * the name of the app
- * @throws ClassNotFoundException
- * @throws IllegalAccessException
- * @throws InstantiationException
- * @throws PropertyVetoException
- */
- public AbstractTool createFrame(String name) throws InstantiationException,
- IllegalAccessException, ClassNotFoundException,
- PropertyVetoException {
- AbstractTool ti = (AbstractTool) Class.forName(
- (String) toolmap.get(name)).newInstance();
- JInternalFrame f = ti.getInternalFrame();
- f.setLocation(locationX, locationY);
- locationX += 25;
- if (locationX > this.getWidth() + 50)
- locationX = 0;
- locationY += 25;
- if (locationY > this.getHeight() + 50)
- locationY = 0;
- f.setVisible(true);
- desktop.add(f);
- f.setSelected(true);
- return ti;
- }
-
- public static void centerFrame(JFrame f) {
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension frameSize = f.getSize();
- if (frameSize.height > screenSize.height) {
- frameSize.height = screenSize.height;
- }
- if (frameSize.width > screenSize.width) {
- frameSize.width = screenSize.width;
- }
- f.setLocation((screenSize.width - frameSize.width) / 2,
- (screenSize.height - frameSize.height) / 2);
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent evt) {
- if (CLOSE.equals(evt.getActionCommand())) {
- System.out.println("The Toolbox is closed.");
- System.exit(0);
- } else if (ABOUT.equals(evt.getActionCommand())) {
- System.out
- .println("The iText Toolbox is part of iText, a Free Java-PDF Library.\nVisit http://www.lowagie.com/iText/toolbox.html for more info.");
- try {
- Executable
- .launchBrowser("http://www.lowagie.com/iText/toolbox.html");
- } catch (IOException ioe) {
- JOptionPane
- .showMessageDialog(
- this,
- "The iText Toolbox is part of iText, a Free Java-PDF Library.\nVisit http://www.lowagie.com/iText/toolbox.html for more info.");
- }
- } else if (VERSION.equals(evt.getActionCommand())) {
- JFrame f = new Versions();
- centerFrame(f);
- f.setVisible(true);
- } else {
- try {
- createFrame(evt.getActionCommand());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- /**
- * A Class that redirects output to System.out and System.err.
- */
- public class Console {
- PipedInputStream piOut;
- PipedInputStream piErr;
- PipedOutputStream poOut;
- PipedOutputStream poErr;
- JTextArea textArea = new JTextArea();
-
- /**
- * Creates a new Console object.
- * @param columns
- * @param rows
- * @throws IOException
- */
- public Console() throws IOException {
- // Set up System.out
- piOut = new PipedInputStream();
- poOut = new PipedOutputStream(piOut);
- System.setOut(new PrintStream(poOut, true));
-
- // Set up System.err
- piErr = new PipedInputStream();
- poErr = new PipedOutputStream(piErr);
- System.setErr(new PrintStream(poErr, true));
-
- // Add a scrolling text area
- textArea.setEditable(false);
-
- // Create reader threads
- new ReaderThread(piOut).start();
- new ReaderThread(piErr).start();
- }
-
- class ReaderThread extends Thread {
- PipedInputStream pi;
-
- ReaderThread(PipedInputStream pi) {
- this.pi = pi;
- }
-
- /**
- * @see java.lang.Thread#run()
- */
- public void run() {
- final byte[] buf = new byte[1024];
-
- while (true) {
- try {
- final int len = pi.read(buf);
- if (len == -1) {
- break;
- }
- textArea.append(new String(buf, 0, len));
- textArea.setCaretPosition(textArea.getDocument().getLength());
-
- } catch (IOException e) {
- }
- }
- }
- }
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/Versions.java b/src/main/java/com/lowagie/tools/Versions.java
deleted file mode 100644
index dd0796f..0000000
--- a/src/main/java/com/lowagie/tools/Versions.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * $Id: Versions.java,v 1.7 2006/02/17 11:54:42 psoares33 Exp $
- * $Name: $
- *
- * Copyright 2005 by Carsten Hammer.
- *
- * 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 (C) 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 (C) 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.tools;
-
-import java.awt.*;
-import javax.swing.*;
-import java.awt.BorderLayout;
-import com.lowagie.text.Document;
-import com.lowagie.tools.plugins.*;
-import java.util.Iterator;
-import java.util.TreeSet;
-import java.awt.Dimension;
-import java.util.Properties;
-
-/**
- * JFrame that shows the versions of all the plugins.
- */
-public class Versions extends JFrame {
- /**
- * Constructs a JFrame.
- */
- public Versions() {
- super("Plugins and their version");
- try {
- jbInit();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
-
- /**
- * Main method (test purposes only)
- *
- * @param args
- */
- public static void main(String[] args) {
- Versions untitled1 = new Versions();
- }
-
- private void jbInit() throws Exception {
- this.getContentPane().setLayout(borderLayout1);
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
-
- Iterator it = new TreeSet(AbstractTool.versionsarray).iterator();
-
- while (it.hasNext()) {
- sb.append("<p>");
- sb.append((String) it.next());
- sb.append("</p>");
- }
-
- sb.append("</html>");
- jLabel1.setText(sb.toString());
- jScrollPane1.setMinimumSize(new Dimension(160, 140));
- this.getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
- Properties properties = System.getProperties();
- Runtime runtime = Runtime.getRuntime();
- sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>iText version: "
- + Document.getVersion() + "</p>");
- sb.append("<p>java.version: "
- + properties.getProperty("java.version") + "</p>");
- sb.append("<p>java.vendor: "
- + properties.getProperty("java.vendor") + "</p>");
- sb.append("<p>java.home: " + properties.getProperty("java.home")
- + "</p>");
- sb.append("<p>java.freeMemory: "
- + String.valueOf(runtime.freeMemory()) + " bytes" + "</p>");
- sb.append("<p>java.totalMemory: "
- + String.valueOf(runtime.totalMemory()) + " bytes" + "</p>");
- sb.append("<p>user.home: " + properties.getProperty("user.home")
- + "</p>");
- sb.append("<p>os.name: " + properties.getProperty("os.name")
- + "</p>");
- sb.append("<p>os.arch: " + properties.getProperty("os.arch")
- + "</p>");
- sb.append("<p>os.version: " + properties.getProperty("os.version")
- + "</p>");
- sb.append("</html>");
- jLabel2.setText(sb.toString());
- jScrollPane1.setViewportView(jLabel1);
- this.getContentPane().add(jLabel2, java.awt.BorderLayout.NORTH);
- pack();
- }
-
- JLabel jLabel1 = new JLabel();
-
- BorderLayout borderLayout1 = new BorderLayout();
-
- JLabel jLabel2 = new JLabel();
-
- JScrollPane jScrollPane1 = new JScrollPane();
-}
-
diff --git a/src/main/java/com/lowagie/tools/arguments/BitsetArgument.java b/src/main/java/com/lowagie/tools/arguments/BitsetArgument.java
deleted file mode 100644
index 63d79af..0000000
--- a/src/main/java/com/lowagie/tools/arguments/BitsetArgument.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * $Id: BitsetArgument.java,v 1.5 2006/05/30 09:13:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.awt.event.ActionEvent;
-
-import javax.swing.JCheckBox;
-import javax.swing.JOptionPane;
-
-import com.lowagie.tools.plugins.AbstractTool;
-
-/**
- * Argument that results in a set of "1" and "0" values.
- */
-public class BitsetArgument extends ToolArgument {
- /** These are the different options that can be true or false. */
- private JCheckBox[] options;
-
- /**
- * Constructs an BitsetArgument.
- * @param tool the tool that needs this argument
- * @param name the name of the argument
- * @param description the description of the argument
- * @param options the different options that can be true or false
- */
- public BitsetArgument(AbstractTool tool, String name, String description, String[] options) {
- super(tool, name, description, String.class.getName());
- this.options = new JCheckBox[options.length];
- for (int i = 0; i < options.length; i++) {
- this.options[i] = new JCheckBox(options[i]);
- }
- }
-
- /**
- * Gets the argument as an object.
- * @return an object
- * @throws InstantiationException
- */
- public Object getArgument() throws InstantiationException {
- return value;
- }
-
- /**
- * @see com.lowagie.tools.arguments.ToolArgument#getUsage()
- */
- public String getUsage() {
- StringBuffer buf = new StringBuffer(super.getUsage());
- buf.append(" possible options:\n");
- for (int i = 0; i < options.length; i++) {
- buf.append(" - ");
- buf.append(options[i].getText());
- buf.append("\n");
- }
- return buf.toString();
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent evt) {
- Object[] message = new Object[1 + options.length];
- message[0] = "Check the options you need:";
- for(int i = 0; i < options.length; i++ ) {
- message[i+1] = options[i];
- }
- int result = JOptionPane.showOptionDialog(
- tool.getInternalFrame(),
- message,
- description,
- JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.QUESTION_MESSAGE,
- null,
- null,
- null
- );
- if (result == 0) {
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < options.length; i++) {
- if (options[i].isSelected()) {
- buf.append("1");
- }
- else {
- buf.append("0");
- }
- }
- setValue(buf.toString());
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/DirFilter.java b/src/main/java/com/lowagie/tools/arguments/DirFilter.java
deleted file mode 100644
index def64a4..0000000
--- a/src/main/java/com/lowagie/tools/arguments/DirFilter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2005 by Johannes Schindelin.
- *
- * 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'.
- *
- *
- * 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.tools.arguments;
-
-import java.io.File;
-
-import javax.swing.filechooser.FileFilter;
-
-/**
- * Filters directories in a JFileChooser.
- */
-public class DirFilter extends FileFilter {
-
- /**
- * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
- */
- public boolean accept(File f) {
- if (f.isDirectory()) return true;
- return false;
- }
-
- /**
- * @see javax.swing.filechooser.FileFilter#getDescription()
- */
- public String getDescription() {
- return "directories";
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/FileArgument.java b/src/main/java/com/lowagie/tools/arguments/FileArgument.java
deleted file mode 100644
index f110bbe..0000000
--- a/src/main/java/com/lowagie/tools/arguments/FileArgument.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * $Id: FileArgument.java,v 1.7 2006/05/30 09:13:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.awt.event.ActionEvent;
-import java.io.File;
-
-import javax.swing.JFileChooser;
-import javax.swing.filechooser.FileFilter;
-
-import com.lowagie.tools.plugins.AbstractTool;
-
-/**
- * ToolArgument class if the argument is a java.io.File.
- */
-public class FileArgument extends ToolArgument {
- /** a filter to put on the FileChooser. */
- private FileFilter filter;
- /** indicates if the argument has to point to a new or an existing file. */
- private boolean newFile;
- /** the label */
- LabelAccessory label = null;
-// final static String PROPERTYFILENAME="inputfilename";
- /**
- * Constructs a FileArgument.
- * @param tool the tool that needs this argument
- * @param name the name of the argument
- * @param description the description of the argument
- * @param newFile makes the difference between an Open or Save dialog
- * @param filter
- */
- public FileArgument(AbstractTool tool, String name, String description, boolean newFile, FileFilter filter) {
- super(tool, name, description, File.class.getName());
- this.newFile = newFile;
- this.filter = filter;
- }
- /**
- * Constructs a FileArgument.
- * @param tool the tool that needs this argument
- * @param name the name of the argument
- * @param description the description of the argument
- * @param newFile makes the difference between an Open or Save dialog
- */
- public FileArgument(AbstractTool tool, String name, String description, boolean newFile) {
- this(tool, name, description, newFile, null);
- }
-
- /**
- * Gets the argument as an object.
- * @return an object
- * @throws InstantiationException
- */
- public Object getArgument() throws InstantiationException {
- if (value == null) return null;
- try {
- return new File(value);
- } catch (Exception e) {
- throw new InstantiationException(e.getMessage());
- }
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent e) {
- JFileChooser fc = new JFileChooser();
-
- if (filter != null) {
- fc.setFileFilter(filter);
- if (filter instanceof DirFilter)
- fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
- }
- if (label != null) {
- fc.setAccessory(label);
- fc.addPropertyChangeListener(
- JFileChooser.SELECTED_FILE_CHANGED_PROPERTY, label);
- }
- if (newFile) {
- fc.showSaveDialog(tool.getInternalFrame());
- }
- else {
- fc.showOpenDialog(tool.getInternalFrame());
- }
- try {
- setValue(fc.getSelectedFile().getAbsolutePath());
- }
- catch(NullPointerException npe) {
- }
- }
-
- /**
- * @return Returns the filter.
- */
- public FileFilter getFilter() {
- return filter;
- }
- /**
- * @param filter The filter to set.
- */
- public void setFilter(FileFilter filter) {
- this.filter = filter;
- }
- /**
- * @return Returns the label.
- */
- public LabelAccessory getLabel() {
- return label;
- }
- /**
- * @param label The label to set.
- */
- public void setLabel(LabelAccessory label) {
- this.label = label;
- }
-
-
-
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/ImageArgument.java b/src/main/java/com/lowagie/tools/arguments/ImageArgument.java
deleted file mode 100644
index 063d347..0000000
--- a/src/main/java/com/lowagie/tools/arguments/ImageArgument.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * $Id: ImageArgument.java,v 1.4 2006/05/30 09:13:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFileChooser;
-import javax.swing.filechooser.FileFilter;
-
-import com.lowagie.text.Image;
-import com.lowagie.tools.plugins.AbstractTool;
-
-/**
- * ToolArgument class if the argument is a com.lowagie.text.Image.
- */
-public class ImageArgument extends ToolArgument {
- /** a filter to put on the FileChooser. */
- private FileFilter filter;
-
- /**
- * Constructs a FileArgument.
- * @param tool the tool that needs this argument
- * @param name the name of the argument
- * @param description the description of the argument
- * @param filter a custom filter
- */
- public ImageArgument(AbstractTool tool, String name, String description, FileFilter filter) {
- super(tool, name, description, Image.class.getName());
- this.filter = filter;
- }
-
- /**
- * Constructs a FileArgument.
- * @param tool the tool that needs this argument
- * @param name the name of the argument
- * @param description the description of the argument
- */
- public ImageArgument(AbstractTool tool, String name, String description) {
- this(tool, name, description, new ImageFilter());
- }
-
- /**
- * Gets the argument as an object.
- * @return an object
- * @throws InstantiationException
- */
- public Object getArgument() throws InstantiationException {
- if (value == null) return null;
- try {
- return Image.getInstance(value);
- } catch (Exception e) {
- throw new InstantiationException(e.getMessage());
- }
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent e) {
- JFileChooser fc = new JFileChooser();
- if (filter != null) fc.setFileFilter(filter);
- fc.showOpenDialog(tool.getInternalFrame());
- try {
- setValue(fc.getSelectedFile().getAbsolutePath());
- }
- catch(NullPointerException npe) {
- }
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/ImageFilter.java b/src/main/java/com/lowagie/tools/arguments/ImageFilter.java
deleted file mode 100644
index 24c1d64..0000000
--- a/src/main/java/com/lowagie/tools/arguments/ImageFilter.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * $Id: ImageFilter.java,v 1.2 2006/02/02 18:50:07 psoares33 Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.io.File;
-
-import javax.swing.filechooser.FileFilter;
-
-/**
- * Filters images in a FileChooser.
- */
-public class ImageFilter extends FileFilter {
-
- /** Array with all kinds of image extensions. */
- public static final String[] IMAGES = new String[8];
- static {
- IMAGES[0] = ".jpg";
- IMAGES[1] = ".jpeg";
- IMAGES[2] = ".png";
- IMAGES[3] = ".gif";
- IMAGES[4] = ".bmp";
- IMAGES[5] = ".wmf";
- IMAGES[6] = ".tif";
- IMAGES[7] = ".tiff";
- }
-
- /** array that enables you to filter on imagetypes. */
- public boolean[] filter = new boolean[8];
-
- /**
- * Constructs an ImageFilter allowing all images.
- */
- public ImageFilter() {
- for (int i = 0; i < filter.length; i++) {
- filter[i] = true;
- }
- }
-
- /**
- * Constructs an ImageFilter allowing some images.
- * @param jpeg indicates if jpegs are allowed
- * @param png indicates if pngs are allowed
- * @param gif indicates if gifs are allowed
- * @param bmp indicates if bmps are allowed
- * @param wmf indicates if wmfs are allowed
- * @param tiff indicates if tiffs are allowed
- */
- public ImageFilter(boolean jpeg, boolean png, boolean gif, boolean bmp, boolean wmf, boolean tiff) {
- if (jpeg) {
- filter[0] = true;
- filter[1] = true;
- }
- if (png) {
- filter[2] = true;
- }
- if (gif) {
- filter[3] = true;
- }
- if (bmp) {
- filter[4] = true;
- }
- if (wmf) {
- filter[5] = true;
- }
- if (tiff) {
- filter[6] = true;
- filter[7] = true;
- }
- }
-
- /**
- * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
- */
- public boolean accept(File f) {
- if (f.isDirectory()) return true;
- for (int i = 0; i < IMAGES.length; i++) {
- if (filter[i] && f.getName().toLowerCase().endsWith(IMAGES[i])) return true;
- }
- return false;
- }
-
- /**
- * @see javax.swing.filechooser.FileFilter#getDescription()
- */
- public String getDescription() {
- return "Image files";
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/arguments/LabelAccessory.java b/src/main/java/com/lowagie/tools/arguments/LabelAccessory.java
deleted file mode 100644
index dff5adc..0000000
--- a/src/main/java/com/lowagie/tools/arguments/LabelAccessory.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * $Id: LabelAccessory.java,v 1.4 2005/12/19 07:51:35 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Carsten Hammer.
- *
- * 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 (C) 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 (C) 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.tools.arguments;
-
-import java.beans.*;
-import java.io.*;
-
-import java.awt.*;
-import javax.swing.*;
-
-import com.lowagie.text.pdf.*;
-import java.util.HashMap;
-import java.util.TimeZone;
-import java.util.Calendar;
-import java.util.Locale;
-import java.util.Date;
-
-/**
- * Label for the FileChooser
- */
-public class LabelAccessory
- extends JPanel implements PropertyChangeListener {
-
- String filename = "";
-
- BorderLayout borderLayout1 = new BorderLayout();
-
- JLabel jLabel1 = new JLabel();
-
- JPanel jPanel2 = new JPanel();
-
- BorderLayout borderLayout2 = new BorderLayout();
- JScrollPane jScrollPane1 = new JScrollPane();
-
- public LabelAccessory() {
- try {
- this.setLayout(borderLayout1);
- jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
- jPanel2.setLayout(borderLayout2);
- this.add(jPanel2, java.awt.BorderLayout.CENTER);
- jScrollPane1.setPreferredSize(new Dimension(200, 200));
- jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
- jScrollPane1.setViewportView(jLabel1);
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- }
-
- public void createTextFromPDF(File file) {
- if (file.exists()) {
- int page = 1;
- PdfReader reader = null;
-
- try {
- reader = new PdfReader(file.getAbsolutePath());
- HashMap pdfinfo = reader.getInfo();
-
- StringBuffer sb = new StringBuffer();
- sb.append("<html>=== Document Information ===<p>");
- sb.append(reader.getCropBox(page).height() + "*"
- + reader.getCropBox(page).width() + "<p>");
- sb.append("PDF Version: " + reader.getPdfVersion() + "<p>");
- sb.append("Number of pages: " + reader.getNumberOfPages()
- + "<p>");
- sb.append("Number of PDF objects: " + reader.getXrefSize()
- + "<p>");
- sb.append("File length: " + reader.getFileLength() + "<p>");
- sb.append("Encrypted= " + reader.isEncrypted() + "<p>");
- if (pdfinfo.get("Title") != null) {
- sb.append("Title= " + pdfinfo.get("Title") + "<p>");
- }
- if (pdfinfo.get("Author") != null) {
- sb.append("Author= " + pdfinfo.get("Author") + "<p>");
- }
- if (pdfinfo.get("Subject") != null) {
- sb.append("Subject= " + pdfinfo.get("Subject") + "<p>");
- }
- if (pdfinfo.get("Producer") != null) {
- sb.append("Producer= " + pdfinfo.get("Producer") + "<p>");
- }
- if (pdfinfo.get("ModDate") != null) {
- sb.append("ModDate= " +
- PdfDate.decode(pdfinfo.get("ModDate").toString()).getTime() +
- "<p>");
- }
- if (pdfinfo.get("CreationDate") != null) {
- sb.append("CreationDate= " +
- PdfDate.decode(pdfinfo.get("CreationDate").toString()).getTime() +
- "<p>");
- }
- sb.append("</html>");
- jLabel1.setText(sb.toString());
- }
- catch (IOException ex) {
- jLabel1.setText("");
- }
- }
- }
-
- public void propertyChange(PropertyChangeEvent evt) {
- filename = evt.getPropertyName();
- if (filename.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) {
- File file = (File) evt.getNewValue();
- if (file != null) {
- this.createTextFromPDF(file);
- this.repaint();
- }
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/OptionArgument.java b/src/main/java/com/lowagie/tools/arguments/OptionArgument.java
deleted file mode 100644
index 28d4eda..0000000
--- a/src/main/java/com/lowagie/tools/arguments/OptionArgument.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * $Id: OptionArgument.java,v 1.8 2006/05/30 09:13:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.awt.event.ActionEvent;
-import java.util.Iterator;
-import java.util.TreeMap;
-
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-
-import com.lowagie.tools.plugins.AbstractTool;
-
-/**
- * Argument that can be one of several options.
- */
-public class OptionArgument extends ToolArgument {
-
- /**
- * An Entry that can be chosen as option.
- */
- public class Entry {
- /** Describes the option. */
- private Object description;
- /** Holds the actual value of the option. */
- private Object value;
- /**
- * Constructs an entry.
- * @param value the value of the entry (that wil be identical to the description)
- */
- public Entry(Object value) {
- this.value = value;
- this.description = value;
- }
- /**
- * Constructs an entry.
- * @param description the description of the entry
- * @param value the value of the entry
- */
- public Entry(Object description, Object value) {
- this.description = description;
- this.value = value;
- }
- /**
- * String representation of the Entry.
- * @return a description of the entry
- */
- public String toString() {
- return description.toString();
- }
- /**
- * Gets the value of the String.
- * @return the toString of the value
- */
- public String getValueToString() {
- return value.toString();
- }
- /**
- * @return Returns the description.
- */
- public Object getDescription() {
- return description;
- }
- /**
- * @param description The description to set.
- */
- public void setDescription(Object description) {
- this.description = description;
- }
- /**
- * @return Returns the value.
- */
- public Object getValue() {
- return value;
- }
- /**
- * @param value The value to set.
- */
- public void setValue(Object value) {
- this.value = value;
- }
- }
-
- private TreeMap options = new TreeMap();
-
- /**
- * Constructs an OptionArgument.
- * @param tool the tool that needs this argument
- * @param name the name of the argument
- * @param description the description of the argument
- */
- public OptionArgument(AbstractTool tool, String name, String description) {
- super(tool, name, description, Entry.class.getName());
- }
-
- /**
- * Adds an Option.
- * @param description the description of the option
- * @param value the value of the option
- */
- public void addOption(Object description, Object value) {
- options.put(value.toString(), new Entry(description, value));
- }
-
- /**
- * Gets the argument as an object.
- * @return an object
- * @throws InstantiationException
- */
- public Object getArgument() throws InstantiationException {
- if (value == null) return null;
- try {
- return ((Entry)options.get(value)).getValue();
- } catch (Exception e) {
- throw new InstantiationException(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.arguments.ToolArgument#getUsage()
- */
- public String getUsage() {
- StringBuffer buf = new StringBuffer(super.getUsage());
- buf.append(" possible options:\n");
- Entry entry;
- for (Iterator i = options.values().iterator(); i.hasNext(); ) {
- entry = (Entry)i.next();
- buf.append(" - ");
- buf.append(entry.getValueToString());
- buf.append(": ");
- buf.append(entry.toString());
- buf.append("\n");
- }
- return buf.toString();
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent evt) {
- Object[] message = new Object[2];
- message[0] = "Choose one of the following options:";
- JComboBox cb = new JComboBox();
- for(Iterator i = options.values().iterator(); i.hasNext(); ) {
- cb.addItem(i.next());
- }
- message[1] = cb;
- int result = JOptionPane.showOptionDialog(
- tool.getInternalFrame(),
- message,
- description,
- JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.QUESTION_MESSAGE,
- null,
- null,
- null
- );
- if (result == 0) {
- Entry entry = (Entry)cb.getSelectedItem();
- setValue(entry.getValueToString());
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/PageSelectionTableDialog.java b/src/main/java/com/lowagie/tools/arguments/PageSelectionTableDialog.java
deleted file mode 100644
index cf14442..0000000
--- a/src/main/java/com/lowagie/tools/arguments/PageSelectionTableDialog.java
+++ /dev/null
@@ -1,243 +0,0 @@
-package com.lowagie.tools.arguments;
-
-import java.awt.*;
-import javax.swing.*;
-import javax.swing.table.*;
-import java.awt.BorderLayout;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-/**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
- * @author not attributable
- * @version 1.0
- */
-public class PageSelectionTableDialog
- extends JDialog {
- JPanel panel1 = new JPanel();
- BorderLayout borderLayout1 = new BorderLayout();
- ListSelectionModel listSelectionModel1;
- JTable jTable1 = new JTable();
- JScrollPane jScrollPane1 = new JScrollPane();
- String selectionstring = "";
- JLabel jLabel1 = new JLabel();
- BorderLayout borderLayout2 = new BorderLayout();
- JPanel jPanel1 = new JPanel();
- JButton alljButton1 = new JButton();
- JButton oddjButton2 = new JButton();
- JButton evenjButton3 = new JButton();
- JToggleButton jToggleButton1 = new JToggleButton();
- JButton none = new JButton();
-
- public PageSelectionTableDialog(JInternalFrame owner, String title, boolean modal) {
- super(new Frame(), title, modal);
-// super( title);
- try {
- setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- jbInit();
- pack();
- }
- catch (Exception exception) {
- exception.printStackTrace();
- }
- }
-
- public PageSelectionTableDialog(JInternalFrame jinternalframe) {
- this(jinternalframe, "", false);
- }
-
- private void jbInit() throws Exception {
- panel1.setLayout(borderLayout1);
- this.getContentPane().setLayout(borderLayout2);
- alljButton1.setText("all");
- alljButton1.addActionListener(new
- PageSelectionTableDialog_jButton1_actionAdapter(this));
- oddjButton2.setText("odd");
- oddjButton2.addActionListener(new
- PageSelectionTableDialog_jButton2_actionAdapter(this));
- evenjButton3.setText("even");
- evenjButton3.addActionListener(new
- PageSelectionTableDialog_jButton3_actionAdapter(this));
- jToggleButton1.setText("swap");
- jToggleButton1.addActionListener(new
- PageSelectionTableDialog_jToggleButton1_actionAdapter(this));
- none.setText("none");
- none.addActionListener(new PageSelectionTableDialog_none_actionAdapter(this));
-
- panel1.add(jScrollPane1, java.awt.BorderLayout.CENTER);
- panel1.add(jLabel1, java.awt.BorderLayout.SOUTH);
- this.getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);
- jPanel1.add(none);
- jPanel1.add(jToggleButton1);
- jPanel1.add(evenjButton3);
- jPanel1.add(oddjButton2);
- jPanel1.add(alljButton1);
- this.getContentPane().add(panel1, java.awt.BorderLayout.CENTER);
- jScrollPane1.setViewportView(jTable1);
- listSelectionModel1 = jTable1.getSelectionModel();
- listSelectionModel1.addListSelectionListener(new
- PageSelectionTableDialog_listSelectionModel1_listSelectionAdapter(this));
- }
-
- public void setDataModel(TableModel dataModel) {
- TableSorter sorter = new TableSorter(dataModel);
- jTable1.setModel(sorter);
- sorter.addMouseListenerToHeaderInTable(jTable1);
- this.repaint();
- }
-
- public void listSelectionModel1_valueChanged(ListSelectionEvent e) {
- if (!e.getValueIsAdjusting()) {
- pulllistselectionmodel();
- }
- }
-
- private void pulllistselectionmodel() {
- TableSorter mysorter = (TableSorter) jTable1.getModel();
- int[] values = jTable1.getSelectedRows();
- int max = jTable1.getSelectedRowCount();
- int[] swappedvalues = new int[max];
-
- if (jToggleButton1.getModel().isSelected()) {
- for (int i = 0; i < max; i+=2) {
- int second=(i+1)<max?i+1:i;
- swappedvalues[i] = mysorter.getModelrow(values[second]) + 1;
- swappedvalues[second] = mysorter.getModelrow(values[i]) + 1;
- }
- }
- else {
- for (int i = 0; i < max; i++) {
- swappedvalues[i] = mysorter.getModelrow(values[i]) + 1;
- }
-
- }
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < max; i++) {
- sb.append(swappedvalues[i]);
- if ( (i + 1) < max) {
- sb.append(",");
- }
- }
-
- jLabel1.setText(sb.toString());
- this.firePropertyChange(PageSelectorToolArgument.
- PROPERTYPAGESELECTIONSTRING, selectionstring,
- sb.toString());
- selectionstring = sb.toString();
- }
-
- public void jButton1_actionPerformed(ActionEvent e) {
- listSelectionModel1.addSelectionInterval(0, jTable1.getRowCount() - 1);
- jTable1.repaint();
- }
-
- public void jButton3_actionPerformed(ActionEvent e) {
- for (int i = 0; i < jTable1.getRowCount(); i += 2) {
- listSelectionModel1.addSelectionInterval(i, i);
- }
- jTable1.repaint();
- }
-
- public void jButton2_actionPerformed(ActionEvent e) {
- for (int i = 1; i < jTable1.getRowCount(); i += 2) {
- listSelectionModel1.addSelectionInterval(i, i);
- }
- jTable1.repaint();
- }
-
- public void jToggleButton1_actionPerformed(ActionEvent e) {
- pulllistselectionmodel();
- }
-
- public void none_actionPerformed(ActionEvent e) {
- listSelectionModel1.clearSelection();
- jTable1.repaint();
- }
-}
-
-class PageSelectionTableDialog_none_actionAdapter
- implements ActionListener {
- private PageSelectionTableDialog adaptee;
- PageSelectionTableDialog_none_actionAdapter(PageSelectionTableDialog adaptee) {
- this.adaptee = adaptee;
- }
-
- public void actionPerformed(ActionEvent e) {
- adaptee.none_actionPerformed(e);
- }
-}
-
-class PageSelectionTableDialog_jToggleButton1_actionAdapter
- implements ActionListener {
- private PageSelectionTableDialog adaptee;
- PageSelectionTableDialog_jToggleButton1_actionAdapter(
- PageSelectionTableDialog adaptee) {
- this.adaptee = adaptee;
- }
-
- public void actionPerformed(ActionEvent e) {
- adaptee.jToggleButton1_actionPerformed(e);
- }
-}
-
-class PageSelectionTableDialog_jButton2_actionAdapter
- implements ActionListener {
- private PageSelectionTableDialog adaptee;
- PageSelectionTableDialog_jButton2_actionAdapter(PageSelectionTableDialog
- adaptee) {
- this.adaptee = adaptee;
- }
-
- public void actionPerformed(ActionEvent e) {
- adaptee.jButton2_actionPerformed(e);
- }
-}
-
-class PageSelectionTableDialog_jButton3_actionAdapter
- implements ActionListener {
- private PageSelectionTableDialog adaptee;
- PageSelectionTableDialog_jButton3_actionAdapter(PageSelectionTableDialog
- adaptee) {
- this.adaptee = adaptee;
- }
-
- public void actionPerformed(ActionEvent e) {
-
- adaptee.jButton3_actionPerformed(e);
- }
-}
-
-class PageSelectionTableDialog_jButton1_actionAdapter
- implements ActionListener {
- private PageSelectionTableDialog adaptee;
- PageSelectionTableDialog_jButton1_actionAdapter(PageSelectionTableDialog
- adaptee) {
- this.adaptee = adaptee;
- }
-
- public void actionPerformed(ActionEvent e) {
- adaptee.jButton1_actionPerformed(e);
- }
-}
-
-class PageSelectionTableDialog_listSelectionModel1_listSelectionAdapter
- implements ListSelectionListener {
- private PageSelectionTableDialog adaptee;
- PageSelectionTableDialog_listSelectionModel1_listSelectionAdapter(
- PageSelectionTableDialog adaptee) {
- this.adaptee = adaptee;
- }
-
- public void valueChanged(ListSelectionEvent e) {
- adaptee.listSelectionModel1_valueChanged(e);
- }
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/PageSelectorToolArgument.java b/src/main/java/com/lowagie/tools/arguments/PageSelectorToolArgument.java
deleted file mode 100644
index 6911468..0000000
--- a/src/main/java/com/lowagie/tools/arguments/PageSelectorToolArgument.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * $Id: PageSelectorToolArgument.java,v 1.3 2006/05/30 09:13:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous known 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 (C) 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 (C) 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.tools.arguments;
-
-import java.awt.event.ActionEvent;
-import java.beans.PropertyChangeEvent;
-
-import com.lowagie.tools.plugins.AbstractTool;
-
-/**
- * Argument that allows you to select a (set of) page(s).
- */
-public class PageSelectorToolArgument
- extends ToolArgument {
-// public final static String PROPERTYFILENAME = "inputfilename";
- public final static String PROPERTYPAGESELECTIONSTRING =
- "pageselectionstring";
-
- public PageSelectorToolArgument(AbstractTool tool, String name,
- String description,
- String classname) {
- super(tool, name, description, classname);
-
- }
-
- public void actionPerformed(ActionEvent e) {
- if (jDialog1 != null) {
- jDialog1.show();
- }
- }
-
- public Object getArgument() throws InstantiationException {
- if (value == null) {
- return null;
- }
- return value;
- }
-
- public void propertyChange(PropertyChangeEvent evt) {
- String propertyname = evt.getPropertyName();
- if (jDialog1 == null) {
- actionPerformed(null);
- }
- if (propertyname == null) {
- return;
- }
- else if (propertyname.equals(name)) {
- String filename = (String) evt.getNewValue();
- if(jDialog1!=null)jDialog1.hide();
- jDialog1 = new PageSelectionTableDialog(tool.getInternalFrame());
- jDialog1.show();
- jDialog1.addPropertyChangeListener(this);
- jDialog1.setDataModel(new PageTableModel(filename));
- jDialog1.setTitle(filename);
- }
- else if (propertyname.equals(PROPERTYPAGESELECTIONSTRING)) {
- String pageselectionstring = (String) evt.getNewValue();
- System.out.print(" Oldvalue:" + evt.getOldValue());
- System.out.println(" Newvalue:" + pageselectionstring);
- setValue(pageselectionstring, PROPERTYPAGESELECTIONSTRING);
- }
- }
-
- PageSelectionTableDialog jDialog1 = null;
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/PageSizeArgument.java b/src/main/java/com/lowagie/tools/arguments/PageSizeArgument.java
deleted file mode 100644
index c8cdb0c..0000000
--- a/src/main/java/com/lowagie/tools/arguments/PageSizeArgument.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * $Id: PageSizeArgument.java,v 1.3 2006/05/30 09:13:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.awt.event.ActionEvent;
-import java.lang.reflect.Field;
-import java.util.Iterator;
-import java.util.TreeMap;
-
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.PageSize;
-import com.lowagie.text.Rectangle;
-import com.lowagie.tools.plugins.AbstractTool;
-
-/**
- * Argument that can be one of several options.
- */
-public class PageSizeArgument extends OptionArgument {
-
- private TreeMap options = new TreeMap();
-
- /**
- * Constructs an OptionArgument.
- *
- * @param tool
- * the tool that needs this argument
- * @param name
- * the name of the argument
- * @param description
- * the description of the argument
- */
- public PageSizeArgument(AbstractTool tool, String name, String description) {
- super(tool, name, description);
- Class ps = PageSize.class;
- Field[] sizes = ps.getDeclaredFields();
- try {
- for (int i = 0; i < sizes.length; i++) {
- addOption(sizes[i].getName(), sizes[i].get(null));
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * Adds an Option.
- * @param description the description of the option
- * @param value the value of the option
- */
- public void addOption(Object description, Object value) {
- options.put(description, value);
- }
-
- /**
- * Gets the options.
- * @return Returns the options.
- */
- public TreeMap getOptions() {
- return options;
- }
-
- /**
- * Gets the argument as an object.
- * @return an object
- * @throws InstantiationException
- */
- public Object getArgument() throws InstantiationException {
- if (value == null) return null;
- try {
- return ((Rectangle)options.get(value));
- } catch (Exception e) {
- throw new InstantiationException(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.arguments.ToolArgument#getUsage()
- */
- public String getUsage() {
- StringBuffer buf = new StringBuffer(" ");
- buf.append(name);
- buf.append(" - ");
- buf.append(description);
- buf.append("\n");
- buf.append(" possible options:\n");
- String s;
- for (Iterator i = options.keySet().iterator(); i.hasNext(); ) {
- s = (String)i.next();
- buf.append(" - ");
- buf.append(s);
- buf.append("\n");
- }
- return buf.toString();
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent evt) {
- Object[] message = new Object[2];
- message[0] = "Choose one of the following pagesizes:";
- JComboBox cb = new JComboBox();
- for(Iterator i = options.keySet().iterator(); i.hasNext(); ) {
- cb.addItem(i.next());
- }
- message[1] = cb;
- int result = JOptionPane.showOptionDialog(
- tool.getInternalFrame(),
- message,
- description,
- JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.QUESTION_MESSAGE,
- null,
- null,
- null
- );
- if (result == 0) {
- setValue((String)cb.getSelectedItem());
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/PageTableModel.java b/src/main/java/com/lowagie/tools/arguments/PageTableModel.java
deleted file mode 100644
index 0e44123..0000000
--- a/src/main/java/com/lowagie/tools/arguments/PageTableModel.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * $Id: PageTableModel.java,v 1.2 2005/10/23 09:35:48 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by anonymous contributor known 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 (C) 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 (C) 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.tools.arguments;
-
-import javax.swing.table.*;
-import com.lowagie.text.pdf.PdfReader;
-import java.io.*;
-import com.lowagie.text.Rectangle;
-import java.util.ArrayList;
-import java.text.DecimalFormat;
-
-/**
- * A table that shows info about the pages in a PDF document.
- */
-public class PageTableModel
- extends AbstractTableModel {
- int seitenzahl;
- PdfReader reader;
- ArrayList auftragarray = new ArrayList();
- DecimalFormat myFormatter = new DecimalFormat("00000");
- public PageTableModel(String filename) {
- super();
- try {
- reader = new PdfReader(filename);
- seitenzahl = reader.getNumberOfPages();
- }
- catch (IOException ex) {
- throw new RuntimeException("Datei " + filename +
- " lässt sich nicht lesen!");
- }
- }
-
- /**
- * Returns the number of columns in the model.
- *
- * @return the number of columns in the model
- * @todo Implement this javax.swing.table.TableModel method
- */
- public int getColumnCount() {
- return 4;
- }
-
- /**
- * Returns the number of rows in the model.
- *
- * @return the number of rows in the model
- * @todo Implement this javax.swing.table.TableModel method
- */
- public int getRowCount() {
- return seitenzahl;
- }
-
- /**
- * Returns the value for the cell at <code>columnIndex</code> and <code>rowIndex</code>.
- *
- * @param rowIndex the row whose value is to be queried
- * @param columnIndex the column whose value is to be queried
- * @return the value Object at the specified cell
- * @todo Implement this javax.swing.table.TableModel method
- */
- public Object getValueAt(int rowIndex, int columnIndex) {
- Rectangle rec = reader.getPageSizeWithRotation(rowIndex + 1);
- switch (columnIndex) {
- case 0:
- return myFormatter.format(rowIndex + 1);
- case 1:
- return new Float(rec.width());
- case 2:
- return new Float(rec.height());
- case 3:
- return new Float(rec.getRotation());
- }
- return null;
- }
-
- public String getColumnName(int column) {
- String name = new Integer(column + 1).toString();
- switch (column) {
- case 0:
- name = "<html>Pagenr<p>" + name + "</html>";
- break;
- case 1:
- name = "<html>Weidth<p>" + name + "</html>";
- break;
- case 2:
- name = "<html>Height<p>" + name + "</html>";
- break;
- case 3:
- name = "<html>Rotation<p>" + name + "</html>";
- break;
-
- default:
- name = "<html>-<p>" + name + "</html>";
- break;
- }
- return name;
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/PdfFilter.java b/src/main/java/com/lowagie/tools/arguments/PdfFilter.java
deleted file mode 100644
index 5b0b8b4..0000000
--- a/src/main/java/com/lowagie/tools/arguments/PdfFilter.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id: PdfFilter.java,v 1.2 2005/10/24 06:33:31 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.io.File;
-
-import javax.swing.filechooser.FileFilter;
-
-/**
- * Filters PDF files in a JFileChooser.
- */
-public class PdfFilter extends FileFilter {
-
- /**
- * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
- */
- public boolean accept(File f) {
- if (f.isDirectory()) return true;
- if (f.getName().toLowerCase().endsWith(".pdf")) return true;
- return false;
- }
-
- /**
- * @see javax.swing.filechooser.FileFilter#getDescription()
- */
- public String getDescription() {
- return "*.pdf PDF files";
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/TableMap.java b/src/main/java/com/lowagie/tools/arguments/TableMap.java
deleted file mode 100644
index 58308ee..0000000
--- a/src/main/java/com/lowagie/tools/arguments/TableMap.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.lowagie.tools.arguments;
-/*
- * @(#)TableMap.java 1.4 97/12/17
- *
- * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
- *
- * This software is the confidential and proprietary information of Sun
- * Microsystems, Inc. ("Confidential Information"). You shall not
- * disclose such Confidential Information and shall use it only in
- * accordance with the terms of the license agreement you entered into
- * with Sun.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
- * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
- * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
- * THIS SOFTWARE OR ITS DERIVATIVES.
- *
- */
-
-/**
- * In a chain of data manipulators some behaviour is common. TableMap
- * provides most of this behavour and can be subclassed by filters
- * that only need to override a handful of specific methods. TableMap
- * implements TableModel by routing all requests to its model, and
- * TableModelListener by routing all events to its listeners. Inserting
- * a TableMap which has not been subclassed into a chain of table filters
- * should have no effect.
- *
- * @version 1.4 12/17/97
- * @author Philip Milne */
-
-import javax.swing.table.*;
-import javax.swing.event.TableModelListener;
-import javax.swing.event.TableModelEvent;
-
-public class TableMap extends AbstractTableModel implements TableModelListener
-{
- protected TableModel model;
-
- public TableModel getModel() {
- return model;
- }
-
- public void setModel(TableModel model) {
- this.model = model;
- model.addTableModelListener(this);
- }
-
- // By default, Implement TableModel by forwarding all messages
- // to the model.
-
- public Object getValueAt(int aRow, int aColumn) {
- return model.getValueAt(aRow, aColumn);
- }
-
- public void setValueAt(Object aValue, int aRow, int aColumn) {
- model.setValueAt(aValue, aRow, aColumn);
- }
-
- public int getRowCount() {
- return (model == null) ? 0 : model.getRowCount();
- }
-
- public int getColumnCount() {
- return (model == null) ? 0 : model.getColumnCount();
- }
-
- public String getColumnName(int aColumn) {
- return model.getColumnName(aColumn);
- }
-
- public Class getColumnClass(int aColumn) {
- return model.getColumnClass(aColumn);
- }
-
- public boolean isCellEditable(int row, int column) {
- return model.isCellEditable(row, column);
- }
-//
-// Implementation of the TableModelListener interface,
-//
-
- // By default forward all events to all the listeners.
- public void tableChanged(TableModelEvent e) {
- fireTableChanged(e);
- }
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/TableSorter.java b/src/main/java/com/lowagie/tools/arguments/TableSorter.java
deleted file mode 100644
index a921516..0000000
--- a/src/main/java/com/lowagie/tools/arguments/TableSorter.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/** Code contributed by Anonymous; looks like code that was reused from another application. */
-package com.lowagie.tools.arguments;
-
-import java.awt.event.InputEvent;
-
-// Imports for picking up mouse events from the JTable.
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-
-/*
- * @(#)TableSorter.java 1.5 97/12/17
- *
- * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
- *
- * This software is the confidential and proprietary information of Sun
- * Microsystems, Inc. ("Confidential Information"). You shall not
- * disclose such Confidential Information and shall use it only in
- * accordance with the terms of the license agreement you entered into
- * with Sun.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
- * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
- * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
- * THIS SOFTWARE OR ITS DERIVATIVES.
- *
- */
-
-/**
- * A sorter for TableModels. The sorter has a model (conforming to TableModel)
- * and itself implements TableModel. TableSorter does not store or copy
- * the data in the TableModel, instead it maintains an array of
- * integers which it keeps the same size as the number of rows in its
- * model. When the model changes it notifies the sorter that something
- * has changed eg. "rowsAdded" so that its internal array of integers
- * can be reallocated. As requests are made of the sorter (like
- * getValueAt(row, col) it redirects them to its model via the mapping
- * array. That way the TableSorter appears to hold another copy of the table
- * with the rows in a different order. The sorting algorthm used is stable
- * which means that it does not move around rows when its comparison
- * function returns 0 to denote that they are equivalent.
- *
- * @version 1.5 12/17/97
- * @author Philip Milne
- */
-import java.util.*;
-
-import javax.swing.JTable;
-import javax.swing.event.TableModelEvent;
-import javax.swing.table.JTableHeader;
-import javax.swing.table.TableColumnModel;
-import javax.swing.table.TableModel;
-
-public class TableSorter
- extends TableMap {
- int[] indexes;
- Vector sortingColumns = new Vector();
- boolean ascending = true;
- int compares;
-
- public TableSorter() {
- indexes = new int[0]; // For consistency.
- }
-
- public TableSorter(TableModel model) {
- setModel(model);
- }
-
- public void setModel(TableModel model) {
- super.setModel(model);
- reallocateIndexes();
- }
-
- public int compareRowsByColumn(int row1, int row2, int column) {
- Class type = model.getColumnClass(column);
- TableModel data = model;
-
- // Check for nulls
- Object o1 = data.getValueAt(row1, column);
- Object o2 = data.getValueAt(row2, column);
-
- // If both values are null return 0
- if ( (o1 == null) && (o2 == null)) {
- return 0;
- }
- else if (o1 == null) { // Define null less than everything.
-
- return -1;
- }
- else if (o2 == null) {
- return 1;
- }
-
- /* We copy all returned values from the getValue call in case
- an optimised model is reusing one object to return many values.
- The Number subclasses in the JDK are immutable and so will not be used in
- this way but other subclasses of Number might want to do this to save
- space and avoid unnecessary heap allocation.
- */
- if (type.getSuperclass() == java.lang.Number.class) {
- Number n1 = (Number) data.getValueAt(row1, column);
- double d1 = n1.doubleValue();
- Number n2 = (Number) data.getValueAt(row2, column);
- double d2 = n2.doubleValue();
-
- if (d1 < d2) {
- return -1;
- }
- else if (d1 > d2) {
- return 1;
- }
- else {
- return 0;
- }
- }
- else if (type == java.util.Date.class) {
- Date d1 = (Date) data.getValueAt(row1, column);
- long n1 = d1.getTime();
- Date d2 = (Date) data.getValueAt(row2, column);
- long n2 = d2.getTime();
-
- if (n1 < n2) {
- return -1;
- }
- else if (n1 > n2) {
- return 1;
- }
- else {
- return 0;
- }
- }
- else if (type == String.class) {
- String s1 = (String) data.getValueAt(row1, column);
- String s2 = (String) data.getValueAt(row2, column);
- int result = s1.compareTo(s2);
-
- if (result < 0) {
- return -1;
- }
- else if (result > 0) {
- return 1;
- }
- else {
- return 0;
- }
- }
- else if (type == Boolean.class) {
- Boolean bool1 = (Boolean) data.getValueAt(row1, column);
- boolean b1 = bool1.booleanValue();
- Boolean bool2 = (Boolean) data.getValueAt(row2, column);
- boolean b2 = bool2.booleanValue();
-
- if (b1 == b2) {
- return 0;
- }
- else if (b1) { // Define false < true
-
- return 1;
- }
- else {
- return -1;
- }
- }
- else {
- Object v1 = data.getValueAt(row1, column);
- String s1 = v1.toString();
- Object v2 = data.getValueAt(row2, column);
- String s2 = v2.toString();
- int result = s1.compareTo(s2);
-
- if (result < 0) {
- return -1;
- }
- else if (result > 0) {
- return 1;
- }
- else {
- return 0;
- }
- }
- }
-
- public int compare(int row1, int row2) {
- compares++;
-
- for (int level = 0; level < sortingColumns.size(); level++) {
- Integer column = (Integer) sortingColumns.elementAt(level);
- int result = compareRowsByColumn(row1, row2, column.intValue());
-
- if (result != 0) {
- return ascending ? result : ( -result);
- }
- }
-
- return 0;
- }
-
- public void reallocateIndexes() {
- int rowCount = model.getRowCount();
-
- // Set up a new array of indexes with the right number of elements
- // for the new data model.
- indexes = new int[rowCount];
-
- // Initialise with the identity mapping.
- for (int row = 0; row < rowCount; row++) {
- indexes[row] = row;
- }
- }
-
- public void tableChanged(TableModelEvent e) {
- //System.out.println("Sorter: tableChanged");
- reallocateIndexes();
- super.tableChanged(e);
- }
-
- public void checkModel() {
- if (indexes.length != model.getRowCount()) {
- System.err.println("Sorter not informed of a change in model.");
- }
- }
-
- public void sort(Object sender) {
- checkModel();
- compares = 0;
-
- // n2sort();
- // qsort(0, indexes.length-1);
- shuttlesort( (int[]) indexes.clone(), indexes, 0, indexes.length);
-
- //System.out.println("Compares: "+compares);
- }
-
- public void n2sort() {
- for (int i = 0; i < getRowCount(); i++) {
- for (int j = i + 1; j < getRowCount(); j++) {
- if (compare(indexes[i], indexes[j]) == -1) {
- swap(i, j);
- }
- }
- }
- }
-
- // This is a home-grown implementation which we have not had time
- // to research - it may perform poorly in some circumstances. It
- // requires twice the space of an in-place algorithm and makes
- // NlogN assigments shuttling the values between the two
- // arrays. The number of compares appears to vary between N-1 and
- // NlogN depending on the initial order but the main reason for
- // using it here is that, unlike qsort, it is stable.
- public void shuttlesort(int[] from, int[] to, int low, int high) {
- if ( (high - low) < 2) {
- return;
- }
-
- int middle = (low + high) / 2;
- shuttlesort(to, from, low, middle);
- shuttlesort(to, from, middle, high);
-
- int p = low;
- int q = middle;
-
- /* This is an optional short-cut; at each recursive call,
- check to see if the elements in this subset are already
- ordered. If so, no further comparisons are needed; the
- sub-array can just be copied. The array must be copied rather
- than assigned otherwise sister calls in the recursion might
- get out of sinc. When the number of elements is three they
- are partitioned so that the first set, [low, mid), has one
- element and and the second, [mid, high), has two. We skip the
- optimisation when the number of elements is three or less as
- the first compare in the normal merge will produce the same
- sequence of steps. This optimisation seems to be worthwhile
- for partially ordered lists but some analysis is needed to
- find out how the performance drops to Nlog(N) as the initial
- order diminishes - it may drop very quickly. */
- if ( ( (high - low) >= 4) && (compare(from[middle - 1], from[middle]) <= 0)) {
- for (int i = low; i < high; i++) {
- to[i] = from[i];
- }
-
- return;
- }
-
- // A normal merge.
- for (int i = low; i < high; i++) {
- if ( (q >= high) || ( (p < middle) && (compare(from[p], from[q]) <= 0))) {
- to[i] = from[p++];
- }
- else {
- to[i] = from[q++];
- }
- }
- }
-
- public void swap(int i, int j) {
- int tmp = indexes[i];
- indexes[i] = indexes[j];
- indexes[j] = tmp;
- }
-
- // The mapping only affects the contents of the data rows.
- // Pass all requests to these rows through the mapping array: "indexes".
- public Object getValueAt(int aRow, int aColumn) {
- checkModel();
-
- return model.getValueAt(indexes[aRow], aColumn);
- }
-
- public void setValueAt(Object aValue, int aRow, int aColumn) {
- checkModel();
- model.setValueAt(aValue, indexes[aRow], aColumn);
- }
-
- public void sortByColumn(int column) {
- sortByColumn(column, true);
- }
-
- public void sortByColumn(int column, boolean ascending) {
- this.ascending = ascending;
- sortingColumns.removeAllElements();
- sortingColumns.addElement(new Integer(column));
- sort(this);
- super.tableChanged(new TableModelEvent(this));
- }
-
- // There is no-where else to put this.
- // Add a mouse listener to the Table to trigger a table sort
- // when a column heading is clicked in the JTable.
- public void addMouseListenerToHeaderInTable(JTable table) {
- final TableSorter sorter = this;
- final JTable tableView = table;
- tableView.setColumnSelectionAllowed(false);
-
- MouseAdapter listMouseListener = new MouseAdapter() {
- public void mouseClicked(MouseEvent e) {
- TableColumnModel columnModel = tableView.getColumnModel();
- int viewColumn = columnModel.getColumnIndexAtX(e.getX());
- int column = tableView.convertColumnIndexToModel(viewColumn);
-
- if ( (e.getClickCount() == 1) && (column != -1)) {
- //System.out.println("Sorting ...");
- int shiftPressed = e.getModifiers() & InputEvent.SHIFT_MASK;
- boolean ascending = (shiftPressed == 0);
- sorter.sortByColumn(column, ascending);
- }
- }
- };
-
- JTableHeader th = tableView.getTableHeader();
- th.addMouseListener(listMouseListener);
- }
-
- public int getModelrow(int viewrow) {
- return indexes[viewrow];
- }
-
- public int getjTablerow(int modelrow) {
- int i = 0;
- while (indexes[i] != modelrow) {
- i++;
- }
- return i;
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/arguments/ToolArgument.java b/src/main/java/com/lowagie/tools/arguments/ToolArgument.java
deleted file mode 100644
index 203c298..0000000
--- a/src/main/java/com/lowagie/tools/arguments/ToolArgument.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * $Id: ToolArgument.java,v 1.6 2006/05/30 09:13:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.arguments;
-
-import java.awt.Color;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.util.Vector;
-
-import javax.swing.JColorChooser;
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.Image;
-import com.lowagie.tools.plugins.AbstractTool;
-
-/**
- * This is an argument of one of the tools in the toolbox.
- */
-public class ToolArgument
- implements ActionListener, PropertyChangeListener {
- /** reference to the internal frame */
- protected AbstractTool tool;
- /** describes the argument. */
- protected String description;
- /** short name for the argument. */
- protected String name;
- /** type of the argument. */
- protected String classname;
- /** value of the argument. */
- protected String value = null;
-
- /** Constructs a ToolArgument. */
- public ToolArgument() {}
-
- /**
- * Constructs a ToolArgument.
- * @param tool the tool that needs this argument
- * @param name the name of the argument
- * @param description the description of the argument
- * @param classname the type of the argument
- */
- public ToolArgument(AbstractTool tool, String name, String description,
- String classname) {
- this.tool = tool;
- this.name = name;
- this.description = description;
- this.classname = classname;
- }
-
- /**
- * Gets the argument as an object.
- * @return an object
- * @throws InstantiationException
- */
- public Object getArgument() throws InstantiationException {
- if (value == null) {
- return null;
- }
- try {
- if (String.class.getName().equals(classname)) {
- return value;
- }
- if (Image.class.getName().equals(classname)) {
- return Image.getInstance(value);
- }
- if (File.class.getName().equals(classname)) {
- return new File(value);
- }
- if (Color.class.getName().equals(classname)) {
- return Color.decode(value);
- }
- }
- catch (Exception e) {
- throw new InstantiationException(e.getMessage());
- }
- return value;
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent e) {
- if (String.class.getName().equals(classname)) {
- setValue(JOptionPane.showInputDialog(tool.getInternalFrame(),
- "Enter a value for " + name + ":"));
- }
- if (Image.class.getName().equals(classname)) {
- JFileChooser fc = new JFileChooser();
- fc.showOpenDialog(tool.getInternalFrame());
- setValue(fc.getSelectedFile().getAbsolutePath());
- }
- if (File.class.getName().equals(classname)) {
- JFileChooser fc = new JFileChooser();
- fc.showOpenDialog(tool.getInternalFrame());
- setValue(fc.getSelectedFile().getAbsolutePath());
- }
- if (Color.class.getName().equals(classname)) {
- Color initialColor = new Color(0xFF, 0xFF, 0xFF);
- if (value != null) {
- initialColor = Color.decode(value);
- }
- Color newColor = JColorChooser.showDialog(tool.getInternalFrame(),
- "Choose Color", initialColor);
- setValue("0x" +
- Integer.toHexString( (newColor.getRed() << 16) |
- (newColor.getGreen() << 8) |
- (newColor.getBlue() << 0)).toUpperCase());
- }
- }
-
- /**
- * Give you a String that can be used in a usage description.
- * @return a String
- */
- public String getUsage() {
- StringBuffer buf = new StringBuffer(" ");
- buf.append(name);
- buf.append(" - ");
- buf.append(description);
- buf.append("\n");
- return buf.toString();
- }
-
- /**
- * @return Returns the classname.
- */
- public String getClassname() {
- return classname;
- }
-
- /**
- * @param classname The classname to set.
- */
- public void setClassname(String classname) {
- this.classname = classname;
- }
-
- /**
- * @return Returns the description.
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * @param description The description to set.
- */
- public void setDescription(String description) {
- this.description = description;
- }
-
- /**
- * @return Returns the name.
- */
- public String getName() {
- return name;
- }
-
- /**
- * @param name The name to set.
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * @return Returns the value.
- */
- public String getValue() {
- return value;
- }
-
- /**
- * @param value The value to set.
- */
- public void setValue(String value) {
- Object oldvalue = this.value;
- this.value = value;
- tool.valueHasChanged(this);
- this.firePropertyChange(new PropertyChangeEvent(this, name,
- oldvalue, this.value));
- }
- public void setValue(String value, String propertyname) {
- Object oldvalue = this.value;
- this.value = value;
- tool.valueHasChanged(this);
- this.firePropertyChange(new PropertyChangeEvent(this, propertyname,
- oldvalue, this.value));
- }
- transient Vector propertyChangeListeners;
- public synchronized void addPropertyChangeListener(PropertyChangeListener l) {
-
- Vector v = propertyChangeListeners == null ? new Vector(2) :
- (Vector) propertyChangeListeners.clone();
- if (!v.contains(l)) {
- v.addElement(l);
- propertyChangeListeners = v;
- }
- }
-
- public synchronized void removePropertyChangeListener(PropertyChangeListener
- l) {
- if (propertyChangeListeners != null && propertyChangeListeners.contains(l)) {
- Vector v = (Vector) propertyChangeListeners.clone();
- v.removeElement(l);
- propertyChangeListeners = v;
- }
-
- }
-
- protected void firePropertyChange(PropertyChangeEvent evt) {
- if (propertyChangeListeners != null) {
- Vector listeners = propertyChangeListeners;
- int count = listeners.size();
- for (int i = 0; i < count; i++) {
- ( (PropertyChangeListener) listeners.elementAt(i)).propertyChange(evt);
- }
- }
- }
-
- /**
- * This method gets called when a bound property is changed.
- *
- * @param evt A PropertyChangeEvent object describing the event source and the property that has
- * changed.
- * @todo Implement this java.beans.PropertyChangeListener method
- */
- public void propertyChange(PropertyChangeEvent evt) {
- }
-}
diff --git a/src/main/java/com/lowagie/tools/concat_pdf.java b/src/main/java/com/lowagie/tools/concat_pdf.java
deleted file mode 100644
index e9929a0..0000000
--- a/src/main/java/com/lowagie/tools/concat_pdf.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * $Id: concat_pdf.java,v 1.19 2006/04/28 16:26:38 psoares33 Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Mark Thompson. Copyright (c) 2002 Mark Thompson.
- *
- * This code 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.
- *
- * itext@lowagie.com
- */
-
-/**
- * This class demonstrates copying a PDF file using iText.
- * @author Mark Thompson
- */
-package com.lowagie.tools;
-
-import java.io.*;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.pdf.*;
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * Tool that can be used to concatenate existing PDF files.
- */
-public class concat_pdf {
-
- /**
- * This class can be used to concatenate existing PDF files.
- * (This was an example known as PdfCopy.java)
- * @param args the command line arguments
- */
- public static void main(String args[]) {
- if (args.length < 2) {
- System.err.println("arguments: file1 [file2 ...] destfile");
- }
- else {
- try {
- int pageOffset = 0;
- ArrayList master = new ArrayList();
- int f = 0;
- String outFile = args[args.length-1];
- Document document = null;
- PdfCopy writer = null;
- while (f < args.length-1) {
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(args[f]);
- reader.consolidateNamedDestinations();
- // we retrieve the total number of pages
- int n = reader.getNumberOfPages();
- List bookmarks = SimpleBookmark.getBookmark(reader);
- if (bookmarks != null) {
- if (pageOffset != 0)
- SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null);
- master.addAll(bookmarks);
- }
- pageOffset += n;
- System.out.println("There are " + n + " pages in " + args[f]);
-
- if (f == 0) {
- // step 1: creation of a document-object
- document = new Document(reader.getPageSizeWithRotation(1));
- // step 2: we create a writer that listens to the document
- writer = new PdfCopy(document, new FileOutputStream(outFile));
- // step 3: we open the document
- document.open();
- }
- // step 4: we add content
- PdfImportedPage page;
- for (int i = 0; i < n; ) {
- ++i;
- page = writer.getImportedPage(reader, i);
- writer.addPage(page);
- System.out.println("Processed page " + i);
- }
- writer.freeReader(reader);
- f++;
- }
- if (master.size() > 0)
- writer.setOutlines(master);
- // step 5: we close the document
- document.close();
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/encrypt_pdf.java b/src/main/java/com/lowagie/tools/encrypt_pdf.java
deleted file mode 100644
index e6a0215..0000000
--- a/src/main/java/com/lowagie/tools/encrypt_pdf.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * $Id: encrypt_pdf.java,v 1.18 2004/12/14 10:59:06 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Paulo Soares. Copyright (c) 2002 Paulo Soares.
- *
- * This code 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.
- *
- * itext@lowagie.com
- */
-
-/**
- * This class demonstrates how to encrypt a pdf file
- * @author Paulo Soares
- */
-package com.lowagie.tools;
-
-import com.lowagie.text.pdf.PdfEncryptor;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfWriter;
-
-import java.io.FileOutputStream;
-import java.util.HashMap;
-
-/**
- * Encrypts a PDF document. It needs iText (http://www.lowagie.com/iText).
- * @author Paulo Soares (psoares@consiste.pt)
- */
-public class encrypt_pdf {
-
- private final static int INPUT_FILE = 0;
- private final static int OUTPUT_FILE = 1;
- private final static int USER_PASSWORD = 2;
- private final static int OWNER_PASSWORD = 3;
- private final static int PERMISSIONS = 4;
- private final static int STRENGTH = 5;
- private final static int MOREINFO = 6;
- private final static int permit[] = {
- PdfWriter.AllowPrinting,
- PdfWriter.AllowModifyContents,
- PdfWriter.AllowCopy,
- PdfWriter.AllowModifyAnnotations,
- PdfWriter.AllowFillIn,
- PdfWriter.AllowScreenReaders,
- PdfWriter.AllowAssembly,
- PdfWriter.AllowDegradedPrinting};
-
- private static void usage() {
- System.out.println("usage: input_file output_file user_password owner_password permissions 128|40 [new info string pairs]");
- System.out.println("permissions is 8 digit long 0 or 1. Each digit has a particular security function:");
- System.out.println();
- System.out.println("AllowPrinting");
- System.out.println("AllowModifyContents");
- System.out.println("AllowCopy");
- System.out.println("AllowModifyAnnotations");
- System.out.println("AllowFillIn (128 bit only)");
- System.out.println("AllowScreenReaders (128 bit only)");
- System.out.println("AllowAssembly (128 bit only)");
- System.out.println("AllowDegradedPrinting (128 bit only)");
- System.out.println("Example permissions to copy and print would be: 10100000");
- }
-
- /**
- * Encrypts a PDF document.
- *
- * @param args input_file output_file user_password owner_password permissions 128|40 [new info string pairs]
- */
- public static void main (String args[]) {
- System.out.println("PDF document encryptor");
- if (args.length <= STRENGTH || args[PERMISSIONS].length() != 8) {
- usage();
- return;
- }
- try {
- int permissions = 0;
- String p = args[PERMISSIONS];
- for (int k = 0; k < p.length(); ++k) {
- permissions |= (p.charAt(k) == '0' ? 0 : permit[k]);
- }
- System.out.println("Reading " + args[INPUT_FILE]);
- PdfReader reader = new PdfReader(args[INPUT_FILE]);
- System.out.println("Writing " + args[OUTPUT_FILE]);
- HashMap moreInfo = new HashMap();
- for (int k = MOREINFO; k < args.length - 1; k += 2)
- moreInfo.put(args[k], args[k + 1]);
- PdfEncryptor.encrypt(reader, new FileOutputStream(args[OUTPUT_FILE]),
- args[USER_PASSWORD].getBytes(), args[OWNER_PASSWORD].getBytes(), permissions, args[STRENGTH].equals("128"), moreInfo);
- System.out.println("Done.");
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/handout_pdf.java b/src/main/java/com/lowagie/tools/handout_pdf.java
deleted file mode 100644
index 3ae590f..0000000
--- a/src/main/java/com/lowagie/tools/handout_pdf.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * $Id: handout_pdf.java,v 1.17 2004/12/14 10:59:06 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Bruno Lowagie. Copyright (c) 2002 Bruno Lowagie.
- *
- * This code 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.
- *
- * itext@lowagie.com
- */
-
-/**
- * This class demonstrates how to splot a PDF file using iText.
- * @author Bruno Lowagie
- */
-package com.lowagie.tools;
-
-import java.io.*;
-
-import com.lowagie.text.*;
-import com.lowagie.text.pdf.*;
-
-/**
- * Takes an existing PDF file and makes handouts.
- */
-public class handout_pdf extends java.lang.Object {
-
- /**
- * Makes handouts based on an existing PDF file.
- * @param args the command line arguments
- */
- public static void main (String args[]) {
- if (args.length != 3) {
- System.err.println("arguments: srcfile destfile pages");
- }
- else {
- try {
- int pages = Integer.parseInt(args[2]);
- if (pages < 2 || pages > 8) {
- throw new DocumentException("You can't have " + pages + " pages on one page (minimum 2; maximum 8).");
- }
-
- float x1 = 30f;
- float x2 = 280f;
- float x3 = 320f;
- float x4 = 565f;
-
- float[] y1 = new float[pages];
- float[] y2 = new float[pages];
-
- float height = (778f - (20f * (pages - 1))) / pages;
- y1[0] = 812f;
- y2[0] = 812f - height;
-
- for (int i = 1; i < pages; i++) {
- y1[i] = y2[i - 1] - 20f;
- y2[i] = y1[i] - height;
- }
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(args[0]);
- // we retrieve the total number of pages
- int n = reader.getNumberOfPages();
- System.out.println("There are " + n + " pages in the original file.");
-
- // step 1: creation of a document-object
- Document document = new Document(PageSize.A4);
- // step 2: we create a writer that listens to the document
- PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(args[1]));
- // step 3: we open the document
- document.open();
- PdfContentByte cb = writer.getDirectContent();
- PdfImportedPage page;
- int rotation;
- int i = 0;
- int p = 0;
- // step 4: we add content
- while (i < n) {
- i++;
- Rectangle rect = reader.getPageSizeWithRotation(i);
- float factorx = (x2 - x1) / rect.width();
- float factory = (y1[p] - y2[p]) / rect.height();
- float factor = (factorx < factory ? factorx : factory);
- float dx = (factorx == factor ? 0f : ((x2 - x1) - rect.width() * factor) / 2f);
- float dy = (factory == factor ? 0f : ((y1[p] - y2[p]) - rect.height() * factor) / 2f);
- page = writer.getImportedPage(reader, i);
- rotation = reader.getPageRotation(i);
- if (rotation == 90 || rotation == 270) {
- cb.addTemplate(page, 0, -factor, factor, 0, x1 + dx, y2[p] + dy + rect.height() * factor);
- }
- else {
- cb.addTemplate(page, factor, 0, 0, factor, x1 + dx, y2[p] + dy);
- }
- cb.setRGBColorStroke(0xC0, 0xC0, 0xC0);
- cb.rectangle(x3 - 5f, y2[p] - 5f, x4 - x3 + 10f, y1[p] - y2[p] + 10f);
- for (float l = y1[p] - 19; l > y2[p]; l -= 16) {
- cb.moveTo(x3, l);
- cb.lineTo(x4, l);
- }
- cb.rectangle(x1 + dx, y2[p] + dy, rect.width() * factor, rect.height() * factor);
- cb.stroke();
- System.out.println("Processed page " + i);
- p++;
- if (p == pages) {
- p = 0;
- document.newPage();
- }
- }
- // step 5: we close the document
- document.close();
- }
- catch(Exception e) {
- System.err.println(e.getClass().getName() + ": " + e.getMessage());
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/plugins/AbstractTool.java b/src/main/java/com/lowagie/tools/plugins/AbstractTool.java
deleted file mode 100644
index 5e57892..0000000
--- a/src/main/java/com/lowagie/tools/plugins/AbstractTool.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * $Id: AbstractTool.java,v 1.10 2006/05/30 09:13:19 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.KeyEvent;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-
-import com.lowagie.tools.Executable;
-import com.lowagie.tools.ToolMenuItems;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Every iText tool has to implement this interface.
- */
-public abstract class AbstractTool implements ToolMenuItems, ActionListener {
-
- /** An array with the versions of the tool. */
- public static ArrayList versionsarray = new ArrayList();
-
- /** The internal frame of the tool. */
- protected JInternalFrame internalFrame = null;
- /** The list of arguments needed by the tool. */
- protected ArrayList arguments = new ArrayList();
- /** Execute menu options */
- protected int menuoptions = MENU_EXECUTE;
- /** a menu option */
- public static final int MENU_EXECUTE = 1;
- /** a menu option */
- public static final int MENU_EXECUTE_SHOW = 2;
- /** a menu option */
- public static final int MENU_EXECUTE_PRINT = 4;
- /** a menu option */
- public static final int MENU_EXECUTE_PRINT_SILENT = 8;
-
- /**
- * Sets the arguments.
- * @param arguments The arguments to set.
- */
- public void setArguments(ArrayList arguments) {
- this.arguments = arguments;
- }
-
- /**
- * Sets the arguments.
- * @param args the arguments as String-array.
- */
- public void setArguments(String[] args) {
- int counter = 0;
- ToolArgument argument;
- for (Iterator i = arguments.iterator(); i.hasNext(); ) {
- argument = (ToolArgument) i.next();
- if (args.length > counter) {
- argument.setValue(args[counter]);
- }
- else {
- break;
- }
- counter++;
- }
- }
-
- /**
- * Gets the arguments.
- * @return Returns the arguments.
- */
- public ArrayList getArguments() {
- return arguments;
- }
-
- /**
- * Gets the value of a given argument.
- * @param name the name of the argument
- * @return the value of an argument as an Object.
- * @throws InstantiationException
- */
- public Object getValue(String name) throws InstantiationException {
- ToolArgument argument;
- for (Iterator i = arguments.iterator(); i.hasNext(); ) {
- argument = (ToolArgument) i.next();
- if (name.equals(argument.getName())) {
- return argument.getArgument();
- }
- }
- return null;
- }
-
- /**
- * Sets the internal frame.
- * @param internalFrame The internalFrame to set.
- */
- public void setInternalFrame(JInternalFrame internalFrame) {
- this.internalFrame = internalFrame;
- }
-
- /**
- * Returns the internal frame. Creates one if it's null.
- * @return Returns the internalFrame.
- */
- public JInternalFrame getInternalFrame() {
- if (internalFrame == null) {
- createFrame();
- }
- return internalFrame;
- }
-
- /**
- * Gets the menubar.
- * @return a menubar for this tool
- */
- public JMenuBar getMenubar() {
- JMenuBar menubar = new JMenuBar();
- JMenu tool = new JMenu(TOOL);
- tool.setMnemonic(KeyEvent.VK_F);
- JMenuItem usage = new JMenuItem(USAGE);
- usage.setMnemonic(KeyEvent.VK_U);
- usage.addActionListener(this);
- tool.add(usage);
- JMenuItem args = new JMenuItem(ARGUMENTS);
- args.setMnemonic(KeyEvent.VK_A);
- args.addActionListener(this);
- tool.add(args);
- if ((menuoptions & MENU_EXECUTE) > 0) {
- JMenuItem execute = new JMenuItem(EXECUTE);
- execute.setMnemonic(KeyEvent.VK_E);
- execute.addActionListener(this);
- tool.add(execute);
- }
- if ((menuoptions & MENU_EXECUTE_SHOW) > 0) {
- JMenuItem execute = new JMenuItem(EXECUTESHOW);
- execute.addActionListener(this);
- tool.add(execute);
- }
- if ((menuoptions & MENU_EXECUTE_PRINT) > 0) {
- JMenuItem execute = new JMenuItem(EXECUTEPRINT);
- execute.addActionListener(this);
- tool.add(execute);
- }
- if ((menuoptions & MENU_EXECUTE_PRINT_SILENT) > 0) {
- JMenuItem execute = new JMenuItem(EXECUTEPRINTSILENT);
- execute.addActionListener(this);
- tool.add(execute);
- }
- JMenuItem close = new JMenuItem(CLOSE);
- close.setMnemonic(KeyEvent.VK_C);
- close.addActionListener(this);
- tool.add(close);
- menubar.add(tool);
- if (arguments.size() > 0) {
- JMenu params = new JMenu(ARGUMENTS);
- tool.setMnemonic(KeyEvent.VK_T);
- JMenuItem item;
- ToolArgument argument;
- for (Iterator i = arguments.iterator(); i.hasNext(); ) {
- argument = (ToolArgument)i.next();
- item = new JMenuItem(argument.getName());
- item.setToolTipText(argument.getDescription());
- item.addActionListener(argument);
- params.add(item);
- }
- menubar.add(params);
- }
- return menubar;
- }
-
- /**
- * Gets the usage of the tool.
- * @return a String describing how to use the tool.
- */
- public String getUsage() {
- StringBuffer buf = new StringBuffer("java ");
- buf.append(getClass().getName());
- ToolArgument argument;
- for (Iterator i = arguments.iterator(); i.hasNext(); ) {
- argument = (ToolArgument) i.next();
- buf.append(" ");
- buf.append(argument.getName());
- }
- buf.append("\n");
- for (Iterator i = arguments.iterator(); i.hasNext(); ) {
- argument = (ToolArgument) i.next();
- buf.append(argument.getUsage());
- }
- return buf.toString();
- }
-
- /**
- * Gets the current arguments of the tool.
- * @return a String with the list of arguments and their values.
- */
- public String getArgs() {
- StringBuffer buf = new StringBuffer("Current arguments:\n");
- ToolArgument argument;
- for (Iterator i = arguments.iterator(); i.hasNext(); ) {
- argument = (ToolArgument) i.next();
- buf.append(" ");
- buf.append(argument.getName());
- if (argument.getValue() == null) {
- buf.append(" = null\n");
- }
- else {
- buf.append(" = '");
- buf.append(argument.getValue());
- buf.append("'\n");
- }
- }
- return buf.toString();
- }
-
- /**
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent evt) {
- if (CLOSE.equals(evt.getActionCommand())) {
- System.out.println("=== " + getInternalFrame().getTitle() + " CLOSED ===");
- internalFrame.dispose();
- }
- if (USAGE.equals(evt.getActionCommand())) {
- JOptionPane.showMessageDialog(internalFrame, getUsage());
- }
- if (ARGUMENTS.equals(evt.getActionCommand())) {
- JOptionPane.showMessageDialog(internalFrame, getArgs());
- }
- if (EXECUTE.equals(evt.getActionCommand())) {
- this.execute();
- }
- if (EXECUTESHOW.equals(evt.getActionCommand())) {
- this.execute();
- try {
- Executable.openDocument(getDestPathPDF());
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- }
- if (EXECUTEPRINT.equals(evt.getActionCommand())) {
- this.execute();
- try {
- Executable.printDocument(getDestPathPDF());
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- }
- if (EXECUTEPRINTSILENT.equals(evt.getActionCommand())) {
- this.execute();
- try {
- Executable.printDocumentSilent(getDestPathPDF());
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- }
- }
-
- /**
- * Gets the PDF file that should be generated (or null if the output isn't a PDF file).
- * @return the PDF file that should be generated
- * @throws InstantiationException
- */
- protected abstract File getDestPathPDF() throws InstantiationException;
-
- /**
- * Creates the internal frame.
- */
- protected abstract void createFrame();
-
- /**
- * Executes the tool (in most cases this generates a PDF file).
- */
- public abstract void execute();
-
- /**
- * Indicates that the value of an argument has changed.
- * @param arg the argument that has changed
- */
- public abstract void valueHasChanged(ToolArgument arg);
-
- /**
- * Add the version of the plugin to the versions array.
- * @param version the version to add.
- */
- protected static void addVersion(String version) {
- version = version.substring(5, version.length() - 7);
- version = version.substring(0, version.lastIndexOf(" "));
- versionsarray.add(version);
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Bookmarks2XML.java b/src/main/java/com/lowagie/tools/plugins/Bookmarks2XML.java
deleted file mode 100644
index 444a775..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Bookmarks2XML.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * $Id: Bookmarks2XML.java,v 1.1 2006/02/02 15:56:53 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Hans-Werner Hilse.
- *
- * 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.List;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.SimpleBookmark;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Allows you to add bookmarks to an existing PDF file
- */
-public class Bookmarks2XML extends AbstractTool {
-
- static {
- addVersion("$Id: Bookmarks2XML.java,v 1.1 2006/02/02 15:56:53 blowagie Exp $");
- }
-
- /**
- * Constructs an Bookmarks2XML object.
- */
- public Bookmarks2XML() {
- arguments.add(new FileArgument(this, "pdffile", "the PDF from which you want to extract bookmarks", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "xmlfile", "the resulting bookmarks file in XML", true));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Bookmarks2XML", true, true, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Bookmarks2XML OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("xmlfile") == null) throw new InstantiationException("You need to choose an xml file");
- if (getValue("pdffile") == null) throw new InstantiationException("You need to choose a source PDF file");
- PdfReader reader = new PdfReader(((File)getValue("pdffile")).getAbsolutePath());
- reader.consolidateNamedDestinations();
- List bookmarks = SimpleBookmark.getBookmark( reader );
- // save them in XML format
- FileOutputStream bmWriter = new FileOutputStream( (File)getValue("xmlfile") );
- SimpleBookmark.exportToXML(bookmarks, bmWriter, "UTF-8", false);
- bmWriter.close();
- }
- catch(Exception e) {
- e.printStackTrace();
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Allows you to generate an index file in HTML containing Bookmarks to an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- Bookmarks2XML tool = new Bookmarks2XML();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is no file to show.");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Burst.java b/src/main/java/com/lowagie/tools/plugins/Burst.java
deleted file mode 100644
index 1aca12a..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Burst.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * $Id: Burst.java,v 1.8 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Mark Thompson. Copyright (c) 2002 Mark Thompson.
- *
- * This code 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.
- *
- * itext-questions@list.sourceforge.net
- */
-package com.lowagie.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.pdf.PdfContentByte;
-import com.lowagie.text.pdf.PdfImportedPage;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.LabelAccessory;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This tool lets you split a PDF in several separate PDF files (1 per page).
- */
-public class Burst extends AbstractTool {
-
- static {
- addVersion("$Id: Burst.java,v 1.8 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs a Burst object.
- */
- public Burst() {
- FileArgument f = new FileArgument(this, "srcfile", "The file you want to split", false, new PdfFilter());
- f.setLabel(new LabelAccessory());
- arguments.add(f);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Burst", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Burst OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- File src = (File)getValue("srcfile");
- File directory = src.getParentFile();
- String name = src.getName();
- name = name.substring(0, name.lastIndexOf("."));
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- // we retrieve the total number of pages
- int n = reader.getNumberOfPages();
- int digits = 1 + (n / 10);
- System.out.println("There are " + n + " pages in the original file.");
- Document document;
- int pagenumber;
- String filename;
- for (int i = 0; i < n; i++) {
- pagenumber = i + 1;
- filename = String.valueOf(pagenumber);
- while (filename.length() < digits) filename = "0" + filename;
- filename = "_" + filename + ".pdf";
- // step 1: creation of a document-object
- document = new Document(reader.getPageSizeWithRotation(pagenumber));
- // step 2: we create a writer that listens to the document
- PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(new File(directory, name + filename)));
- // step 3: we open the document
- document.open();
- PdfContentByte cb = writer.getDirectContent();
- PdfImportedPage page = writer.getImportedPage(reader, pagenumber);
- int rotation = reader.getPageRotation(pagenumber);
- if (rotation == 90 || rotation == 270) {
- cb.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(pagenumber).height());
- }
- else {
- cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
- }
- // step 5: we close the document
- document.close();
- }
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Divide PDF file into pages.
- * @param args
- */
- public static void main(String[] args) {
- Burst tool = new Burst();
- if (args.length < 1) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is more than one destfile.");
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Concat.java b/src/main/java/com/lowagie/tools/plugins/Concat.java
deleted file mode 100644
index b6eb369..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Concat.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * $Id: Concat.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.pdf.PdfCopy;
-import com.lowagie.text.pdf.PdfImportedPage;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.SimpleBookmark;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Concatenates two PDF files
- */
-public class Concat extends AbstractTool {
-
- static {
- addVersion("$Id: Concat.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $");
- }
- /**
- * Constructs a Concat object.
- */
- public Concat() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- arguments.add(new FileArgument(this, "srcfile1", "The first PDF file", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "srcfile2", "The second PDF file", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile", "The file to which the concatenated PDF has to be written", true, new PdfFilter()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Concatenate 2 PDF files", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Concat OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- String[] files = new String[2];
- if (getValue("srcfile1") == null) throw new InstantiationException("You need to choose a first sourcefile");
- files[0] = ((File)getValue("srcfile1")).getAbsolutePath();
- if (getValue("srcfile2") == null) throw new InstantiationException("You need to choose a second sourcefile");
- files[1] = ((File)getValue("srcfile2")).getAbsolutePath();
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- File pdf_file = (File)getValue("destfile");
- int pageOffset = 0;
- ArrayList master = new ArrayList();
- Document document = null;
- PdfCopy writer = null;
- for (int i = 0; i < 2; i++) {
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(files[i]);
- reader.consolidateNamedDestinations();
- // we retrieve the total number of pages
- int n = reader.getNumberOfPages();
- List bookmarks = SimpleBookmark.getBookmark(reader);
- if (bookmarks != null) {
- if (pageOffset != 0)
- SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null);
- master.addAll(bookmarks);
- }
- pageOffset += n;
- System.out.println("There are " + n + " pages in " + files[i]);
- if (i == 0) {
- // step 1: creation of a document-object
- document = new Document(reader.getPageSizeWithRotation(1));
- // step 2: we create a writer that listens to the document
- writer = new PdfCopy(document, new FileOutputStream(pdf_file));
- // step 3: we open the document
- document.open();
- }
- // step 4: we add content
- PdfImportedPage page;
- for (int p = 0; p < n; ) {
- ++p;
- page = writer.getImportedPage(reader, p);
- writer.addPage(page);
- System.out.println("Processed page " + p);
- }
- }
- if (master.size() > 0)
- writer.setOutlines(master);
- // step 5: we close the document
- document.close();
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Concatenates two PDF files.
- * @param args
- */
- public static void main(String[] args) {
- Concat tool = new Concat();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Decrypt.java b/src/main/java/com/lowagie/tools/plugins/Decrypt.java
deleted file mode 100644
index a94b84f..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Decrypt.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * $Id: Decrypt.java,v 1.4 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfStamper;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Allows you to decrypt an existing PDF file.
- */
-public class Decrypt extends AbstractTool {
-
- static {
- addVersion("$Id: Decrypt.java,v 1.4 2005/11/29 21:05:02 blowagie Exp $");
- }
-
-
- /**
- * Constructs an Decrypt object.
- */
- public Decrypt() {
- arguments.add(new FileArgument(this, "srcfile", "The file you want to decrypt", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile", "The file to which the decrypted PDF has to be written", true, new PdfFilter()));
- arguments.add(new ToolArgument(this, "ownerpassword", "The ownerpassword you want to add to the PDF file", String.class.getName()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Decrypt", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Decrypt OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- byte[] ownerpassword = null;
- if (getValue("ownerpassword") != null) {
- ownerpassword = ((String)getValue("ownerpassword")).getBytes();
- }
- PdfReader reader = new PdfReader(((File)getValue("srcfile")).getAbsolutePath(), ownerpassword);
- PdfStamper stamper = new PdfStamper(reader, new FileOutputStream((File)getValue("destfile")));
- stamper.close();
- }
- catch(Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Decrypts an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- Decrypt tool = new Decrypt();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/DvdCover.java b/src/main/java/com/lowagie/tools/plugins/DvdCover.java
deleted file mode 100644
index 718ec6d..0000000
--- a/src/main/java/com/lowagie/tools/plugins/DvdCover.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * $Id: DvdCover.java,v 1.11 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.awt.Color;
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.DocumentException;
-import com.lowagie.text.Element;
-import com.lowagie.text.Image;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.BaseFont;
-import com.lowagie.text.pdf.PdfContentByte;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.ImageArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This is a simple tool that generates a cover for a DVD.
- */
-public class DvdCover extends AbstractTool {
-
- static {
- addVersion("$Id: DvdCover.java,v 1.11 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs a DvdCover object.
- */
- public DvdCover() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW | MENU_EXECUTE_PRINT;
- arguments.add(new FileArgument(this, "destfile", "The file to which the PDF has to be written", true, new PdfFilter()));
- arguments.add(new ToolArgument(this, "title", "The title of the DVD", String.class.getName()));
- arguments.add(new ToolArgument(this, "backgroundcolor", "The backgroundcolor of the DVD Cover (for instance 0xFFFFFF)", Color.class.getName()));
- arguments.add(new ImageArgument(this, "front", "The front image of the DVD Cover"));
- arguments.add(new ImageArgument(this, "back", "The back image of the DVD Cover"));
- arguments.add(new ImageArgument(this, "side", "The side image of the DVD Cover"));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Make your own DVD Cover", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== DvdCover OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- // step 1: creation of a document-object
- Rectangle pageSize = new Rectangle(780, 525);
- if (getValue("backgroundcolor") != null) pageSize.setBackgroundColor((Color)getValue("backgroundcolor"));
- Document document = new Document(pageSize);
- // step 2:
- // we create a writer that listens to the document
- // and directs a PDF-stream to a file
- if (getValue("destfile") == null) throw new DocumentException("You must provide a destination file!");
- PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream((File)getValue("destfile")));
-
- // step 3: we open the document
- document.open();
-
- // step 4:
- PdfContentByte cb = writer.getDirectContent();
- if (getValue("title") != null) {
- cb.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, false), 24);
- cb.beginText();
- if (getValue("front") == null) {
- cb.showTextAligned(Element.ALIGN_CENTER, (String)getValue("title"), 595f, 262f, 0f);
- }
- if (getValue("side") == null) {
- cb.showTextAligned(Element.ALIGN_CENTER, (String)getValue("title"), 385f, 262f, 270f);
- }
- cb.endText();
- }
- cb.moveTo(370, 0);
- cb.lineTo(370, 525);
- cb.moveTo(410, 525);
- cb.lineTo(410, 0);
- cb.stroke();
- if (getValue("front") != null) {
- Image front = (Image)getValue("front");
- front.scaleToFit(370, 525);
- front.setAbsolutePosition(410f + (370f - front.scaledWidth()) / 2f, (525f - front.scaledHeight()) / 2f);
- document.add(front);
- }
- if (getValue("back") != null) {
- Image back = (Image)getValue("back");
- back.scaleToFit(370, 525);
- back.setAbsolutePosition((370f - back.scaledWidth()) / 2f, (525f - back.scaledHeight()) / 2f);
- document.add(back);
- }
- if (getValue("side") != null) {
- Image side = (Image)getValue("side");
- side.scaleToFit(40, 525);
- side.setAbsolutePosition(370 + (40f - side.scaledWidth()) / 2f, (525f - side.scaledHeight()) / 2f);
- document.add(side);
- }
-
- // step 5: we close the document
- document.close();
- }
- catch(Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Generates a DVD Cover in PDF.
- * @param args an array containing [0] a filename [1] a title [2] a backgroundcolor [3] a front image [4] a back image [5] a side image
- */
- public static void main(String[] args) {
- DvdCover tool = new DvdCover();
- if (args.length == 0) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/plugins/Encrypt.java b/src/main/java/com/lowagie/tools/plugins/Encrypt.java
deleted file mode 100644
index 7821759..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Encrypt.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * $Id: Encrypt.java,v 1.11 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.pdf.PdfEncryptor;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.BitsetArgument;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.OptionArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Allows you to encrypt an existing PDF file.
- */
-public class Encrypt extends AbstractTool {
-
- static {
- addVersion("$Id: Encrypt.java,v 1.11 2005/11/29 21:05:02 blowagie Exp $");
- }
- private final static int PERMISSIONS[] = {
- PdfWriter.AllowPrinting,
- PdfWriter.AllowModifyContents,
- PdfWriter.AllowCopy,
- PdfWriter.AllowModifyAnnotations,
- PdfWriter.AllowFillIn,
- PdfWriter.AllowScreenReaders,
- PdfWriter.AllowAssembly,
- PdfWriter.AllowDegradedPrinting};
- private final static String PERMISSION_OPTIONS[] = {
- "AllowPrinting",
- "AllowModifyContents",
- "AllowCopy",
- "AllowModifyAnnotations",
- "AllowFillIn (128 bit only)",
- "AllowScreenReaders (128 bit only)",
- "AllowAssembly (128 bit only)",
- "AllowDegradedPrinting (128 bit only)"
- };
-
-
- /**
- * Constructs an Encrypt object.
- */
- public Encrypt() {
- arguments.add(new FileArgument(this, "srcfile", "The file you want to encrypt", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile", "The file to which the encrypted PDF has to be written", true, new PdfFilter()));
- arguments.add(new ToolArgument(this, "ownerpassword", "The ownerpassword you want to add to the PDF file", String.class.getName()));
- arguments.add(new ToolArgument(this, "userpassword", "The userpassword you want to add to the PDF file", String.class.getName()));
- arguments.add(new BitsetArgument(this, "permissions", "Permissions on the file", PERMISSION_OPTIONS));
- OptionArgument oa = new OptionArgument(this, "strength", "Strength of the encryption");
- oa.addOption("40 bit encryption", "40");
- oa.addOption("128 bit encryption", "128");
- arguments.add(oa);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Encrypt", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Encrypt OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- int permissions = 0;
- String p = (String)getValue("permissions");
- if (p != null) {
- for (int k = 0; k < p.length(); ++k) {
- permissions |= (p.charAt(k) == '0' ? 0 : PERMISSIONS[k]);
- }
- }
- byte[] userpassword = null;
- if (getValue("userpassword") != null) {
- userpassword = ((String)getValue("userpassword")).getBytes();
- }
- byte[] ownerpassword = null;
- if (getValue("ownerpassword") != null) {
- ownerpassword = ((String)getValue("ownerpassword")).getBytes();
- }
- PdfReader reader = new PdfReader(((File)getValue("srcfile")).getAbsolutePath());
- PdfEncryptor.encrypt(
- reader,
- new FileOutputStream((File)getValue("destfile")),
- userpassword,
- ownerpassword,
- permissions,
- "128".equals(getValue("strength"))
- );
- }
- catch(Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Encrypts an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- Encrypt tool = new Encrypt();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/ExtractAttachments.java b/src/main/java/com/lowagie/tools/plugins/ExtractAttachments.java
deleted file mode 100644
index 455f3a2..0000000
--- a/src/main/java/com/lowagie/tools/plugins/ExtractAttachments.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * $Id: ExtractAttachments.java,v 1.5 2006/03/01 11:41:16 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Paulo Soares and Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.pdf.*;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.LabelAccessory;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This tool lets you extract the attachements of a PDF.
- */
-public class ExtractAttachments extends AbstractTool {
-
- static {
- addVersion("$Id: ExtractAttachments.java,v 1.5 2006/03/01 11:41:16 blowagie Exp $");
- }
-
- /**
- * Constructs a ExtractAttachements object.
- */
- public ExtractAttachments() {
- FileArgument f = new FileArgument(this, "srcfile",
- "The file you want to operate on", false, new PdfFilter());
- f.setLabel(new LabelAccessory());
- arguments.add(f);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("ExtractAttachments", true, false,
- true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== ExtractAttachments OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null)
- throw new InstantiationException(
- "You need to choose a sourcefile");
- File src = (File) getValue("srcfile");
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- final File parentFile = src.getParentFile();
- final String outPath;
- if (parentFile != null) {
- outPath = parentFile.getAbsolutePath();
- } else {
- outPath = "";
- }
- PdfDictionary catalog = reader.getCatalog();
- PdfDictionary names = (PdfDictionary) PdfReader
- .getPdfObject(catalog.get(PdfName.NAMES));
- if (names != null) {
- PdfDictionary embFiles = (PdfDictionary) PdfReader
- .getPdfObject(names.get(new PdfName("EmbeddedFiles")));
- if (embFiles != null) {
- HashMap embMap = PdfNameTree.readTree(embFiles);
- for (Iterator i = embMap.values().iterator(); i.hasNext();) {
- PdfDictionary filespec = (PdfDictionary) PdfReader
- .getPdfObject((PdfObject) i.next());
- unpackFile(reader, filespec, outPath);
- }
- }
- }
- for (int k = 1; k <= reader.getNumberOfPages(); ++k) {
- PdfArray annots = (PdfArray) PdfReader.getPdfObject(reader
- .getPageN(k).get(PdfName.ANNOTS));
- if (annots == null)
- continue;
- for (Iterator i = annots.listIterator(); i.hasNext();) {
- PdfDictionary annot = (PdfDictionary) PdfReader
- .getPdfObject((PdfObject) i.next());
- PdfName subType = (PdfName) PdfReader.getPdfObject(annot
- .get(PdfName.SUBTYPE));
- if (!PdfName.FILEATTACHMENT.equals(subType))
- continue;
- PdfDictionary filespec = (PdfDictionary) PdfReader
- .getPdfObject(annot.get(PdfName.FS));
- unpackFile(reader, filespec, outPath);
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the
- // commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Extract the attachements of a PDF.
- *
- * @param args
- */
- public static void main(String[] args) {
- ExtractAttachments tool = new ExtractAttachments();
- if (args.length < 1) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is more than one destfile.");
- }
-
- /**
- * Unpacks a file attachment.
- *
- * @param reader
- * The object that reads the PDF document
- * @param filespec
- * The dictonary containing the file specifications
- * @param outPath
- * The path where the attachment has to be written
- * @throws IOException
- */
- public static void unpackFile(PdfReader reader, PdfDictionary filespec,
- String outPath) throws IOException {
- if (filespec == null)
- return;
- PdfName type = (PdfName) PdfReader.getPdfObject(filespec
- .get(PdfName.TYPE));
- if (!PdfName.F.equals(type) && !PdfName.FILESPEC.equals(type))
- return;
- PdfDictionary ef = (PdfDictionary) PdfReader.getPdfObject(filespec
- .get(PdfName.EF));
- if (ef == null)
- return;
- PdfString fn = (PdfString) PdfReader.getPdfObject(filespec
- .get(PdfName.F));
- System.out.println("Unpacking file '" + fn + "' to " + outPath);
- if (fn == null)
- return;
- File fLast = new File(fn.toUnicodeString());
- File fullPath = new File(outPath, fLast.getName());
- if (fullPath.exists())
- return;
- PRStream prs = (PRStream) PdfReader.getPdfObject(ef.get(PdfName.F));
- if (prs == null)
- return;
- byte b[] = PdfReader.getStreamBytes(prs);
- FileOutputStream fout = new FileOutputStream(fullPath);
- fout.write(b);
- fout.close();
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/plugins/Handouts.java b/src/main/java/com/lowagie/tools/plugins/Handouts.java
deleted file mode 100644
index fed8788..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Handouts.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * $Id: Handouts.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.PageSize;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.PdfContentByte;
-import com.lowagie.text.pdf.PdfImportedPage;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.OptionArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Generates a PDF file that is useable as Handout.
- */
-public class Handouts extends AbstractTool {
-
- static {
- addVersion("$Id: Handouts.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs a Handouts object.
- */
- public Handouts() {
- arguments.add(new FileArgument(this, "srcfile", "The file you want to convert", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile", "The file to which the Handout has to be written", true, new PdfFilter()));
- OptionArgument oa = new OptionArgument(this, "pages", "The number of pages you want on one handout page");
- oa.addOption("2 pages on 1", "2");
- oa.addOption("3 pages on 1", "3");
- oa.addOption("4 pages on 1", "4");
- oa.addOption("5 pages on 1", "5");
- oa.addOption("6 pages on 1", "6");
- oa.addOption("7 pages on 1", "7");
- oa.addOption("8 pages on 1", "8");
- arguments.add(oa);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Handouts", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Handouts OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- File src = (File)getValue("srcfile");
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- File dest = (File)getValue("destfile");
- int pages;
- try {
- pages = Integer.parseInt((String) getValue("pages"));
- }
- catch(Exception e) {
- pages = 4;
- }
-
- float x1 = 30f;
- float x2 = 280f;
- float x3 = 320f;
- float x4 = 565f;
-
- float[] y1 = new float[pages];
- float[] y2 = new float[pages];
-
- float height = (778f - (20f * (pages - 1))) / pages;
- y1[0] = 812f;
- y2[0] = 812f - height;
-
- for (int i = 1; i < pages; i++) {
- y1[i] = y2[i - 1] - 20f;
- y2[i] = y1[i] - height;
- }
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- // we retrieve the total number of pages
- int n = reader.getNumberOfPages();
- System.out.println("There are " + n + " pages in the original file.");
-
- // step 1: creation of a document-object
- Document document = new Document(PageSize.A4);
- // step 2: we create a writer that listens to the document
- PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
- // step 3: we open the document
- document.open();
- PdfContentByte cb = writer.getDirectContent();
- PdfImportedPage page;
- int rotation;
- int i = 0;
- int p = 0;
- // step 4: we add content
- while (i < n) {
- i++;
- Rectangle rect = reader.getPageSizeWithRotation(i);
- float factorx = (x2 - x1) / rect.width();
- float factory = (y1[p] - y2[p]) / rect.height();
- float factor = (factorx < factory ? factorx : factory);
- float dx = (factorx == factor ? 0f : ((x2 - x1) - rect.width() * factor) / 2f);
- float dy = (factory == factor ? 0f : ((y1[p] - y2[p]) - rect.height() * factor) / 2f);
- page = writer.getImportedPage(reader, i);
- rotation = reader.getPageRotation(i);
- if (rotation == 90 || rotation == 270) {
- cb.addTemplate(page, 0, -factor, factor, 0, x1 + dx, y2[p] + dy + rect.height() * factor);
- }
- else {
- cb.addTemplate(page, factor, 0, 0, factor, x1 + dx, y2[p] + dy);
- }
- cb.setRGBColorStroke(0xC0, 0xC0, 0xC0);
- cb.rectangle(x3 - 5f, y2[p] - 5f, x4 - x3 + 10f, y1[p] - y2[p] + 10f);
- for (float l = y1[p] - 19; l > y2[p]; l -= 16) {
- cb.moveTo(x3, l);
- cb.lineTo(x4, l);
- }
- cb.rectangle(x1 + dx, y2[p] + dy, rect.width() * factor, rect.height() * factor);
- cb.stroke();
- System.out.println("Processed page " + i);
- p++;
- if (p == pages) {
- p = 0;
- document.newPage();
- }
- }
- // step 5: we close the document
- document.close();
- }
- catch(Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Converts a PDF file to a PDF file useable as Handout.
- * @param args
- */
- public static void main(String[] args) {
- Handouts tool = new Handouts();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/HtmlBookmarks.java b/src/main/java/com/lowagie/tools/plugins/HtmlBookmarks.java
deleted file mode 100644
index aa8966f..0000000
--- a/src/main/java/com/lowagie/tools/plugins/HtmlBookmarks.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * $Id: HtmlBookmarks.java,v 1.12 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.Anchor;
-import com.lowagie.text.Chapter;
-import com.lowagie.text.Chunk;
-import com.lowagie.text.Document;
-import com.lowagie.text.Header;
-import com.lowagie.text.Paragraph;
-import com.lowagie.text.Section;
-import com.lowagie.text.html.HtmlTags;
-import com.lowagie.text.html.HtmlWriter;
-import com.lowagie.text.markup.MarkupTags;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.SimpleBookmark;
-import com.lowagie.tools.Executable;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Allows you to generate an index file in HTML containing Bookmarks to an existing PDF file.
- */
-public class HtmlBookmarks extends AbstractTool {
-
- static {
- addVersion("$Id: HtmlBookmarks.java,v 1.12 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs an HtmlBookmarks object.
- */
- public HtmlBookmarks() {
- arguments.add(new FileArgument(this, "srcfile", "The file you want to inspect", false, new PdfFilter()));
- arguments.add(new ToolArgument(this, "ownerpassword", "The owner password if the file is encrypt", String.class.getName()));
- arguments.add(new ToolArgument(this, "css", "The path to a CSS file", String.class.getName()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Html Bookmarks", true, true, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Html Bookmarks OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- File src = (File)getValue("srcfile");
- PdfReader reader;
- if (getValue("ownerpassword") == null) {
- reader = new PdfReader(src.getAbsolutePath());
- }
- else {
- reader = new PdfReader(src.getAbsolutePath(), ((String)getValue("ownerpassword")).getBytes());
- }
- File directory = src.getParentFile();
- String name = src.getName();
- name = name.substring(0, name.lastIndexOf("."));
- File html = new File(directory, name + "_index.html");
- Document document = new Document();
- HtmlWriter.getInstance(document, new FileOutputStream(html));
- Object css = getValue("css");
- if (css != null) {
- document.add(new Header(HtmlTags.STYLESHEET, css.toString()));
- }
- Object title = reader.getInfo().get("Title");
- if (title == null)
- document.addTitle("Index for " + src.getName());
- else
- document.addKeywords("Index for '" + title + "'");
- Object keywords = reader.getInfo().get("Keywords");
- if (keywords != null)
- document.addKeywords((String)keywords);
- Object description = reader.getInfo().get("Subject");
- if (keywords != null)
- document.addSubject((String)description);
- document.open();
- Paragraph t;
- if (title == null)
- t = new Paragraph("Index for " + src.getName());
- else
- t = new Paragraph("Index for '" + title + "'");
- t.setMarkupAttribute(MarkupTags.HTML_ATTR_CSS_CLASS, "title");
- document.add(t);
- if (description != null) {
- Paragraph d = new Paragraph((String) description);
- d.setMarkupAttribute(MarkupTags.HTML_ATTR_CSS_CLASS, "description");
- document.add(d);
- }
- List list = SimpleBookmark.getBookmark(reader);
- if (list == null) {
- document.add(new Paragraph("This document has no bookmarks."));
- }
- else {
- HashMap c;
- for (Iterator i = list.iterator(); i.hasNext(); ) {
- c = (HashMap) i.next();
- Chapter chapter = (Chapter)createBookmark(src.getName(), null, c);
- ArrayList kids = (ArrayList) c.get("Kids");
- if (kids != null) {
- for (Iterator k = kids.iterator(); k.hasNext(); ) {
- addBookmark(src.getName(), chapter, (HashMap)k.next());
- }
- }
- document.add(chapter);
- }
- }
- document.close();
- Executable.launchBrowser(html.getAbsolutePath());
- }
- catch(Exception e) {
- e.printStackTrace();
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * Recursive method to write Bookmark titles to the System.out.
- * @param pdf the path to the PDF file
- * @param section the section to which the bookmarks should be added
- * @param bookmark a HashMap containing a Bookmark (and possible kids)
- */
- private static void addBookmark(String pdf, Section section, HashMap bookmark) {
- Section s = createBookmark(pdf, section, bookmark);
- ArrayList kids = (ArrayList) bookmark.get("Kids");
- if (kids == null) return;
- for (Iterator i = kids.iterator(); i.hasNext(); ) {
- addBookmark(pdf, s, (HashMap)i.next());
- }
- }
-
- /**
- * Adds a line with the title and an anchor.
- * @param pdf the link to the PDF file
- * @param section the section that gets the line
- * @param bookmark the bookmark that has the data for the line
- * @return a subsection of section
- */
- private static Section createBookmark(String pdf, Section section, HashMap bookmark) {
- Section s;
- Paragraph title = new Paragraph((String)bookmark.get("Title"));
- System.out.println((String)bookmark.get("Title"));
- String action = (String)bookmark.get("Action");
- if ("GoTo".equals(action)) {
- if (bookmark.get("Page") != null) {
- String page = (String)bookmark.get("Page");
- StringTokenizer tokens = new StringTokenizer(page);
- String token = tokens.nextToken();
- Anchor anchor = new Anchor(" page" + token);
- anchor.setReference(pdf + "#page=" + token);
- title.add(anchor);
- }
- }
- else if ("URI".equals(action)) {
- String url = (String)bookmark.get("URI");
- Anchor anchor = new Anchor(" Goto URL");
- anchor.setReference(url);
- title.add(anchor);
- }
- else if ("GoToR".equals(action)) {
- String remote = (String)bookmark.get("File");
- Anchor anchor = new Anchor(" goto " + remote);
- if (bookmark.get("Named") != null) {
- String named = (String)bookmark.get("Named");
- remote = remote + "#nameddest=" + named;
- }
- else if (bookmark.get("Page") != null) {
- String page = (String)bookmark.get("Page");
- StringTokenizer tokens = new StringTokenizer(page);
- String token = tokens.nextToken();
- anchor.add(new Chunk(" page " + token));
- remote = remote + "#page=" + token;
- }
- anchor.setReference(remote);
- title.add(anchor);
- }
- if (section == null) {
- s = new Chapter(title, 0);
- }
- else {
- s = section.addSection(title);
- }
- s.setNumberDepth(0);
- return s;
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Allows you to generate an index file in HTML containing Bookmarks to an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- HtmlBookmarks tool = new HtmlBookmarks();
- if (args.length < 1) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is no file to show.");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/ImageXRefViewer.java b/src/main/java/com/lowagie/tools/plugins/ImageXRefViewer.java
deleted file mode 100644
index 34bbc50..0000000
--- a/src/main/java/com/lowagie/tools/plugins/ImageXRefViewer.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * $Id: ImageXRefViewer.java,v 1.3 2006/04/05 07:55:00 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Carsten Hammer and 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 (C) 1999-2006 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000-2006 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.tools.plugins;
-
-import java.awt.BorderLayout;
-import java.awt.CardLayout;
-import java.awt.Toolkit;
-import java.io.File;
-
-import javax.swing.BorderFactory;
-import javax.swing.JInternalFrame;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSpinner;
-import javax.swing.SpinnerModel;
-import javax.swing.SwingConstants;
-import javax.swing.event.ChangeEvent;
-
-import com.lowagie.text.pdf.PRStream;
-import com.lowagie.text.pdf.PdfName;
-import com.lowagie.text.pdf.PdfObject;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfStream;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-import javax.swing.JScrollPane;
-import com.lowagie.tools.SwingWorker;
-import java.io.*;
-import java.awt.Cursor;
-
-/**
- * Allows you to inspect the Image XObjects inside a PDF file.
- */
-public class ImageXRefViewer
- extends AbstractTool {
- static {
- addVersion("$Id: ImageXRefViewer.java,v 1.3 2006/04/05 07:55:00 blowagie Exp $");
- }
-
- class ViewXRefImages_jSpinner1_propertyChangeAdapter
- implements javax.swing.event.ChangeListener {
- private ImageXRefViewer adaptee;
- ViewXRefImages_jSpinner1_propertyChangeAdapter(ImageXRefViewer adaptee) {
- this.adaptee = adaptee;
- }
- /**
- * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent)
- */
- public void stateChanged(ChangeEvent e) {
- adaptee.jSpinner_propertyChange(e);
- }
- }
-
- JPanel jPanel1 = new JPanel();
- BorderLayout borderLayout1 = new BorderLayout();
- JLabel jLabel1 = new JLabel();
- int picturenumber = 0;
- JPanel jPanel2 = new JPanel();
- BorderLayout borderLayout2 = new BorderLayout();
- CardLayout cardLayout1 = new CardLayout();
- JPanel jPanel3 = new JPanel();
- JSpinner jSpinner1 = new JSpinner();
- BorderLayout borderLayout3 = new BorderLayout();
- SpinnerModel spinnerModel1 = jSpinner1.getModel();
- JScrollPane jScrollPane1 = new JScrollPane();
-
-
- /**
- * Creates a ViewImageXObjects object.
- */
- public ImageXRefViewer() {
- arguments.add(new FileArgument(this, "srcfile", "The file you want to inspect", false, new PdfFilter()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is no file to show.");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("View Image XObjects", true, false, true);
- internalFrame.setSize(500, 300);
- internalFrame.setJMenuBar(getMenubar());
- internalFrame.getContentPane().setLayout(borderLayout1);
- jPanel1.setLayout(borderLayout2);
- jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
- jLabel1.setText("images");
- jPanel2.setLayout(cardLayout1);
- jPanel3.setLayout(borderLayout3);
- jSpinner1.addChangeListener(new
- ViewXRefImages_jSpinner1_propertyChangeAdapter(this));
- jPanel2.setBorder(BorderFactory.createEtchedBorder());
- internalFrame.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
- jPanel3.add(jSpinner1, java.awt.BorderLayout.CENTER);
- jPanel3.add(jLabel1, java.awt.BorderLayout.NORTH);
- jPanel1.add(jPanel3, java.awt.BorderLayout.NORTH);
- jPanel1.add(jScrollPane1, java.awt.BorderLayout.CENTER);
- jScrollPane1.setViewportView(jPanel2);
- System.out.println("=== Image XObject Viewer OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- // do nothing
- }
-
- /**
- * Reflects the change event in the JSpinner object.
- * @param evt
- */
- public void jSpinner_propertyChange(ChangeEvent evt) {
- int blatt = Integer.parseInt(jSpinner1.getValue().toString());
- if (blatt < 0) blatt = 0;
- if (blatt >= picturenumber) blatt = picturenumber - 1;
- this.cardLayout1.show(jPanel2, String.valueOf(blatt));
- jPanel2.repaint();
- }
- /**
- * Shows the images that are added to the PDF as Image XObjects.
- * @param args
- */
- public static void main(String[] args) {
- InspectPDF tool = new InspectPDF();
- if (args.length < 1) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- picturenumber = 0;
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
-
- SwingWorker work= new SwingWorker(){
-
- public Object construct() {
- try {
- PdfReader reader = new PdfReader( ( (File)
- getValue("srcfile")).getAbsolutePath());
- for (int i = 0; i < reader.getXrefSize(); i++) {
- PdfObject pdfobj = reader.getPdfObject(i);
- if (pdfobj != null) {
- if (pdfobj.isStream()) {
- PdfStream pdfdict = (PdfStream) pdfobj;
- PdfObject pdfsubtype = pdfdict.get(PdfName.
- SUBTYPE);
- if (pdfsubtype == null) {
- continue;
- }
- if (!pdfsubtype.toString().equals(PdfName.
- IMAGE.toString())) {
- continue;
- }
- System.out.println("picturenumber: " +
- picturenumber);
- System.out.println("height:" +
- pdfdict.get(PdfName.HEIGHT));
- System.out.println("width:" +
- pdfdict.get(PdfName.WIDTH));
- System.out.println("bitspercomponent:" +
- pdfdict.get(PdfName.BITSPERCOMPONENT));
- byte[] barr = PdfReader.getStreamBytesRaw( (
- PRStream) pdfdict);
- java.awt.Image im = Toolkit.
- getDefaultToolkit().createImage(barr);
- javax.swing.ImageIcon ii = new javax.swing.
- ImageIcon(im);
-
- JLabel jLabel1 = new JLabel();
- jLabel1.setIcon(ii);
- jPanel2.add(jLabel1, "" + picturenumber++);
- }
- }
- }
- }
- catch (InstantiationException ex) {
- }
- catch (IOException ex) {
- }
- internalFrame.setCursor(Cursor.getDefaultCursor());
- return null;
- }
- };
- internalFrame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- work.start();
- }
- catch(Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/InspectPDF.java b/src/main/java/com/lowagie/tools/plugins/InspectPDF.java
deleted file mode 100644
index b017221..0000000
--- a/src/main/java/com/lowagie/tools/plugins/InspectPDF.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * $Id: InspectPDF.java,v 1.6 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.pdf.PdfEncryptor;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Allows you to inspect an existing PDF file.
- */
-public class InspectPDF extends AbstractTool {
- static {
- addVersion("$Id: InspectPDF.java,v 1.6 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs an InpectPDF object.
- */
- public InspectPDF() {
- arguments.add(new FileArgument(this, "srcfile", "The file you want to inspect", false, new PdfFilter()));
- arguments.add(new ToolArgument(this, "ownerpassword", "The owner password if the file is encrypt", String.class.getName()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Pdf Information", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Pdf Information OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- PdfReader reader;
- if (getValue("ownerpassword") == null) {
- reader = new PdfReader(((File)getValue("srcfile")).getAbsolutePath());
- }
- else {
- reader = new PdfReader(((File)getValue("srcfile")).getAbsolutePath(), ((String)getValue("ownerpassword")).getBytes());
- }
- // Some general document information and page size
- System.out.println("=== Document Information ===");
- System.out.println("PDF Version: " + reader.getPdfVersion());
- System.out.println("Number of pages: " + reader.getNumberOfPages());
- System.out.println("Number of PDF objects: " + reader.getXrefSize());
- System.out.println("File length: " + reader.getFileLength());
- System.out.println("Encrypted? " + reader.isEncrypted());
- if (reader.isEncrypted()) {
- System.out.println("Permissions: " + PdfEncryptor.getPermissionsVerbose(reader.getPermissions()));
- System.out.println("128 bit? " + reader.is128Key());
- }
- System.out.println("Rebuilt? " + (!reader.isRebuilt()));
- // Some metadata
- System.out.println("=== Metadata ===");
- HashMap info = reader.getInfo();
- String key;
- String value;
- for (Iterator i = info.keySet().iterator(); i.hasNext(); ) {
- key = (String) i.next();
- value = (String) info.get(key);
- System.out.println(key + ": " + value);
- }
- if (reader.getMetadata() == null) {
- System.out.println("There is no XML Metadata in the file");
- }
- else {
- System.out.println("XML Metadata: " + new String(reader.getMetadata()));
- }
- }
- catch(Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Inspects an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- InspectPDF tool = new InspectPDF();
- if (args.length < 1) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is no file to show.");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/KnitTiff.java b/src/main/java/com/lowagie/tools/plugins/KnitTiff.java
deleted file mode 100644
index 428bbb7..0000000
--- a/src/main/java/com/lowagie/tools/plugins/KnitTiff.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * $Id: KnitTiff.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.Image;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.PdfContentByte;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.text.pdf.RandomAccessFileOrArray;
-import com.lowagie.text.pdf.codec.TiffImage;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.ImageFilter;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Knits two TIFF files, one with the even pages and another with the odd pages, together.
- */
-public class KnitTiff extends AbstractTool {
-
- static {
- addVersion("$Id: KnitTiff.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $");
- }
- /**
- * Constructs a KnitTiff object.
- */
- public KnitTiff() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- arguments.add(new FileArgument(this, "odd", "The tiff file with the odd pages", false, new ImageFilter(false, false, false, false, false, true)));
- arguments.add(new FileArgument(this, "even", "The tiff file with the even pages", false, new ImageFilter(false, false, false, false, false, true)));
- arguments.add(new FileArgument(this, "destfile", "The file to which the converted TIFF has to be written", true, new PdfFilter()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("KnitTiff", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== KnitTiff OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("odd") == null) throw new InstantiationException("You need to choose a sourcefile for the odd pages");
- File odd_file = (File)getValue("odd");
- if (getValue("even") == null) throw new InstantiationException("You need to choose a sourcefile for the even pages");
- File even_file = (File)getValue("even");
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- File pdf_file = (File)getValue("destfile");
- RandomAccessFileOrArray odd = new RandomAccessFileOrArray(odd_file.getAbsolutePath());
- RandomAccessFileOrArray even = new RandomAccessFileOrArray(even_file.getAbsolutePath());
- Image img = TiffImage.getTiffImage(odd, 1);
- Document document = new Document(new Rectangle(img.scaledWidth(),
- img.scaledHeight()));
- PdfWriter writer = PdfWriter.getInstance(document,
- new FileOutputStream(pdf_file));
- document.open();
- PdfContentByte cb = writer.getDirectContent();
- int count = Math.max(TiffImage.getNumberOfPages(odd), TiffImage
- .getNumberOfPages(even));
- for (int c = 0; c < count; ++c) {
- try {
- Image imgOdd = TiffImage.getTiffImage(odd, c + 1);
- Image imgEven = TiffImage.getTiffImage(even, count - c);
- document.setPageSize(new Rectangle(imgOdd.scaledWidth(),
- imgOdd.scaledHeight()));
- document.newPage();
- imgOdd.setAbsolutePosition(0, 0);
- cb.addImage(imgOdd);
- document.setPageSize(new Rectangle(imgEven.scaledWidth(),
- imgEven.scaledHeight()));
- document.newPage();
- imgEven.setAbsolutePosition(0, 0);
- cb.addImage(imgEven);
-
- } catch (Exception e) {
- System.out.println("Exception page " + (c + 1) + " "
- + e.getMessage());
- }
- }
- odd.close();
- even.close();
- document.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Converts a tiff file to PDF.
- * @param args
- */
- public static void main(String[] args) {
- KnitTiff tool = new KnitTiff();
- if (args.length < 3) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/LPRClient.java b/src/main/java/com/lowagie/tools/plugins/LPRClient.java
deleted file mode 100644
index 3214013..0000000
--- a/src/main/java/com/lowagie/tools/plugins/LPRClient.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * $Id: LPRClient.java,v 1.4 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-import com.lowagie.tools.LPR;
-
-/**
- * Allows you to print an existing PDF file via lpr.
- */
-public class LPRClient extends AbstractTool {
- static {
- addVersion("$Id: LPRClient.java,v 1.4 2005/11/29 21:05:02 blowagie Exp $");
- }
-
-String fallback="%!PS\n"+
- "/vpos 720 def\n"+
- "/newline\n"+
- " {\n"+
- "/vpos vpos 15 sub def\n"+
- "72 vpos moveto\n"+
- "} def \n"+
- "/printword\n"+
- "{\n"+
- "show\n"+
- "newline\n"+
- "vpos 100 le { \n"+
- "showpage\n"+
- "100 100 moveto\n"+
- "/vpos 720 def\n"+
- "/Helvetica findfont 15 scalefont setfont\n"+
- "} if\n"+
- "} def \n"+
- "/nstr 9 string def\n"+
- "/prt-n\n"+
- "{\n"+
- "nstr cvs printword\n"+
- "} def\n"+
- "100 100 moveto\n"+
- "/Helvetica findfont 15 scalefont setfont\n"+
- "(---) printword \n"+
- "(Postscript Engine Testpage) printword\n"+
- "() printword\n"+
- "() printword\n"+
- "(Defaultpagesize) printword\n"+
- "currentpagedevice /PageSize get\n"+
- "(Width: ) show \n"+
- "0 get prt-n\n"+
- "currentpagedevice /PageSize get\n"+
- "(Height: ) show \n"+
- "1 get prt-n\n"+
- "() printword\n"+
- "(Printerresolution) printword\n"+
- "currentpagedevice /HWResolution get\n"+
- "(X: ) show \n"+
- "0 get prt-n\n"+
- "currentpagedevice /HWResolution get\n"+
- "(Y: ) show \n"+
- "1 get prt-n\n"+
- "() printword\n"+
- "(Information about Postscriptengine) printword\n"+
- "(Postscriptengine Type: ) show\n"+
- "product printword\n"+
- "(Version: ) show\n"+
- "version printword\n"+
- "() printword \n"+
- "mark\n"+
- "(\n) \n"+
- "revision 10 mod \n"+
- "revision 100 mod 10 idiv (.)\n"+
- "revision 100 idiv \n"+
- "(Revision: )\n"+
- "(\n) \n"+
- "counttomark\n"+
- "{ 17 string cvs show\n"+
- "} repeat pop \n"+
- "() printword \n"+
- "(Postscript Languagelevel: ) show\n"+
- "/languagelevel where\n"+
- "{pop languagelevel}\n"+
- "{1}\n"+
- "ifelse\n"+
- "3 string cvs printword \n"+
- "usertime \n"+
- "prt-n \n"+
- "vmstatus\n"+
- "(Printerram Max.: ) show\n"+
- "prt-n\n"+
- "(Printerram Cur.: ) show\n"+
- "prt-n\n"+
- "() printword\n"+
- "showpage";
- /**
- * Constructs an LPRClient object.
- */
- public LPRClient() {
- arguments.add(new FileArgument(this, "srcfile",
- "The file you want to print", false, new PdfFilter()));
- arguments.add(new ToolArgument(this, "hostname",
- "The hostname of the lpr server", String.class.getName()));
- arguments.add(new ToolArgument(this, "queuename",
- "The queuename of the lpr server", String.class.getName()));
- arguments.add(new ToolArgument(this, "copies",
- "The number of copies to print", String.class.getName()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("LPR", true, false, true);
- internalFrame.setSize(500, 300);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== LPR OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- String filename=null;
- File pdffile=null;
- if (getValue("srcfile") == null){
- filename=null;
- }else{
- filename = getValue("srcfile").toString();
- pdffile = new File(filename);
- }
-// throw new InstantiationException(
-// "You need to choose a sourcefile");
- if (getValue("hostname") == null)
- throw new InstantiationException(
- "You need to choose a hostname");
- if (getValue("queuename") == null)
- throw new InstantiationException(
- "You need to choose a queuename");
- if (getValue("copies") == null)
- throw new InstantiationException(
- "You need to choose the number of copies");
- LPR lpr = new LPR(getValue("hostname").toString(), System
- .getProperty("user.name"));
- lpr.setCopies(Integer.parseInt(getValue("copies").toString()));
- if(filename==null){
- lpr.print(getValue("queuename").toString(), fallback, "Version");
- }else{
- lpr.print(getValue("queuename").toString(), pdffile, pdffile
- .getName());
- }
-
- } catch (Exception e) {
- JOptionPane.showMessageDialog(internalFrame, e.getMessage(), e
- .getClass().getName(), JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the
- // commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Prints a PDF file via lpr.
- *
- * @param args
- */
- public static void main(String[] args) {
- LPRClient tool = new LPRClient();
- if (args.length < tool.getArguments().size()) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is no file to show.");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/NUp.java b/src/main/java/com/lowagie/tools/plugins/NUp.java
deleted file mode 100644
index 7376213..0000000
--- a/src/main/java/com/lowagie/tools/plugins/NUp.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * $Id: NUp.java,v 1.6 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Mark Thompson. Copyright (c) 2002 Mark Thompson.
- *
- * This code 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.
- *
- * itext-questions@list.sourceforge.net
- */
-package com.lowagie.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.PdfContentByte;
-import com.lowagie.text.pdf.PdfImportedPage;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.OptionArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This tool lets you generate a PDF that shows N pages on 1.
- */
-public class NUp extends AbstractTool {
-
- static {
- addVersion("$Id: NUp.java,v 1.6 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs an NUp object.
- */
- public NUp() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- arguments.add(new FileArgument(this, "srcfile", "The file you want to N-up", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile", "The resulting PDF", true, new PdfFilter()));
- OptionArgument oa = new OptionArgument(this, "pow2", "The number of pages you want to copy to 1 page");
- oa.addOption("2", "1");
- oa.addOption("4", "2");
- oa.addOption("8", "3");
- oa.addOption("16", "4");
- oa.addOption("32", "5");
- oa.addOption("64", "6");
- arguments.add(oa);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("N-up", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== N-up OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- File src = (File)getValue("srcfile");
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- File dest = (File)getValue("destfile");
- int pow2;
- try {
- pow2 = Integer.parseInt((String) getValue("pow2"));
- }
- catch(Exception e) {
- pow2 = 1;
- }
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- // we retrieve the total number of pages and the page size
- int total = reader.getNumberOfPages();
- System.out.println("There are " + total + " pages in the original file.");
- Rectangle pageSize = reader.getPageSize(1);
- Rectangle newSize = (pow2 % 2) == 0 ? new Rectangle(pageSize.width(), pageSize.height()) : new Rectangle(pageSize.height(), pageSize.width());
- Rectangle unitSize = new Rectangle(pageSize.width(), pageSize.height());
- Rectangle currentSize;
- for (int i = 0; i < pow2; i++) {
- unitSize = new Rectangle(unitSize.height() / 2, unitSize.width());
- }
- int n = (int)Math.pow(2, pow2);
- int r = (int)Math.pow(2, (int)pow2 / 2);
- int c = n / r;
- // step 1: creation of a document-object
- Document document = new Document(newSize, 0, 0, 0, 0);
- // step 2: we create a writer that listens to the document
- PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
- // step 3: we open the document
- document.open();
- // step 4: adding the content
- PdfContentByte cb = writer.getDirectContent();
- PdfImportedPage page;
- float offsetX, offsetY, factor;
- int p;
- for (int i = 0; i < total; i++) {
- if (i % n == 0) {
- document.newPage();
- }
- p = i + 1;
- offsetX = unitSize.width() * ((i % n) % c);
- offsetY = newSize.height() - (unitSize.height() * (((i % n) / c) + 1));
- currentSize = reader.getPageSize(p);
- factor = Math.min(unitSize.width() / currentSize.width(), unitSize.height() / currentSize.height());
- offsetX += (unitSize.width() - (currentSize.width() * factor)) / 2f;
- offsetY += (unitSize.height() - (currentSize.height() * factor)) / 2f;
- page = writer.getImportedPage(reader, p);
- cb.addTemplate(page, factor, 0, 0, factor, offsetX, offsetY);
- }
- // step 5: we close the document
- document.close();
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Generates an NUp version of an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- NUp tool = new NUp();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/PhotoAlbum.java b/src/main/java/com/lowagie/tools/plugins/PhotoAlbum.java
deleted file mode 100644
index 26a95f3..0000000
--- a/src/main/java/com/lowagie/tools/plugins/PhotoAlbum.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * $Id: PhotoAlbum.java,v 1.8 2006/03/21 08:49:35 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.Iterator;
-import java.util.TreeSet;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.Image;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.PdfPageLabels;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.DirFilter;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Converts a Tiff file to a PDF file.
- * Inspired by a comp.text.pdf question by Sebastian Schubert
- * and an answer by Hans-Werner Hilse.
- */
-public class PhotoAlbum extends AbstractTool {
-
- static {
- addVersion("$Id: PhotoAlbum.java,v 1.8 2006/03/21 08:49:35 blowagie Exp $");
- }
- /**
- * Constructs a PhotoAlbum object.
- */
- public PhotoAlbum() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- arguments.add(new FileArgument(this, "srcdir", "The directory containing the image files", false, new DirFilter()));
- arguments.add(new FileArgument(this, "destfile", "The file to which the converted TIFF has to be written", true, new PdfFilter()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("PhotoAlbum", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== PhotoAlbum OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcdir") == null) throw new InstantiationException("You need to choose a source directory");
- File directory = (File)getValue("srcdir");
- if (directory.isFile()) directory = directory.getParentFile();
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- File pdf_file = (File)getValue("destfile");
- Document document = new Document();
- PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdf_file));
- writer.setViewerPreferences(PdfWriter.PageModeUseThumbs);
- PdfPageLabels pageLabels = new PdfPageLabels();
- int dpiX, dpiY;
- float imgWidthPica, imgHeightPica;
- TreeSet images = new TreeSet();
- File[] files = directory.listFiles();
- for (int i = 0; i < files.length; i++) {
- if (files[i].isFile()) images.add(files[i]);
- }
- File image;
- String label;
- for (Iterator i = images.iterator(); i.hasNext(); ) {
- image = (File) i.next();
- System.out.println("Testing image: " + image.getName());
- try {
- Image img = Image.getInstance(image.getAbsolutePath());
- dpiX=img.getDpiX();
- if (dpiX == 0) dpiX=72;
- dpiY=img.getDpiY();
- if (dpiY == 0) dpiY=72;
- imgWidthPica=(72*img.plainWidth()) / dpiX;
- imgHeightPica=(72*img.plainHeight()) / dpiY;
- img.scaleAbsolute(imgWidthPica,imgHeightPica);
- document.setPageSize(new Rectangle(imgWidthPica, imgHeightPica));
- if (document.isOpen()) {
- document.newPage();
- }
- else {
- document.open();
- }
- img.setAbsolutePosition(0, 0);
- document.add(img);
- label = image.getName();
- if (label.lastIndexOf(".") > 0);
- label = label.substring(0, label.lastIndexOf("."));
- pageLabels.addPageLabel(writer.getPageNumber(), PdfPageLabels.EMPTY, label);
- System.out.println("Added image: " + image.getName());
- }
- catch(Exception e) {
- System.err.println(e.getMessage());
- }
- }
- if (document.isOpen()) {
- writer.setPageLabels(pageLabels);
- document.close();
- }
- else {
- System.err.println("No images were found in directory " + directory.getAbsolutePath());
- }
- } catch (Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Converts a tiff file to PDF.
- * @param args
- */
- public static void main(String[] args) {
- PhotoAlbum tool = new PhotoAlbum();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/RemoveLaunchApplication.java b/src/main/java/com/lowagie/tools/plugins/RemoveLaunchApplication.java
deleted file mode 100644
index fc082e7..0000000
--- a/src/main/java/com/lowagie/tools/plugins/RemoveLaunchApplication.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * $Id: RemoveLaunchApplication.java,v 1.4 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.pdf.PRIndirectReference;
-import com.lowagie.text.pdf.PdfDictionary;
-import com.lowagie.text.pdf.PdfName;
-import com.lowagie.text.pdf.PdfObject;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfStamper;
-import com.lowagie.text.pdf.PdfString;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This tool copies an existing PDF and removes potentially dangerous code that launches an application.
- */
-public class RemoveLaunchApplication
- extends AbstractTool {
-
- static {
- addVersion(
- "$Id: RemoveLaunchApplication.java,v 1.4 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs a ReversePages object.
- */
- public RemoveLaunchApplication() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- arguments.add(new FileArgument(this, "srcfile",
- "The file from which you want to remove Launch Application actions", false,
- new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile",
- "The file to which the cleaned up version of the original PDF has to be written", true,
- new PdfFilter()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Remove Launch Applications", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Remove Launch Applications OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) {
- throw new InstantiationException("You need to choose a sourcefile");
- }
- File src = (File) getValue("srcfile");
- if (getValue("destfile") == null) {
- throw new InstantiationException(
- "You need to choose a destination file");
- }
- File dest = (File) getValue("destfile");
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- PdfObject o;
- PdfDictionary d;
- PdfDictionary l;
- PdfName n;
- for (int i = 1; i < reader.getXrefSize(); i++) {
- o = reader.getPdfObject(i);
- if (o instanceof PdfDictionary) {
- d = (PdfDictionary)o;
- o = d.get(PdfName.A);
- if (o == null) continue;
- if (o instanceof PdfDictionary) {
- l = (PdfDictionary)o;
- }
- else {
- PRIndirectReference r =(PRIndirectReference)o;
- l = (PdfDictionary)reader.getPdfObject(r.getNumber());
- }
- n = (PdfName)l.get(PdfName.S);
- if (PdfName.LAUNCH.equals(n)) {
- if (l.get(PdfName.F) != null) {
- System.out.println("Removed: " + l.get(PdfName.F));
- l.remove(PdfName.F);
- }
- if (l.get(PdfName.WIN) != null) {
- System.out.println("Removed: " + l.get(PdfName.WIN));
- l.remove(PdfName.WIN);
- }
- l.put(PdfName.S, PdfName.JAVASCRIPT);
- l.put(PdfName.JS, new PdfString("app.alert('Launch Application Action removed by iText');\r"));
- }
- }
- }
- PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
- stamper.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Copy an existing PDF and replace the Launch Application Action with JavaScript alerts.
- * @param args
- */
- public static void main(String[] args) {
- RemoveLaunchApplication tool = new RemoveLaunchApplication();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File) getValue("destfile");
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/plugins/ReversePages.java b/src/main/java/com/lowagie/tools/plugins/ReversePages.java
deleted file mode 100644
index 52b3053..0000000
--- a/src/main/java/com/lowagie/tools/plugins/ReversePages.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * $Id: ReversePages.java,v 1.3 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Bruno Lowagie and anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.pdf.PRAcroForm;
-import com.lowagie.text.pdf.PdfCopy;
-import com.lowagie.text.pdf.PdfImportedPage;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This tool lets you take pages from an existing PDF and copy them in reverse order into a new PDF.
- */
-public class ReversePages
- extends AbstractTool {
-
- static {
- addVersion(
- "$Id: ReversePages.java,v 1.3 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs a ReversePages object.
- */
- public ReversePages() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- arguments.add(new FileArgument(this, "srcfile",
- "The file you want to reorder", false,
- new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile",
- "The file to which the reordered version of the original PDF has to be written", true,
- new PdfFilter()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("ReversePages", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== ReversePages OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) {
- throw new InstantiationException("You need to choose a sourcefile");
- }
- File src = (File) getValue("srcfile");
- if (getValue("destfile") == null) {
- throw new InstantiationException(
- "You need to choose a destination file");
- }
- File dest = (File) getValue("destfile");
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- System.out.println("The original file had " + reader.getNumberOfPages() +
- " pages.");
- int pages = reader.getNumberOfPages();
- java.util.ArrayList li=new java.util.ArrayList();
- for(int i=pages;i>0;i--){
- li.add(new Integer(i));
- }
- reader.selectPages(li);
-
- System.err.println("The new file has " + pages + " pages.");
- Document document = new Document(reader.getPageSizeWithRotation(1));
- PdfCopy copy = new PdfCopy(document,
- new FileOutputStream(dest.getAbsolutePath()));
- document.open();
- PdfImportedPage page;
- for (int i = 0; i < pages; ) {
- ++i;
- System.out.println("Processed page " + i);
- page = copy.getImportedPage(reader, i);
- copy.addPage(page);
- }
-
- PRAcroForm form = reader.getAcroForm();
- if (form != null) {
- copy.copyAcroForm(reader);
- }
- document.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Take pages from an existing PDF and copy them in reverse order into a new PDF.
- * @param args
- */
- public static void main(String[] args) {
- ReversePages tool = new ReversePages();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File) getValue("destfile");
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/plugins/SelectedPages.java b/src/main/java/com/lowagie/tools/plugins/SelectedPages.java
deleted file mode 100644
index 73b3b4f..0000000
--- a/src/main/java/com/lowagie/tools/plugins/SelectedPages.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * $Id: SelectedPages.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Mark Thompson. Copyright (c) 2002 Mark Thompson.
- *
- * This code 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.
- *
- * itext-questions@list.sourceforge.net
- */
-package com.lowagie.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.pdf.PRAcroForm;
-import com.lowagie.text.pdf.PdfCopy;
-import com.lowagie.text.pdf.PdfImportedPage;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PageSelectorToolArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This tool lets you select pages from an existing PDF and copy them into a new PDF.
- */
-public class SelectedPages
- extends AbstractTool {
-
- static {
- addVersion(
- "$Id: SelectedPages.java,v 1.7 2005/11/29 21:05:02 blowagie Exp $");
- }
-
- /**
- * Constructs a SelectedPages object.
- */
- public SelectedPages() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- ToolArgument inputfile = new FileArgument(this, "srcfile",
- "The file you want to split", false,
- new PdfFilter());
- arguments.add(inputfile);
- arguments.add(new FileArgument(this, "destfile",
- "The file to which the first part of the original PDF has to be written", true,
- new PdfFilter()));
- ToolArgument spfpdf = new PageSelectorToolArgument(this, "selection",
- "A selection of pages (see Help for more info)", String.class.getName());
- arguments.add(spfpdf);
- inputfile.addPropertyChangeListener(spfpdf);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("SelectedPages", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== SelectedPages OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) {
- throw new InstantiationException("You need to choose a sourcefile");
- }
- File src = (File) getValue("srcfile");
- if (getValue("destfile") == null) {
- throw new InstantiationException(
- "You need to choose a destination file for the first part of the PDF");
- }
- File dest = (File) getValue("destfile");
- String selection = (String) getValue("selection");
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- System.out.println("The original file had " + reader.getNumberOfPages() +
- " pages.");
- reader.selectPages(selection);
- int pages = reader.getNumberOfPages();
- System.err.println("The new file has " + pages + " pages.");
- Document document = new Document(reader.getPageSizeWithRotation(1));
- PdfCopy copy = new PdfCopy(document,
- new FileOutputStream(dest.getAbsolutePath()));
- document.open();
- PdfImportedPage page;
- for (int i = 0; i < pages; ) {
- ++i;
- System.out.println("Processed page " + i);
- page = copy.getImportedPage(reader, i);
- copy.addPage(page);
- }
- PRAcroForm form = reader.getAcroForm();
- if (form != null) {
- copy.copyAcroForm(reader);
- }
- document.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- System.out.println("klasse:" + arg.getClassname());
- System.out.println("arg:" + arg.getValue());
- }
-
- /**
- * Select pages from an existing PDF and copy them into a new PDF.
- * @param args
- */
- public static void main(String[] args) {
- SelectedPages tool = new SelectedPages();
- if (args.length < 4) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File) getValue("destfile");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Split.java b/src/main/java/com/lowagie/tools/plugins/Split.java
deleted file mode 100644
index 2c14651..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Split.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * $Id: Split.java,v 1.9 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Mark Thompson. Copyright (c) 2002 Mark Thompson.
- *
- * This code 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.
- *
- * itext-questions@list.sourceforge.net
- */
-package com.lowagie.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.DocumentException;
-import com.lowagie.text.pdf.PdfContentByte;
-import com.lowagie.text.pdf.PdfImportedPage;
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.LabelAccessory;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * This tool lets you split a PDF in two separate PDF files.
- */
-public class Split extends AbstractTool {
-
- static {
- addVersion("$Id: Split.java,v 1.9 2005/11/29 21:05:02 blowagie Exp $");
- }
- /**
- * Constructs an Split object.
- */
- public Split() {
- FileArgument f = new FileArgument(this, "srcfile", "The file you want to split", false, new PdfFilter());
- f.setLabel(new LabelAccessory());
- arguments.add(f);
- arguments.add(new FileArgument(this, "destfile1", "The file to which the first part of the original PDF has to be written", true, new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile2", "The file to which the second part of the original PDF has to be written", true, new PdfFilter()));
- arguments.add(new ToolArgument(this, "pagenumber", "The pagenumber where you want to split", String.class.getName()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Split", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Split OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- File src = (File)getValue("srcfile");
- if (getValue("destfile1") == null) throw new InstantiationException("You need to choose a destination file for the first part of the PDF");
- File file1 = (File)getValue("destfile1");
- if (getValue("destfile2") == null) throw new InstantiationException("You need to choose a destination file for the second part of the PDF");
- File file2 = (File)getValue("destfile2");
- int pagenumber = Integer.parseInt((String)getValue("pagenumber"));
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(src.getAbsolutePath());
- // we retrieve the total number of pages
- int n = reader.getNumberOfPages();
- System.out.println("There are " + n + " pages in the original file.");
-
- if (pagenumber < 2 || pagenumber > n) {
- throw new DocumentException("You can't split this document at page " + pagenumber + "; there is no such page.");
- }
-
- // step 1: creation of a document-object
- Document document1 = new Document(reader.getPageSizeWithRotation(1));
- Document document2 = new Document(reader.getPageSizeWithRotation(pagenumber));
- // step 2: we create a writer that listens to the document
- PdfWriter writer1 = PdfWriter.getInstance(document1, new FileOutputStream(file1));
- PdfWriter writer2 = PdfWriter.getInstance(document2, new FileOutputStream(file2));
- // step 3: we open the document
- document1.open();
- PdfContentByte cb1 = writer1.getDirectContent();
- document2.open();
- PdfContentByte cb2 = writer2.getDirectContent();
- PdfImportedPage page;
- int rotation;
- int i = 0;
- // step 4: we add content
- while (i < pagenumber - 1) {
- i++;
- document1.setPageSize(reader.getPageSizeWithRotation(i));
- document1.newPage();
- page = writer1.getImportedPage(reader, i);
- rotation = reader.getPageRotation(i);
- if (rotation == 90 || rotation == 270) {
- cb1.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(i).height());
- }
- else {
- cb1.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
- }
- }
- while (i < n) {
- i++;
- document2.setPageSize(reader.getPageSizeWithRotation(i));
- document2.newPage();
- page = writer2.getImportedPage(reader, i);
- rotation = reader.getPageRotation(i);
- if (rotation == 90 || rotation == 270) {
- cb2.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(i).height());
- }
- else {
- cb2.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
- }
- }
- // step 5: we close the document
- document1.close();
- document2.close();
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Split a PDF in two separate PDF files.
- * @param args
- */
- public static void main(String[] args) {
- Split tool = new Split();
- if (args.length < 4) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile1");
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Tiff2Pdf.java b/src/main/java/com/lowagie/tools/plugins/Tiff2Pdf.java
deleted file mode 100644
index 8455cdf..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Tiff2Pdf.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * $Id: Tiff2Pdf.java,v 1.9 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.Image;
-import com.lowagie.text.PageSize;
-import com.lowagie.text.Paragraph;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.PdfContentByte;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.text.pdf.RandomAccessFileOrArray;
-import com.lowagie.text.pdf.codec.TiffImage;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.ImageFilter;
-import com.lowagie.tools.arguments.OptionArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Converts a Tiff file to a PDF file.
- */
-public class Tiff2Pdf extends AbstractTool {
-
- static {
- addVersion("$Id: Tiff2Pdf.java,v 1.9 2005/11/29 21:05:02 blowagie Exp $");
- }
- /**
- * Constructs a Tiff2Pdf object.
- */
- public Tiff2Pdf() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW;
- arguments.add(new FileArgument(this, "srcfile", "The file you want to convert", false, new ImageFilter(false, false, false, false, false, true)));
- arguments.add(new FileArgument(this, "destfile", "The file to which the converted TIFF has to be written", true, new PdfFilter()));
- OptionArgument oa = new OptionArgument(this, "pagesize", "Pagesize");
- oa.addOption("A4", "A4");
- oa.addOption("Letter", "LETTER");
- oa.addOption("Original format", "ORIGINAL");
- arguments.add(oa);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Tiff2Pdf", true, false, true);
- internalFrame.setSize(550, 250);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Tiff2Pdf OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) throw new InstantiationException("You need to choose a sourcefile");
- File tiff_file = (File)getValue("srcfile");
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination file");
- File pdf_file = (File)getValue("destfile");
- RandomAccessFileOrArray ra = new RandomAccessFileOrArray(tiff_file.getAbsolutePath());
- int comps = TiffImage.getNumberOfPages(ra);
- boolean adjustSize = false;
- Document document = new Document(PageSize.A4);
- if ("ORIGINAL".equals(getValue("pagesize"))) {
- Image img = TiffImage.getTiffImage(ra, 1);
- document.setPageSize(new Rectangle(img.scaledWidth(), img.scaledHeight()));
- adjustSize = true;
- }
- else if ("LETTER".equals(getValue("pagesize"))) {
- document.setPageSize(PageSize.LETTER);
- }
- PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdf_file));
- document.open();
- PdfContentByte cb = writer.getDirectContent();
- for (int c = 0; c < comps; ++c) {
- Image img = TiffImage.getTiffImage(ra, c + 1);
- if (img != null) {
- if (adjustSize) {
- document.setPageSize(new Rectangle(img.scaledWidth(),
- img.scaledHeight()));
- document.newPage();
- img.setAbsolutePosition(0, 0);
- }
- else {
- if (img.scaledWidth() > 500 || img.scaledHeight() > 700) {
- img.scaleToFit(500, 700);
- }
- img.setAbsolutePosition(20, 20);
- document.newPage();
- document.add(new Paragraph(tiff_file + " - page " + (c + 1)));
- }
- cb.addImage(img);
- System.out.println("Finished page " + (c + 1));
- }
- }
- ra.close();
- document.close();
- } catch (Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Converts a tiff file to PDF.
- * @param args
- */
- public static void main(String[] args) {
- Tiff2Pdf tool = new Tiff2Pdf();
- if (args.length < 2) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/plugins/TreeViewPDF.java b/src/main/java/com/lowagie/tools/plugins/TreeViewPDF.java
deleted file mode 100644
index 0b55b8c..0000000
--- a/src/main/java/com/lowagie/tools/plugins/TreeViewPDF.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * $Id: TreeViewPDF.java,v 1.2 2006/05/29 10:31:17 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-
-import javax.swing.JOptionPane;
-
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.LabelAccessory;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-import com.lowagie.tools.plugins.treeview.TreeViewInternalFrame;
-import com.lowagie.tools.Toolbox;
-import java.beans.*;
-
-/**
- * Allows you to inspect an existing PDF file.
- */
-public class TreeViewPDF
- extends AbstractTool {
- static {
- addVersion("$Id: TreeViewPDF.java,v 1.2 2006/05/29 10:31:17 blowagie Exp $");
- }
-
- TreeViewInternalFrame ul;
- FileArgument inputfile;
- /**
- * Constructs an TreeViewPDF object.
- */
- public TreeViewPDF() {
- inputfile = new FileArgument(this, "srcfile",
- "The file you want to inspect", false,
- new PdfFilter());
- inputfile.setLabel(new LabelAccessory());
- arguments.add(inputfile);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- ul = new TreeViewInternalFrame("Pdf Analysis", true, false, true);
- internalFrame = ul;
- internalFrame.setSize(500, 300);
- internalFrame.setJMenuBar(getMenubar());
- inputfile.addPropertyChangeListener(ul);
- System.out.println("=== Pdf Analysis OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) {
- throw new InstantiationException("You need to choose a sourcefile");
- }
-
- }
- catch (Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Inspects an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- try {
- Toolbox toolbox = new Toolbox();
- AbstractTool tool = toolbox.createFrame("TreeViewPDF");
- if (args.length > 1) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
- catch (PropertyVetoException ex) {
- }
- catch (ClassNotFoundException ex) {
- }
- catch (IllegalAccessException ex) {
- }
- catch (InstantiationException ex) {
- }
-// throw new RuntimeException("GUI only Application!");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- throw new InstantiationException("There is no file to show.");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Txt2Pdf.java b/src/main/java/com/lowagie/tools/plugins/Txt2Pdf.java
deleted file mode 100644
index 8a377fd..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Txt2Pdf.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * $Id: Txt2Pdf.java,v 1.9 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.Document;
-import com.lowagie.text.Font;
-import com.lowagie.text.FontFactory;
-import com.lowagie.text.Paragraph;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.OptionArgument;
-import com.lowagie.tools.arguments.PageSizeArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Converts a monospaced txt file to a PDF file.
- */
-public class Txt2Pdf extends AbstractTool {
-
- static {
- addVersion("$Id: Txt2Pdf.java,v 1.9 2005/11/29 21:05:02 blowagie Exp $");
- }
- /**
- * Constructs a Txt2Pdf object.
- */
- public Txt2Pdf() {
- menuoptions = MENU_EXECUTE | MENU_EXECUTE_SHOW | MENU_EXECUTE_PRINT_SILENT;
- arguments.add(new FileArgument(this, "srcfile", "The file you want to convert", false));
- arguments.add(new FileArgument(this, "destfile", "The file to which the converted text has to be written", true, new PdfFilter()));
- PageSizeArgument oa1 = new PageSizeArgument(this, "pagesize", "Pagesize");
- arguments.add(oa1);
- OptionArgument oa2 = new OptionArgument(this, "orientation", "Orientation of the page");
- oa2.addOption("Portrait", "PORTRAIT");
- oa2.addOption("Landscape", "LANDSCAPE");
- arguments.add(oa2);
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Txt2Pdf", true, true, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Txt2Pdf OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- String line = null;
- Document document;
- Font f;
- Rectangle pagesize = (Rectangle)getValue("pagesize");
- if ("LANDSCAPE".equals(getValue("orientation"))) {
- f = FontFactory.getFont(FontFactory.COURIER, 10);
- document = new Document(pagesize.rotate(), 36, 9, 36, 36);
- }
- else {
- f = FontFactory.getFont(FontFactory.COURIER, 11);
- document = new Document(pagesize, 72, 36, 36, 36);
- }
- BufferedReader in = new BufferedReader(new FileReader((File)getValue("srcfile")));
- PdfWriter.getInstance(document, new FileOutputStream((File)getValue("destfile")));
- document.open();
- while ((line = in.readLine()) != null) {
- document.add(new Paragraph(12, line, f));
- }
- document.close();
- } catch (Exception e) {
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
-
- /**
- * Converts a monospaced txt file to a PDF file.
- * @param args
- */
- public static void main(String[] args) {
- Txt2Pdf tool = new Txt2Pdf();
- if (args.length < 3) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/Watermarker.java b/src/main/java/com/lowagie/tools/plugins/Watermarker.java
deleted file mode 100644
index e1e64f8..0000000
--- a/src/main/java/com/lowagie/tools/plugins/Watermarker.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * $Id: Watermarker.java,v 1.6 2006/03/20 14:30:33 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Carsten hammer and Bruno Lowagie.
- * Copyright (c) 2005 Carsten Hammer and Bruno Lowagie.
- *
- * This code 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.
- *
- * itext-questions@list.sourceforge.net
- */
-
-package com.lowagie.tools.plugins;
-
-import java.io.*;
-
-import javax.swing.*;
-
-import com.lowagie.text.*;
-import com.lowagie.text.pdf.*;
-import com.lowagie.tools.arguments.*;
-
-/**
- * This tool lets you add a text watermark to all pages of a document.
- */
-public class Watermarker extends AbstractTool {
-
- static {
- addVersion("$Id: Watermarker.java,v 1.6 2006/03/20 14:30:33 blowagie Exp $");
- }
-
- /**
- * This tool lets you add a text watermark to all pages of a document.
- */
- public Watermarker() {
- super();
- arguments.add(new FileArgument(this, "srcfile",
- "The file you want to watermark", false, new PdfFilter()));
- arguments.add(new ToolArgument(this, "watermark", "The text that can be used as watermark", String.class.getName()));
- arguments.add(new ToolArgument(this, "fontsize", "The fontsize of the watermark text", String.class.getName()));
- arguments.add(new ToolArgument(this, "opacity", "The opacity of the watermark text", String.class.getName()));
- arguments.add(new FileArgument(this, "destfile",
- "The file to which the watermarked PDF has to be written",
- true, new PdfFilter()));
-
- }
-
- /**
- * Creates the internal frame.
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("Watermark", true, false, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== Watermark OPENED ===");
- }
-
- /**
- * Executes the tool (in most cases this generates a PDF file).
- */
- public void execute() {
- try {
- if (getValue("srcfile") == null) {
- throw new InstantiationException(
- "You need to choose a sourcefile");
- }
- if (getValue("destfile") == null) {
- throw new InstantiationException(
- "You need to choose a destination file");
- }
- if (getValue("watermark") == null) {
- throw new InstantiationException(
- "You need to add a text for the watermark");
- }
- int fontsize = Integer.parseInt((String)getValue("fontsize"));
- float opacity = Float.parseFloat((String)getValue("opacity"));
- BaseFont bf = BaseFont.createFont("Helvetica", BaseFont.WINANSI,
- false);
- PdfReader reader = new PdfReader(((File) getValue("srcfile"))
- .getAbsolutePath());
- int pagecount = reader.getNumberOfPages();
- PdfGState gs1 = new PdfGState();
- gs1.setFillOpacity(opacity);
- String text = (String)getValue("watermark");
- PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
- (File) getValue("destfile")));
- float txtwidth = bf.getWidthPoint(text, fontsize);
- for (int i = 1; i <= pagecount; i++) {
- PdfContentByte seitex = stamp.getOverContent(i);
- Rectangle recc = reader.getCropBox(i);
- float winkel = (float) Math.atan(recc.height() / recc.width());
- float m1 = (float) Math.cos(winkel);
- float m2 = (float) -Math.sin(winkel);
- float m3 = (float) Math.sin(winkel);
- float m4 = (float) Math.cos(winkel);
- float xoff = (float) (-Math.cos(winkel) * txtwidth / 2 - Math
- .sin(winkel)
- * fontsize / 2);
- float yoff = (float) (Math.sin(winkel) * txtwidth / 2 - Math
- .cos(winkel)
- * fontsize / 2);
- seitex.saveState();
- seitex.setGState(gs1);
- seitex.beginText();
- seitex.setFontAndSize(bf, fontsize);
- seitex.setTextMatrix(m1, m2, m3, m4, xoff + recc.width() / 2,
- yoff + recc.height() / 2);
- seitex.showText(text);
- seitex.endText();
- seitex.restoreState();
- }
- stamp.close();
- } catch (Exception e) {
- JOptionPane.showMessageDialog(internalFrame, e.getMessage(), e
- .getClass().getName(), JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * Gets the PDF file that should be generated (or null if the output isn't a
- * PDF file).
- *
- * @return the PDF file that should be generated
- * @throws InstantiationException
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File) getValue("destfile");
- }
-
- /**
- * Indicates that the value of an argument has changed.
- *
- * @param arg
- * the argument that has changed
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the
- // commandline
- return;
- }
-
- }
-
- /**
- * This methods helps you running this tool as a standalone application.
- * @param args the srcfile, watermark text and destfile
- */
- public static void main(String[] args) {
- Watermarker watermarker = new Watermarker();
- if (args.length != 5) {
- System.err.println(watermarker.getUsage());
- }
- watermarker.setArguments(args);
- watermarker.execute();
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/lowagie/tools/plugins/XML2Bookmarks.java b/src/main/java/com/lowagie/tools/plugins/XML2Bookmarks.java
deleted file mode 100644
index 9b23657..0000000
--- a/src/main/java/com/lowagie/tools/plugins/XML2Bookmarks.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * $Id: XML2Bookmarks.java,v 1.2 2006/02/03 08:30:56 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Hans-Werner Hilse.
- *
- * 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 (C) 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 (C) 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.tools.plugins;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.util.List;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-
-import com.lowagie.text.pdf.PdfReader;
-import com.lowagie.text.pdf.PdfStamper;
-import com.lowagie.text.pdf.PdfWriter;
-import com.lowagie.text.pdf.SimpleBookmark;
-import com.lowagie.tools.arguments.FileArgument;
-import com.lowagie.tools.arguments.PdfFilter;
-import com.lowagie.tools.arguments.ToolArgument;
-
-/**
- * Allows you to add bookmarks to an existing PDF file
- */
-public class XML2Bookmarks extends AbstractTool {
-
- static {
- addVersion("$Id: XML2Bookmarks.java,v 1.2 2006/02/03 08:30:56 blowagie Exp $");
- }
-
- /**
- * Constructs an XML2Bookmarks object.
- */
- public XML2Bookmarks() {
- arguments.add(new FileArgument(this, "xmlfile", "the bookmarks in XML", false));
- arguments.add(new FileArgument(this, "pdffile", "the PDF to which you want to add bookmarks", false, new PdfFilter()));
- arguments.add(new FileArgument(this, "destfile", "the resulting PDF", true, new PdfFilter()));
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#createFrame()
- */
- protected void createFrame() {
- internalFrame = new JInternalFrame("XML + PDF = PDF", true, true, true);
- internalFrame.setSize(300, 80);
- internalFrame.setJMenuBar(getMenubar());
- System.out.println("=== XML2Bookmarks OPENED ===");
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#execute()
- */
- public void execute() {
- try {
- if (getValue("xmlfile") == null) throw new InstantiationException("You need to choose an xml file");
- if (getValue("pdffile") == null) throw new InstantiationException("You need to choose a source PDF file");
- if (getValue("destfile") == null) throw new InstantiationException("You need to choose a destination PDF file");
- FileInputStream bmReader = new FileInputStream( (File) getValue("xmlfile") );
- List bookmarks = SimpleBookmark.importFromXML( bmReader );
- bmReader.close();
- PdfReader reader = new PdfReader(((File)getValue("pdffile")).getAbsolutePath());
- reader.consolidateNamedDestinations();
- int n = reader.getNumberOfPages();
- PdfStamper stamper = new PdfStamper(reader, new FileOutputStream((File)getValue("destfile")));
- stamper.setOutlines(bookmarks);
- stamper.setViewerPreferences(reader.getViewerPreferences() | PdfWriter.PageModeUseOutlines);
- stamper.close();
- }
- catch(Exception e) {
- e.printStackTrace();
- JOptionPane.showMessageDialog(internalFrame,
- e.getMessage(),
- e.getClass().getName(),
- JOptionPane.ERROR_MESSAGE);
- System.err.println(e.getMessage());
- }
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#valueHasChanged(com.lowagie.tools.arguments.ToolArgument)
- */
- public void valueHasChanged(ToolArgument arg) {
- if (internalFrame == null) {
- // if the internal frame is null, the tool was called from the commandline
- return;
- }
- // represent the changes of the argument in the internal frame
- }
-
- /**
- * Allows you to generate an index file in HTML containing Bookmarks to an existing PDF file.
- * @param args
- */
- public static void main(String[] args) {
- XML2Bookmarks tool = new XML2Bookmarks();
- if (args.length < 3) {
- System.err.println(tool.getUsage());
- }
- tool.setArguments(args);
- tool.execute();
- }
-
- /**
- * @see com.lowagie.tools.plugins.AbstractTool#getDestPathPDF()
- */
- protected File getDestPathPDF() throws InstantiationException {
- return (File)getValue("destfile");
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/AnalyzePDF.java b/src/main/java/com/lowagie/tools/plugins/treeview/AnalyzePDF.java
deleted file mode 100644
index 5907f9a..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/AnalyzePDF.java
+++ /dev/null
@@ -1,507 +0,0 @@
-/*
- * $Id: AnalyzePDF.java,v 1.4 2006/05/30 09:11:45 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Vector;
-
-import javax.swing.event.TreeModelEvent;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.TreeModel;
-import javax.swing.tree.TreePath;
-
-import com.lowagie.text.pdf.*;
-import java.util.Set;
-import java.util.Iterator;
-import javax.swing.table.TableModel;
-import javax.swing.table.AbstractTableModel;
-
-public class AnalyzePDF
- extends Thread implements TreeModel, ICommonAnalyzer {
- DefaultMutableTreeNode root;
- DefaultMutableTreeNode filenode;
- int pagecount;
- ProgressDialog progressdialog;
- int numberofpages;
- ArrayList pageInh = new ArrayList();
- private transient Vector treeModelListeners;
- PdfReader reader;
-
- public AnalyzePDF(String infile,
- com.lowagie.tools.plugins.treeview.ProgressDialog blubb) {
- this.progressdialog = blubb;
- try {
- reader = new PdfReader(infile);
- root = new SimpletextTreeNode("Dokument");
- filenode = new FileTreeNode(infile, reader);
- root.add(filenode);
- this.numberofpages = reader.getNumberOfPages();
- }
- catch (IOException ex) {
- }
- pagecount = 0;
- }
-
- public TableModel getXReftable() {
- TableModel tm = new AbstractTableModel() {
- public int getColumnCount() {
- return 2;
- }
-
- public int getRowCount() {
- return reader.getXrefSize() - 1;
- }
-
- public Object getValueAt(int rowIndex, int columnIndex) {
- switch (columnIndex) {
- case 0:
- return new Integer(rowIndex + 1);
- case 1:
- PdfObject pdfob=reader.getPdfObject(rowIndex + 1);
- if(pdfob.isStream()){
- return "Stream "+pdfob;
- }else{
- return pdfob;
- }
- default:
- return null;
- }
- }
-
- /**
- * Returns the name of the column at <code>columnIndex</code>.
- *
- * @param columnIndex the index of the column
- * @return the name of the column
- * @todo Implement this javax.swing.table.TableModel method
- */
- public String getColumnName(int columnIndex) {
- switch (columnIndex) {
- case 0:
- return "XRefNr";
- case 1:
- return "Object";
- default:
- return null;
- }
-
- }
- };
- return tm;
- }
-
- /**
- * Walk down the Pagetree
- * @param page PdfDictionary
- * @param pdfreader PdfReader
- * @param count_in_leaf int
- * @param node DefaultMutableTreeNode
- */
- protected void iteratePages(PdfDictionary page, PdfReader pdfreader,
- DefaultMutableTreeNode node) {
- DefaultMutableTreeNode leaf;
-
- PdfArray kidsPR = (PdfArray) PdfReader.getPdfObject(page.get(PdfName.KIDS));
- if (kidsPR == null) {
- node.add(new Pagetreenode(page, pagecount, this, pdfreader));
- System.out.println("Page= " + (pagecount + 1));
- pageInh.add(pagecount, page);
- pagecount++;
- }
- else {
- leaf = new PagelistTreeNode(kidsPR);
- node.add(leaf);
- page.put(PdfName.TYPE, PdfName.PAGES);
- ArrayList kids = kidsPR.getArrayList();
- for (int k = 0; k < kids.size(); ++k) {
- PdfDictionary kid = (PdfDictionary) PdfReader.getPdfObject( (
- PRIndirectReference) kids.get(k));
- iteratePages(kid, pdfreader, leaf);
- }
- }
- }
-
- protected void iterateOutlines(PdfDictionary outlines, PdfReader pdfreader,
- DefaultMutableTreeNode node) {
- DefaultMutableTreeNode leaf;
- PdfDictionary kid = outlines;
- do {
- PdfString title = (PdfString) pdfreader.getPdfObject(
- kid.get(PdfName.TITLE));
- leaf = new OutlinelistTreeNode(title, kid);
- node.add(leaf);
- PdfDictionary first = (PdfDictionary) PdfReader.getPdfObject( (
- PRIndirectReference) kid.get(PdfName.FIRST));
- if (first != null) {
- iterateOutlines(first, pdfreader, leaf);
- }
- else {
- PdfDictionary se = (PdfDictionary) PdfReader.getPdfObject( (
- PRIndirectReference) kid.get(new PdfName("SE")));
- if (se != null) {
- iterateObjects(se, pdfreader, leaf);
- }
- PdfObject dest = (PdfObject) pdfreader.getPdfObject(kid.get(PdfName.
- DEST));
- if (dest != null) {
- iterateObjects(dest, pdfreader, leaf);
- }
- PdfObject a = (PdfObject) pdfreader.getPdfObject(kid.get(PdfName.A));
- if (a != null) {
- iterateObjects(a, pdfreader, leaf);
- }
- }
- }
- while ( (kid = (PdfDictionary) pdfreader.getPdfObject(kid.get(PdfName.NEXT))) != null);
- }
-
- /**
- * Recursive investigate PDF Objecttree (other than pagetree objects!)
- * @param pdfobj PdfObject
- * @param pdfreader PdfReader
- * @param node DefaultMutableTreeNode
- */
- public void iterateObjects(PdfObject pdfobj, PdfReader pdfreader,
- DefaultMutableTreeNode node) {
- DefaultMutableTreeNode leaf;
- if (pdfobj.isDictionary()) {
- leaf = new DictionaryTreeNode("PdfDictionary " + pdfobj,
- (PdfDictionary) pdfobj);
- node.add(leaf);
- Set s = ( (PdfDictionary) pdfobj).getKeys();
- Iterator it = s.iterator();
- int i = 0;
- while (it.hasNext()) {
- i++;
- Object obj = it.next();
-// System.out.println("Feld:" + obj);
-
- PdfObject value = PdfReader.getPdfObject( ( (PdfDictionary) pdfobj).get( (
- PdfName) obj));
-// System.out.println("Value:" + value);
- SimpletextTreeNode sttn = new SimpletextTreeNode(obj + " " + value);
- leaf.add(sttn);
- if (obj.equals(PdfName.PARENT)) {
- continue;
- }
- if (value != null) {
- iterateObjects(value, pdfreader, sttn);
- }
- }
- }
- else if (pdfobj.isArray()) {
- leaf = new ArrayTreeNode("PdfArray " + pdfobj, (PdfArray) pdfobj);
- node.add(leaf);
- ArrayList kids = ( (PdfArray) pdfobj).getArrayList();
- for (int k = 0; k < kids.size(); ++k) {
- PdfObject curkid = (PdfObject) kids.get(k);
- if (curkid.isIndirect()) {
- PdfObject kid = PdfReader.getPdfObject( (
- PRIndirectReference) kids.get(k));
- if (kid != null) {
- iterateObjects(kid, pdfreader, leaf);
- }
- }
- else if (curkid.isNumber()) {
-
- }
- else {
- PdfObject kid = (PdfObject) kids.get(k);
- iterateObjects(kid, pdfreader, leaf);
- }
- }
- }
- else if (pdfobj.isIndirect()) {
- leaf = new SimpletextTreeNode("PRIndirectReference " + pdfobj);
- node.add(leaf);
- PdfObject target = PdfReader.getPdfObject( (
- PRIndirectReference) pdfobj);
- if (target != null) {
- iterateObjects(target, pdfreader, leaf);
- }
- }
- else if (pdfobj.isBoolean()) {
-// leaf = new SimpletextTreeNode("Boolean " + pdfobj);
-// node.add(leaf);
- }
- else if (pdfobj.isName()) {
-// leaf = new SimpletextTreeNode("Name " + pdfobj);
-// node.add(leaf);
- }
- else if (pdfobj.isNull()) {
-// leaf = new SimpletextTreeNode("Null " + pdfobj);
-// node.add(leaf);
- }
- else if (pdfobj.isNumber()) {
-// leaf = new SimpletextTreeNode("Number " + pdfobj);
-// node.add(leaf);
- }
- else if (pdfobj.isString()) {
-// leaf = new SimpletextTreeNode("String " + pdfobj);
-// node.add(leaf);
- }
- else if (pdfobj.isStream()) {
- leaf = new TextpaneTreeNode(pdfobj,"Stream");
- node.add(leaf);
- leaf = new DictionaryTreeNode("PdfDictionary " + pdfobj,
- (PdfDictionary) pdfobj);
- node.add(leaf);
- Set s = ( (PdfDictionary) pdfobj).getKeys();
- Iterator it = s.iterator();
- int i = 0;
- while (it.hasNext()) {
- i++;
- Object obj = it.next();
-// System.out.println("Feld:" + obj);
-
- PdfObject value = PdfReader.getPdfObject( ( (PdfDictionary) pdfobj).get( (
- PdfName) obj));
-// System.out.println("Value:" + value);
- SimpletextTreeNode sttn = new SimpletextTreeNode(obj + " " + value);
- leaf.add(sttn);
- if (obj.equals(PdfName.PARENT)) {
- continue;
- }
- if (value != null) {
- iterateObjects(value, pdfreader, sttn);
- }
- }
-
- }
-
- else {
- leaf = new SimpletextTreeNode("Unknown " + pdfobj);
- node.add(leaf);
- }
-
- }
-
- /**
- * Returns the root of the tree.
- *
- * @return the root of the tree
- * @todo Diese javax.swing.tree.TreeModel-Methode implementieren
- */
- public Object getRoot() {
- return root;
- }
-
- /**
- * Returns the child of <code>parent</code> at index <code>index</code> in the
- * parent's child array.
- *
- * @param parent a node in the tree, obtained from this data source
- * @param index int
- * @return the child of <code>parent</code> at index <code>index</code>
- * @todo Diese javax.swing.tree.TreeModel-Methode implementieren
- */
- public Object getChild(Object parent, int index) {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) parent;
- return node.getChildAt(index);
- }
-
- /**
- * Returns the number of children of <code>parent</code>.
- *
- * @param parent a node in the tree, obtained from this data source
- * @return the number of children of the node <code>parent</code>
- * @todo Diese javax.swing.tree.TreeModel-Methode implementieren
- */
- public int getChildCount(Object parent) {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) parent;
- return node.getChildCount();
- }
-
- /**
- * Returns <code>true</code> if <code>node</code> is a leaf.
- *
- * @param node a node in the tree, obtained from this data source
- * @return true if <code>node</code> is a leaf
- * @todo Diese javax.swing.tree.TreeModel-Methode implementieren
- */
- public boolean isLeaf(Object node) {
- DefaultMutableTreeNode leaf = (DefaultMutableTreeNode) node;
- return leaf.isLeaf();
- }
-
- /**
- * Messaged when the user has altered the value for the item identified by
- * <code>path</code> to <code>newValue</code>.
- *
- * @param path path to the node that the user has altered
- * @param newValue the new value from the TreeCellEditor
- * @todo Diese javax.swing.tree.TreeModel-Methode implementieren
- */
- public void valueForPathChanged(TreePath path, Object newValue) {
- throw new RuntimeException("Manipulation of objecttree not yet supported!");
- }
-
- /**
- * Returns the index of child in parent.
- *
- * @param parent a note in the tree, obtained from this data source
- * @param child the node we are interested in
- * @return the index of the child in the parent, or -1 if either
- * <code>child</code> or <code>parent</code> are <code>null</code>
- * @todo Diese javax.swing.tree.TreeModel-Methode implementieren
- */
- public int getIndexOfChild(Object parent, Object child) {
- DefaultMutableTreeNode parentobj = (DefaultMutableTreeNode) parent;
- DefaultMutableTreeNode childobj = (DefaultMutableTreeNode) child;
- return parentobj.getIndex(childobj);
- }
-
- public synchronized void removeTreeModelListener(TreeModelListener l) {
- if (treeModelListeners != null && treeModelListeners.contains(l)) {
- Vector v = (Vector) treeModelListeners.clone();
- v.removeElement(l);
- treeModelListeners = v;
- }
- }
-
- public synchronized void addTreeModelListener(TreeModelListener l) {
- Vector v = treeModelListeners == null ? new Vector(2) :
- (Vector) treeModelListeners.clone();
- if (!v.contains(l)) {
- v.addElement(l);
- treeModelListeners = v;
- }
- }
-
- protected void fireTreeNodesChanged(TreeModelEvent e) {
- if (treeModelListeners != null) {
- Vector listeners = treeModelListeners;
- int count = listeners.size();
- for (int i = 0; i < count; i++) {
- ( (TreeModelListener) listeners.elementAt(i)).treeNodesChanged(e);
- }
- }
- }
-
- protected void fireTreeNodesInserted(TreeModelEvent e) {
- if (treeModelListeners != null) {
- Vector listeners = treeModelListeners;
- int count = listeners.size();
- for (int i = 0; i < count; i++) {
- ( (TreeModelListener) listeners.elementAt(i)).treeNodesInserted(e);
- }
- }
- }
-
- protected void fireTreeNodesRemoved(TreeModelEvent e) {
- if (treeModelListeners != null) {
- Vector listeners = treeModelListeners;
- int count = listeners.size();
- for (int i = 0; i < count; i++) {
- ( (TreeModelListener) listeners.elementAt(i)).treeNodesRemoved(e);
- }
- }
- }
-
- protected void fireTreeStructureChanged(TreeModelEvent e) {
- if (treeModelListeners != null) {
- Vector listeners = treeModelListeners;
- int count = listeners.size();
- for (int i = 0; i < count; i++) {
- ( (TreeModelListener) listeners.elementAt(i)).treeStructureChanged(e);
- }
- }
- }
-
- /**
- * When an object implementing interface <code>Runnable</code> is used to
- * create a thread, starting the thread causes the object's <code>run</code>
- * method to be called in that separately executing thread.
- *
- * @todo Diese java.lang.Runnable-Methode implementieren
- */
- public void run() {
- try {
- PdfDictionary catalog = reader.getCatalog();
- PdfDictionary rootPages = (PdfDictionary) PdfReader.getPdfObject(
- catalog.get(PdfName.PAGES));
- DefaultMutableTreeNode rootPagesGUI = new SimpletextTreeNode("Pagetree " +
- rootPages);
- filenode.add(rootPagesGUI);
- iteratePages(rootPages, reader, rootPagesGUI);
-
- PdfDictionary rootOutlines = (PdfDictionary) PdfReader.getPdfObject(
- catalog.get(PdfName.OUTLINES));
- if (rootOutlines != null) {
- DefaultMutableTreeNode outlinetree = new SimpletextTreeNode(
- "Outlinetree " + rootOutlines);
- filenode.add(outlinetree);
- PdfObject firstindref = rootOutlines.get(PdfName.FIRST);
- if (firstindref != null) {
- PdfDictionary first = (PdfDictionary) PdfReader.getPdfObject( (
- PRIndirectReference) firstindref);
- if (first != null) {
- iterateOutlines(first, reader, outlinetree);
- }
- }
- }
- System.out.println(" Pagecount= " + pagecount);
- progressdialog.setVisible(false);
- }
- catch (Exception e) {
- e.printStackTrace(System.out);
- }
- }
-
- public int getPagecount() {
- return pagecount;
- }
-
- public void updatecount() {
- progressdialog.setAktuelleseite(getPagecount());
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/ArrayTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/ArrayTreeNode.java
deleted file mode 100644
index 07ec49c..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/ArrayTreeNode.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * $Id: ArrayTreeNode.java,v 1.2 2006/05/30 09:13:36 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import com.lowagie.text.pdf.PdfArray;
-import java.util.ArrayList;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-/**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
- * @author not attributable
- * @version 1.0
- */
-public class ArrayTreeNode
- extends UpdateableTreeNode {
- PdfArray arr;
-
- public ArrayTreeNode(Object userObject,PdfArray arr) {
- super(userObject);
- this.arr=arr;
- }
-
- public ArrayTreeNode(Object userObject, boolean allowchildren) {
- super(userObject, allowchildren);
- }
-
- /**
- * updateview
- *
- * @param updateobject IUpdatenodeview
- * @todo Implement this com.lowagie.tools.plugins.treeview.UpdateableTreeNode method
- */
- public void updateview(IUpdatenodeview updateobject) {
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>");
- sb.append(this.userObject);
- sb.append("</p>");
- ArrayList arl = arr.getArrayList();
- for (int i = 0; i < arl.size(); i++) {
- sb.append("<p>");
- sb.append(" " + arl.get(i).toString());
- sb.append("</p>");
- }
- sb.append("</html>");
- updateobject.showvalues(sb.toString());
- }
- public Icon getIcon(){
- return new ImageIcon(TreeViewInternalFrame.class.getResource(
- "array.gif"));
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/DictionaryTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/DictionaryTreeNode.java
deleted file mode 100644
index 2fc6b4e..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/DictionaryTreeNode.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * $Id: DictionaryTreeNode.java,v 1.2 2006/05/30 09:13:36 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.util.Set;
-import java.util.Iterator;
-import com.lowagie.text.pdf.PdfDictionary;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-/**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
- * @author not attributable
- * @version 1.0
- */
-public class DictionaryTreeNode
- extends UpdateableTreeNode {
- PdfDictionary dictionary;
-
- public DictionaryTreeNode(Object userObject, PdfDictionary dictionary) {
- super(userObject);
- this.dictionary = dictionary;
- }
-
- public DictionaryTreeNode(Object userObject, boolean allowchildren) {
- super(userObject, allowchildren);
- }
-
- /**
- * updateview
- *
- * @param updateobject IUpdatenodeview
- * @todo Implement this com.lowagie.tools.plugins.treeview.UpdateableTreeNode method
- */
- public void updateview(IUpdatenodeview updateobject) {
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>");
- sb.append(this.userObject);
- sb.append("</p>");
- Set set = dictionary.getKeys();
- Iterator it = set.iterator();
- while (it.hasNext()) {
- sb.append("<p>");
- sb.append("Key " + it.next().toString());
- sb.append("</p>");
- }
- sb.append("</html>");
- updateobject.showvalues(sb.toString());
- }
-
- public Icon getIcon(){
- return new ImageIcon(TreeViewInternalFrame.class.getResource(
- "dictionary.gif"));
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/FileTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/FileTreeNode.java
deleted file mode 100644
index 85e83a6..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/FileTreeNode.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * $Id: FileTreeNode.java,v 1.3 2006/05/30 09:13:36 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import com.lowagie.text.pdf.*;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-public class FileTreeNode
- extends UpdateableTreeNode {
-
- PdfReader reader;
- public FileTreeNode(Object p0, PdfReader reader) {
- super(p0,true);
- this.reader = reader;
- }
-
- public void updateview(IUpdatenodeview updateobject) {
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>");
- sb.append(this.userObject);
- sb.append("</p>");
- sb.append("<p>");
- sb.append("PDF Version 1." + this.reader.getPdfVersion());
- sb.append("</p>");
- sb.append("<p>");
- sb.append("Number of Pages: " + this.reader.getNumberOfPages());
- sb.append("</p>");
- sb.append("</html>");
- updateobject.showvalues(sb.toString());
- }
- public Icon getIcon(){
- return new ImageIcon(TreeViewInternalFrame.class.getResource(
- "icon16.gif"));
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/ICommonAnalyzer.java b/src/main/java/com/lowagie/tools/plugins/treeview/ICommonAnalyzer.java
deleted file mode 100644
index 17093f0..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/ICommonAnalyzer.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id: ICommonAnalyzer.java,v 1.2 2005/12/06 13:20:39 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-
-import com.lowagie.text.pdf.PdfObject;
-import com.lowagie.text.pdf.PdfReader;
-/**
- *
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
- * @author not attributable
- * @version 1.0
- */
-public interface ICommonAnalyzer {
- /**
- *
- * @param pdfobj PdfObject
- * @param pdfreader PdfReader
- * @param node DefaultMutableTreeNode
- */
- void iterateObjects(PdfObject pdfobj, PdfReader pdfreader,
- DefaultMutableTreeNode node);
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/IUpdatenodeview.java b/src/main/java/com/lowagie/tools/plugins/treeview/IUpdatenodeview.java
deleted file mode 100644
index 01a3b45..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/IUpdatenodeview.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * $Id: IUpdatenodeview.java,v 1.1 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-public interface IUpdatenodeview {
- public void showempty();
-
- public void showtext(String text);
-
- public void showvalues(String text);
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/OutlinelistTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/OutlinelistTreeNode.java
deleted file mode 100644
index 2fd78e5..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/OutlinelistTreeNode.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * $Id: OutlinelistTreeNode.java,v 1.2 2006/05/30 09:13:36 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.util.ArrayList;
-
-import com.lowagie.text.pdf.PdfArray;
-import com.lowagie.text.pdf.PdfDictionary;
-import java.util.Set;
-import java.util.Iterator;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-public class OutlinelistTreeNode
- extends UpdateableTreeNode {
- private com.lowagie.text.pdf.PdfDictionary dictionary;
- public OutlinelistTreeNode(Object userObject, PdfDictionary dictionary) {
- super(userObject);
- this.dictionary = dictionary;
- }
-
- public OutlinelistTreeNode(PdfDictionary dictionary) {
- super("Outlinenode " + dictionary);
- this.dictionary = dictionary;
- }
-
- public void updateview(IUpdatenodeview updateobject) {
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>");
- sb.append(this.userObject);
- sb.append("</p>");
- Set set = dictionary.getKeys();
- Iterator it = set.iterator();
- while (it.hasNext()) {
- sb.append("<p>");
- sb.append("Key " + it.next().toString());
- sb.append("</p>");
- }
- sb.append("</html>");
- updateobject.showvalues(sb.toString());
-
- }
-
- public Icon getIcon(){
- return new ImageIcon(TreeViewInternalFrame.class.getResource(
- "bookmarks.gif"));
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/PagelistTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/PagelistTreeNode.java
deleted file mode 100644
index 928fefa..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/PagelistTreeNode.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id: PagelistTreeNode.java,v 1.2 2006/05/30 09:13:36 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.util.ArrayList;
-
-import com.lowagie.text.pdf.PdfArray;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-public class PagelistTreeNode
- extends UpdateableTreeNode {
- private com.lowagie.text.pdf.PdfArray pdfarray;
- public PagelistTreeNode(PdfArray pdfarray) {
- super("Pagesnode " + pdfarray);
- this.pdfarray = pdfarray;
- }
-
- public void updateview(IUpdatenodeview updateobject) {
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>");
- sb.append(this.userObject);
- sb.append("</p>");
- ArrayList arl = pdfarray.getArrayList();
- for (int i = 0; i < arl.size(); i++) {
- sb.append("<p>");
- sb.append(" " + arl.get(i).toString());
- sb.append("</p>");
- }
- sb.append("</html>");
- updateobject.showvalues(sb.toString());
- }
-
- public Icon getIcon(){
- return new ImageIcon(TreeViewInternalFrame.class.getResource(
- "pageonly.gif"));
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/Pagetreenode.java b/src/main/java/com/lowagie/tools/plugins/treeview/Pagetreenode.java
deleted file mode 100644
index 4cbcfda..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/Pagetreenode.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * $Id: Pagetreenode.java,v 1.3 2006/05/30 09:13:36 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Set;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.pdf.*;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-public class Pagetreenode
- extends UpdateableTreeNode {
- private com.lowagie.text.pdf.PdfDictionary dictionary;
-
- private int seitennummer;
- private float width;
- private float height;
-
- public Pagetreenode(com.lowagie.text.pdf.PdfDictionary page, int seitennummer,
- ICommonAnalyzer pageanalyzer, PdfReader pdfreader) {
- super();
- this.dictionary = page;
- this.seitennummer = seitennummer;
- DefaultMutableTreeNode info;
-
- PdfArray arr = (PdfArray) page.get(PdfName.MEDIABOX);
- float curwidth = 0;
- float curheight = 0;
- if (arr != null) {
- ArrayList arl = arr.getArrayList();
- curwidth = Float.parseFloat(arl.get(2).toString());
- curheight = Float.parseFloat(arl.get(3).toString());
- info = new SimpletextTreeNode(PdfName.MEDIABOX + " " + curwidth + "*" +
- curheight);
- this.add(info);
-
- }
- PdfArray arrcrop = (PdfArray) page.get(PdfName.CROPBOX);
- float curwidthcrop = 0;
- float curheightcrop = 0;
- if (arrcrop != null) {
- ArrayList arl = arrcrop.getArrayList();
- curwidthcrop = Float.parseFloat(arl.get(2).toString());
- curheightcrop = Float.parseFloat(arl.get(3).toString());
- info = new SimpletextTreeNode(PdfName.CROPBOX + " " + curwidthcrop + "*" +
- curheightcrop);
- this.add(info);
-
- }
-
- PdfNumber rotation = (PdfNumber) PdfReader.getPdfObject(page.get(PdfName.
- ROTATE));
-
- if (rotation == null) {
- System.out.println("Rotation missing");
- rotation = new PdfNumber(0);
- }
- else {
- info = new SimpletextTreeNode(PdfName.
- ROTATE + " " + rotation);
- this.add(info);
- }
- Rectangle rect = new Rectangle(curwidthcrop,
- curheightcrop);
-
- if ( (rotation.floatValue() == 90) || (rotation.floatValue() == 270)) {
- rect = rect.rotate();
- }
-
- width = rect.width();
- height = rect.height();
-
- // ??? Dont want a backreference! PdfDictionary parent = (PdfDictionary) PdfReader.getPdfObject(page.get(PdfName.PARENT));
- PdfArray dict = (PdfArray) PdfReader.getPdfObject(page.get(PdfName.ANNOTS));
- if (dict != null) {
- this.add(new SimpletextTreeNode(PdfName.ANNOTS + " " + dict.length()));
- SimpletextTreeNode sttn = new SimpletextTreeNode(PdfName.ANNOTS + " " +
- dict.type());
- this.add(sttn);
- pageanalyzer.iterateObjects(dict, pdfreader, sttn);
-
- }
- PdfObject reso = PdfReader.getPdfObject(page.get(PdfName.RESOURCES));
- if (reso != null) {
- SimpletextTreeNode sttn = new SimpletextTreeNode(PdfName.RESOURCES + " " +
- reso.type());
- this.add(sttn);
- pageanalyzer.iterateObjects(reso, pdfreader, sttn);
- }
-
- PdfObject contents = PdfReader.getPdfObject(page.get(PdfName.CONTENTS));
- if (contents != null) {
- this.add(new TextpaneTreeNode(contents,"Content"));
-
- if (contents.isStream()) {
- PRStream prstr = (PRStream) contents;
-
- Set s = prstr.getKeys();
- Iterator it = s.iterator();
-
- while (it.hasNext()) {
- Object obj = it.next();
- System.out.println("Field:" + obj);
-
- Object value = PdfReader.getPdfObject(prstr.get( (PdfName) obj));
- System.out.println("Value:" + value);
- }
- }
- }
- }
-
- public int getSeitennummer() {
- return seitennummer;
- }
-
- public String toString() {
- return "Page " + seitennummer;
- }
-
- public float getWidth() {
- return width;
- }
-
- public float getHeight() {
- return height;
- }
-
- public void updateview(IUpdatenodeview updateobject) {
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>");
- sb.append("Page " + getSeitennummer());
- sb.append("</p>");
- sb.append("<p>");
- sb.append("Size: " + getWidth() + "*" + getHeight());
- sb.append("</p>");
-
- Set set = dictionary.getKeys();
- Iterator it = set.iterator();
- while (it.hasNext()) {
- sb.append("<p>");
- sb.append("Key " + it.next().toString());
- sb.append("</p>");
- }
- sb.append("</html>");
- updateobject.showvalues(sb.toString());
- }
-
- public Icon getIcon(){
- return new ImageIcon(TreeViewInternalFrame.class.getResource(
- "pageonly.gif"));
- }
-
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/ProgressDialog.java b/src/main/java/com/lowagie/tools/plugins/treeview/ProgressDialog.java
deleted file mode 100644
index 42e46db..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/ProgressDialog.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * $Id: ProgressDialog.java,v 1.1 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.Frame;
-import java.awt.Toolkit;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JProgressBar;
-
-
-public class ProgressDialog extends JDialog {
- JPanel panel1 = new JPanel();
- BorderLayout borderLayout1 = new BorderLayout();
- JPanel jPanel1 = new JPanel();
- BorderLayout borderLayout2 = new BorderLayout();
- BorderLayout borderLayout3 = new BorderLayout();
- JLabel jLabel1 = new JLabel();
- JProgressBar jProgressBar1 = new JProgressBar();
- private int anzahlseiten;
- private int aktuelleseite;
-
- public ProgressDialog(Frame frame, String title, boolean modal) {
- super(frame, title, modal);
- try {
- jbInit();
- pack();
- }
- catch(Exception ex) {
- ex.printStackTrace();
- }
- }
-
- public ProgressDialog() {
- this(null, "", false);
- }
-
- private void jbInit() throws Exception {
- panel1.setLayout(borderLayout1);
- this.getContentPane().setLayout(borderLayout2);
- jPanel1.setLayout(borderLayout3);
- jLabel1.setText("Analysefortschritt");
- jProgressBar1.setStringPainted(true);
- getContentPane().add(panel1, BorderLayout.CENTER);
- panel1.add(jPanel1, BorderLayout.CENTER);
- jPanel1.add(jProgressBar1, BorderLayout.CENTER);
- this.getContentPane().add(jLabel1, BorderLayout.NORTH);
- //Das Fenster zentrieren
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension frameSize = getSize();
- if (frameSize.height > screenSize.height) {
- frameSize.height = screenSize.height;
- }
- if (frameSize.width > screenSize.width) {
- frameSize.width = screenSize.width;
- }
- setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
- }
- public int getAnzahlseiten() {
- return anzahlseiten;
- }
- public void setAnzahlseiten(int anzahlseiten) {
- this.anzahlseiten = anzahlseiten;
- jProgressBar1.setMaximum(anzahlseiten);
- }
- public int getAktuelleseite() {
- return aktuelleseite;
- }
- public void setAktuelleseite(int aktuelleseite) {
- this.aktuelleseite = aktuelleseite;
- jProgressBar1.setValue(aktuelleseite);
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/SimpletextTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/SimpletextTreeNode.java
deleted file mode 100644
index 2eedb6e..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/SimpletextTreeNode.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * $Id: SimpletextTreeNode.java,v 1.1 2005/11/29 21:05:02 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-public class SimpletextTreeNode
- extends UpdateableTreeNode {
-
- public SimpletextTreeNode(Object p0) {
- super(p0);
- }
-
- public void updateview(IUpdatenodeview updateobject) {
- StringBuffer sb = new StringBuffer();
- sb.append("<html>");
- sb.append("<p>");
- sb.append(this.userObject);
- sb.append("</p>");
- sb.append("</html>");
- updateobject.showvalues(sb.toString());
- }
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/TextpaneTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/TextpaneTreeNode.java
deleted file mode 100644
index bf37c7a..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/TextpaneTreeNode.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * $Id: TextpaneTreeNode.java,v 1.2 2006/05/30 09:13:36 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.io.IOException;
-
-import com.lowagie.text.pdf.*;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-public class TextpaneTreeNode
- extends UpdateableTreeNode {
- PdfObject contents;
- String marker;
-
- public TextpaneTreeNode(PdfObject contents,String marker) {
- super(contents,false);
- this.contents = contents;
- this.marker=marker;
- }
-
- public void updateview(IUpdatenodeview updateobject) {
- if (contents.isStream()) {
- PRStream prstr = (PRStream) contents;
- try {
- byte barr[] = PdfReader.getStreamBytes(prstr);
- updateobject.showtext(new String(barr));
- }
- catch (IOException ex) {
- }
- }
- }
-
- public String toString() {
- return marker;
- }
-
- public Icon getIcon(){
- return new ImageIcon(TreeViewInternalFrame.class.getResource(
- "string.gif"));
- }
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/TreeViewInternalFrame.java b/src/main/java/com/lowagie/tools/plugins/treeview/TreeViewInternalFrame.java
deleted file mode 100644
index 802059b..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/TreeViewInternalFrame.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * $Id: TreeViewInternalFrame.java,v 1.4 2006/05/29 10:31:32 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import java.awt.BorderLayout;
-import java.awt.CardLayout;
-import java.awt.Dimension;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.*;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.TreeModel;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.DefaultMutableTreeNode;
-import com.lowagie.tools.SwingWorker;
-import java.awt.Cursor;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import java.awt.Component;
-import javax.swing.table.TableColumnModel;
-
-public class TreeViewInternalFrame
- extends JInternalFrame implements PropertyChangeListener, IUpdatenodeview {
- AnalyzePDF analyzer;
-
- public TreeViewInternalFrame(String title, boolean resizable,
- boolean closable,
- boolean maximizable) {
- super(title, resizable, closable, maximizable);
- try {
- jbInit();
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- }
-
- private void jbInit() throws Exception {
- this.getContentPane().setLayout(borderLayout1);
- jPanel1.setLayout(borderLayout2);
- jPanel2.setLayout(cardLayout2);
- jSplitPane1.setMinimumSize(new Dimension(150, 100));
- jSplitPane1.setOrientation(JSplitPane.VERTICAL_SPLIT);
- jTree1.addTreeSelectionListener(new Untitled1_jTree1_treeSelectionAdapter(this));
- jPanel4.setLayout(borderLayout3);
- jPanel5.setLayout(borderLayout5);
- jTree1.setModel(defaultree);
- jPanel3.setLayout(borderLayout6);
- jPanel6.setLayout(borderLayout7);
- jSplitPane2.setDividerSize(3);
- jPanel1.add(jSplitPane1, java.awt.BorderLayout.CENTER);
- this.getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);
- jPanel2.add(jPanel4, "empty");
- jPanel2.add(jPanel5, "values");
- jScrollPane3.setViewportView(jLabel1);
- jScrollPane2.setViewportView(jTextPane1);
- jPanel2.add(jScrollPane2, "text");
- jSplitPane1.add(jPanel3, JSplitPane.TOP);
- jPanel5.add(jScrollPane3, java.awt.BorderLayout.CENTER);
- jSplitPane1.add(jPanel2, JSplitPane.BOTTOM);
- jSplitPane2.add(jScrollPane1, JSplitPane.TOP);
- jSplitPane2.add(jPanel6, JSplitPane.BOTTOM);
- jScrollPane4.setViewportView(jTable1);
- jPanel3.add(jSplitPane2, java.awt.BorderLayout.CENTER);
- jPanel6.add(jScrollPane4, java.awt.BorderLayout.CENTER);
- jScrollPane1.setViewportView(jTree1);
- jSplitPane1.setDividerLocation(170);
- jSplitPane2.setDividerLocation(200);
- PDFTreeCellRenderer renderer=new PDFTreeCellRenderer();
- jTree1.setCellRenderer(renderer);
- }
-
- public void setTreemodel(TreeModel treemodel) {
- jTree1.setModel(treemodel);
- }
-
- JPanel jPanel1 = new JPanel();
- BorderLayout borderLayout1 = new BorderLayout();
- JSplitPane jSplitPane1 = new JSplitPane();
- JScrollPane jScrollPane1 = new JScrollPane();
- JTree jTree1 = new JTree();
- JPanel jPanel2 = new JPanel();
- BorderLayout borderLayout2 = new BorderLayout();
- BorderLayout borderLayout4 = new BorderLayout();
- CardLayout cardLayout2 = new CardLayout();
- JPanel jPanel4 = new JPanel();
- JTextPane jTextPane1 = new JTextPane();
- JPanel jPanel5 = new JPanel();
- BorderLayout borderLayout3 = new BorderLayout();
- BorderLayout borderLayout5 = new BorderLayout();
- JLabel jLabel1 = new JLabel();
- JScrollPane jScrollPane2 = new JScrollPane();
- JScrollPane jScrollPane3 = new JScrollPane();
- DefaultTreeModel defaultree = new DefaultTreeModel(new DefaultMutableTreeNode());
- JPanel jPanel3 = new JPanel();
- BorderLayout borderLayout6 = new BorderLayout();
- JPanel jPanel6 = new JPanel();
- JTable jTable1 = new JTable();
- BorderLayout borderLayout7 = new BorderLayout();
- JSplitPane jSplitPane2 = new JSplitPane();
- JScrollPane jScrollPane4 = new JScrollPane();
- TableColumnModel tableColumnModel1 = jTable1.getColumnModel();
- /**
- * This method gets called when a bound property is changed.
- *
- * @param evt A PropertyChangeEvent object describing the event source and the property that has
- * changed.
- * @todo Implement this java.beans.PropertyChangeListener method
- */
- public void propertyChange(PropertyChangeEvent evt) {
-
- String propertyname = evt.getPropertyName();
-
- if (propertyname == null) {
- return;
- }
- else if (propertyname.equals("srcfile")) {
- final String filename = (String) evt.getNewValue();
- final ProgressDialog blubb;
- blubb = new ProgressDialog(null, "PDF Analysefortschritt", false);
-
- final JInternalFrame jif = this;
- SwingWorker work = new SwingWorker() {
-
- public Object construct() {
- AnalyzePDF analyzer = new AnalyzePDF(filename, blubb);
- jif.setCursor(Cursor.getDefaultCursor());
- return analyzer;
- }
- };
- jif.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- work.start();
- blubb.show();
- analyzer = (AnalyzePDF) work.get();
-
- Timer activitymonitor = new Timer(250, new ActionListener() {
- public void actionPerformed(ActionEvent event) {
- analyzer.updatecount();
- }
- });
-
- analyzer.start();
- activitymonitor.start();
- setTreemodel(analyzer);
- this.jTable1.setModel(analyzer.getXReftable());
- }
- }
-
- public void jTree1_valueChanged(TreeSelectionEvent e) {
- String event = e.getClass().toString();
- if (event.equalsIgnoreCase("class javax.swing.event.TreeSelectionEvent")) {
- UpdateableTreeNode selectednode = (UpdateableTreeNode) jTree1.
- getLastSelectedPathComponent();
- System.out.println("Selected node: " + selectednode);
- if (selectednode != null) {
- selectednode.updateview(this);
- }
- }
- }
-
- /**
- * This method fills the bottom window with the given text in a JtextPane
- * IUpdatenodeview method
- * @param text String Plain text
- */
- public void showtext(String text) {
- jTextPane1.setText(text);
- cardLayout2.show(jPanel2, "text");
- jPanel2.repaint();
- jTextPane1.repaint();
- }
-
- /**
- * This method clears the bottom window
- * IUpdatenodeview method
- */
- public void showempty() {
- cardLayout2.show(jPanel2, "empty");
- jPanel2.repaint();
- }
-
- /**
- * This method fills the bottom window with the given text in a JLabel
- * IUpdatenodeview method
- * @param text String HTML formatted text
- */
- public void showvalues(String text) {
- jLabel1.setText(text);
- cardLayout2.show(jPanel2, "values");
- }
-
- class PDFTreeCellRenderer extends DefaultTreeCellRenderer{
- public Component getTreeCellRendererComponent(JTree tree,Object value,boolean selected,boolean expanded,boolean leaf,int row,boolean hasFocus){
- super.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);
- DefaultMutableTreeNode node=(DefaultMutableTreeNode)value;
- if(node instanceof UpdateableTreeNode){
- UpdateableTreeNode utn=(UpdateableTreeNode)node;
- Object o = node.getUserObject();
- setFont(getFont().deriveFont(12.1f));
-// setIcon(new ImageIcon(TreeViewInternalFrame.class.getResource(
-// "icon16.gif")));
- setIcon(utn.getIcon());
- }
- return this;
- }
- }
-}
-
-class Untitled1_jTree1_treeSelectionAdapter
- implements TreeSelectionListener {
- private TreeViewInternalFrame adaptee;
- Untitled1_jTree1_treeSelectionAdapter(TreeViewInternalFrame adaptee) {
- this.adaptee = adaptee;
- }
-
- public void valueChanged(TreeSelectionEvent e) {
- adaptee.jTree1_valueChanged(e);
- }
-
-
-}
diff --git a/src/main/java/com/lowagie/tools/plugins/treeview/UpdateableTreeNode.java b/src/main/java/com/lowagie/tools/plugins/treeview/UpdateableTreeNode.java
deleted file mode 100644
index bd7cf47..0000000
--- a/src/main/java/com/lowagie/tools/plugins/treeview/UpdateableTreeNode.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * $Id: UpdateableTreeNode.java,v 1.2 2006/05/29 10:31:32 blowagie Exp $
- * $Name: $
- *
- * Copyright 2005 by Anonymous.
- *
- * 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 (C) 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 (C) 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.tools.plugins.treeview;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.ImageIcon;
-import javax.swing.Icon;
-
-public abstract class UpdateableTreeNode
- extends DefaultMutableTreeNode {
- public UpdateableTreeNode() {
- super();
- }
-
- public UpdateableTreeNode(Object userObject) {
- super(userObject);
- }
- public UpdateableTreeNode(Object userObject,boolean allowchildren) {
- super(userObject,allowchildren);
- }
- public abstract void updateview(IUpdatenodeview updateobject);
- public Icon getIcon(){
- return null;
- }
- }
-
diff --git a/src/main/java/com/lowagie/tools/split_pdf.java b/src/main/java/com/lowagie/tools/split_pdf.java
deleted file mode 100644
index d72b93e..0000000
--- a/src/main/java/com/lowagie/tools/split_pdf.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * $Id: split_pdf.java,v 1.18 2005/04/11 08:27:24 blowagie Exp $
- * $Name: $
- *
- * This code is free software. It may only be copied or modified
- * if you include the following copyright notice:
- *
- * This class by Bruno Lowagie. Copyright (c) 2002 Bruno Lowagie.
- *
- * This code 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.
- *
- * itext@lowagie.com
- */
-package com.lowagie.tools;
-
-import java.io.*;
-
-import com.lowagie.text.*;
-import com.lowagie.text.pdf.*;
-
-/**
- * This class demonstrates how to split a PDF file using iText.
- * @author Bruno Lowagie
- */
-public class split_pdf extends java.lang.Object {
-
- /**
- * This class can be used to split an existing PDF file.
- * @param args the command line arguments
- */
- public static void main(String args[]) {
- if (args.length != 4) {
- System.err.println("arguments: srcfile destfile1 destfile2 pagenumber");
- }
- else {
- try {
- int pagenumber = Integer.parseInt(args[3]);
-
- // we create a reader for a certain document
- PdfReader reader = new PdfReader(args[0]);
- // we retrieve the total number of pages
- int n = reader.getNumberOfPages();
- System.out.println("There are " + n + " pages in the original file.");
-
- if (pagenumber < 2 || pagenumber > n) {
- throw new DocumentException("You can't split this document at page " + pagenumber + "; there is no such page.");
- }
-
- // step 1: creation of a document-object
- Document document1 = new Document(reader.getPageSizeWithRotation(1));
- Document document2 = new Document(reader.getPageSizeWithRotation(pagenumber));
- // step 2: we create a writer that listens to the document
- PdfWriter writer1 = PdfWriter.getInstance(document1, new FileOutputStream(args[1]));
- PdfWriter writer2 = PdfWriter.getInstance(document2, new FileOutputStream(args[2]));
- // step 3: we open the document
- document1.open();
- PdfContentByte cb1 = writer1.getDirectContent();
- document2.open();
- PdfContentByte cb2 = writer2.getDirectContent();
- PdfImportedPage page;
- int rotation;
- int i = 0;
- // step 4: we add content
- while (i < pagenumber - 1) {
- i++;
- document1.setPageSize(reader.getPageSizeWithRotation(i));
- document1.newPage();
- page = writer1.getImportedPage(reader, i);
- rotation = reader.getPageRotation(i);
- if (rotation == 90 || rotation == 270) {
- cb1.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(i).height());
- }
- else {
- cb1.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
- }
- }
- while (i < n) {
- i++;
- document2.setPageSize(reader.getPageSizeWithRotation(i));
- document2.newPage();
- page = writer2.getImportedPage(reader, i);
- rotation = reader.getPageRotation(i);
- if (rotation == 90 || rotation == 270) {
- cb2.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(i).height());
- }
- else {
- cb2.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
- }
- System.out.println("Processed page " + i);
- }
- // step 5: we close the document
- document1.close();
- document2.close();
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
-}
-