Ejemplo n.º 1
0
 void addDocument(PdfReader reader) throws DocumentException, IOException {
   if (!reader.isOpenedWithFullPermissions())
     throw new BadPasswordException(
         MessageLocalization.getComposedMessage("pdfreader.not.opened.with.owner.password"));
   openDoc();
   if (readers2intrefs.containsKey(reader)) {
     reader = new PdfReader(reader);
   } else {
     if (reader.isTampered())
       throw new DocumentException(
           MessageLocalization.getComposedMessage("the.document.was.reused"));
     reader.consolidateNamedDestinations();
     reader.setTampered(true);
   }
   reader.shuffleSubsetNames();
   readers2intrefs.put(reader, new IntHashtable());
   readers.add(reader);
   int len = reader.getNumberOfPages();
   IntHashtable refs = new IntHashtable();
   for (int p = 1; p <= len; ++p) {
     refs.put(reader.getPageOrigRef(p).getNumber(), 1);
     reader.releasePage(p);
   }
   pages2intrefs.put(reader, refs);
   visited.put(reader, new IntHashtable());
   AcroFields acro = reader.getAcroFields();
   // when a document with NeedAppearances is encountered, the flag is set
   // in the resulting document.
   boolean needapp = !acro.isGenerateAppearances();
   if (needapp) needAppearances = true;
   fields.add(acro);
   updateCalculationOrder(reader);
 }