From 13d6dc3a6a5e8bd3c17997351a0e6f087eb301a2 Mon Sep 17 00:00:00 2001 From: tknall Date: Tue, 25 Nov 2008 12:04:30 +0000 Subject: Removing itext from source. git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@302 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- src/main/java/com/lowagie/text/pdf/FdfWriter.java | 333 ---------------------- 1 file changed, 333 deletions(-) delete mode 100644 src/main/java/com/lowagie/text/pdf/FdfWriter.java (limited to 'src/main/java/com/lowagie/text/pdf/FdfWriter.java') diff --git a/src/main/java/com/lowagie/text/pdf/FdfWriter.java b/src/main/java/com/lowagie/text/pdf/FdfWriter.java deleted file mode 100644 index 1174e8f..0000000 --- a/src/main/java/com/lowagie/text/pdf/FdfWriter.java +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Copyright 2003 by Paulo Soares. - * - * 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.text.pdf; - -import java.io.IOException; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.Iterator; -import java.util.StringTokenizer; - -import com.lowagie.text.DocWriter; -import com.lowagie.text.DocumentException; - -/** Writes an FDF form. - * @author Paulo Soares (psoares@consiste.pt) - */ -public class FdfWriter { - static byte[] HEADER_FDF = DocWriter.getISOBytes("%FDF-1.2\n%\u00e2\u00e3\u00cf\u00d3\n"); - HashMap fields = new HashMap(); - - /** The PDF file associated with the FDF. */ - private String file; - - /** Creates a new FdfWriter. */ - public FdfWriter() { - } - - /** Writes the content to a stream. - * @param os the stream - * @throws DocumentException on error - * @throws IOException on error - */ - public void writeTo(OutputStream os) throws DocumentException, IOException { - Wrt wrt = new Wrt(os, this); - wrt.writeTo(); - } - - boolean setField(String field, PdfObject value) { - HashMap map = fields; - StringTokenizer tk = new StringTokenizer(field, "."); - if (!tk.hasMoreTokens()) - return false; - while (true) { - String s = tk.nextToken(); - Object obj = map.get(s); - if (tk.hasMoreTokens()) { - if (obj == null) { - obj = new HashMap(); - map.put(s, obj); - map = (HashMap)obj; - continue; - } - else if (obj instanceof HashMap) - map = (HashMap)obj; - else - return false; - } - else { - if (obj == null || !(obj instanceof HashMap)) { - map.put(s, value); - return true; - } - else - return false; - } - } - } - - void iterateFields(HashMap values, HashMap map, String name) { - for (Iterator it = map.keySet().iterator(); it.hasNext();) { - String s = (String)it.next(); - Object obj = map.get(s); - if (obj instanceof HashMap) - iterateFields(values, (HashMap)obj, name + "." + s); - else - values.put((name + "." + s).substring(1), obj); - } - } - - /** Removes the field value. - * @param field the field name - * @return true if the field was found and removed, - * false otherwise - */ - public boolean removeField(String field) { - HashMap map = fields; - StringTokenizer tk = new StringTokenizer(field, "."); - if (!tk.hasMoreTokens()) - return false; - ArrayList hist = new ArrayList(); - while (true) { - String s = tk.nextToken(); - Object obj = map.get(s); - if (obj == null) - return false; - hist.add(map); - hist.add(s); - if (tk.hasMoreTokens()) { - if (obj instanceof HashMap) - map = (HashMap)obj; - else - return false; - } - else { - if (obj instanceof HashMap) - return false; - else - break; - } - } - for (int k = hist.size() - 2; k >= 0; k -= 2) { - map = (HashMap)hist.get(k); - String s = (String)hist.get(k + 1); - map.remove(s); - if (map.size() > 0) - break; - } - return true; - } - - /** Gets all the fields. The map is keyed by the fully qualified - * field name and the values are PdfObject. - * @return a map with all the fields - */ - public HashMap getFields() { - HashMap values = new HashMap(); - iterateFields(values, fields, ""); - return values; - } - - /** Gets the field value. - * @param field the field name - * @return the field value or null if not found - */ - public String getField(String field) { - HashMap map = fields; - StringTokenizer tk = new StringTokenizer(field, "."); - if (!tk.hasMoreTokens()) - return null; - while (true) { - String s = tk.nextToken(); - Object obj = map.get(s); - if (obj == null) - return null; - if (tk.hasMoreTokens()) { - if (obj instanceof HashMap) - map = (HashMap)obj; - else - return null; - } - else { - if (obj instanceof HashMap) - return null; - else { - if (((PdfObject)obj).isString()) - return ((PdfString)obj).toUnicodeString(); - else - return PdfName.decodeName(obj.toString()); - } - } - } - } - - /** Sets the field value as a name. - * @param field the fully qualified field name - * @param value the value - * @return true if the value was inserted, - * false if the name is incompatible with - * an existing field - */ - public boolean setFieldAsName(String field, String value) { - return setField(field, new PdfName(value)); - } - - /** Sets the field value as a string. - * @param field the fully qualified field name - * @param value the value - * @return true if the value was inserted, - * false if the name is incompatible with - * an existing field - */ - public boolean setFieldAsString(String field, String value) { - return setField(field, new PdfString(value, PdfObject.TEXT_UNICODE)); - } - - /** Sets all the fields from this FdfReader - * @param fdf the FdfReader - */ - public void setFields(FdfReader fdf) { - HashMap map = fdf.getFields(); - for (Iterator it = map.keySet().iterator(); it.hasNext();) { - String key = (String)it.next(); - PdfDictionary dic = (PdfDictionary)map.get(key); - PdfObject v = dic.get(PdfName.V); - if (v != null) { - setField(key, v); - } - } - } - - /** Sets all the fields from this PdfReader - * @param pdf the PdfReader - */ - public void setFields(PdfReader pdf) { - setFields(pdf.getAcroFields()); - } - - /** Sets all the fields from this AcroFields - * @param af the AcroFields - */ - public void setFields(AcroFields af) { - for (Iterator it = af.getFields().entrySet().iterator(); it.hasNext();) { - Map.Entry entry = (Map.Entry)it.next(); - String fn = (String)entry.getKey(); - AcroFields.Item item = (AcroFields.Item)entry.getValue(); - PdfDictionary dic = (PdfDictionary)item.merged.get(0); - PdfObject v = PdfReader.getPdfObjectRelease(dic.get(PdfName.V)); - if (v == null) - continue; - PdfObject ft = PdfReader.getPdfObjectRelease(dic.get(PdfName.FT)); - if (ft == null || PdfName.SIG.equals(ft)) - continue; - setField(fn, v); - } - } - - /** Gets the PDF file name associated with the FDF. - * @return the PDF file name associated with the FDF - */ - public String getFile() { - return this.file; - } - - /** Sets the PDF file name associated with the FDF. - * @param file the PDF file name associated with the FDF - * - */ - public void setFile(String file) { - this.file = file; - } - - static class Wrt extends PdfWriter { - private FdfWriter fdf; - - Wrt(OutputStream os, FdfWriter fdf) throws DocumentException, IOException { - super(new PdfDocument(), os); - this.fdf = fdf; - this.os.write(HEADER_FDF); - body = new PdfBody(this); - } - - void writeTo() throws DocumentException, IOException { - PdfDictionary dic = new PdfDictionary(); - dic.put(PdfName.FIELDS, calculate(fdf.fields)); - if (fdf.file != null) - dic.put(PdfName.F, new PdfString(fdf.file, PdfObject.TEXT_UNICODE)); - PdfDictionary fd = new PdfDictionary(); - fd.put(PdfName.FDF, dic); - PdfIndirectReference ref = addToBody(fd).getIndirectReference(); - os.write(getISOBytes("trailer\n")); - PdfDictionary trailer = new PdfDictionary(); - trailer.put(PdfName.ROOT, ref); - trailer.toPdf(null, os); - os.write(getISOBytes("\n%%EOF\n")); - os.close(); - } - - - PdfArray calculate(HashMap map) throws IOException { - PdfArray ar = new PdfArray(); - for (Iterator it = map.keySet().iterator(); it.hasNext();) { - String key = (String)it.next(); - Object v = map.get(key); - PdfDictionary dic = new PdfDictionary(); - dic.put(PdfName.T, new PdfString(key, PdfObject.TEXT_UNICODE)); - if (v instanceof HashMap) { - dic.put(PdfName.KIDS, calculate((HashMap)v)); - } - else { - dic.put(PdfName.V, (PdfObject)v); - } - ar.add(dic); - } - return ar; - } - } -} -- cgit v1.2.3