예제 #1
0
// ---------------------------------------------------------------------------    
    public void Write(Stream stream) {
      using (ZipFile zip = new ZipFile()) {
        // Use previous examples to create PDF files
        MovieLinks1 m = new MovieLinks1(); 
        byte[] pdfM = Utility.PdfBytes(m);
        LinkActions l = new LinkActions();
        byte[] pdfL = l.CreatePdf();
        // Create readers.
        PdfReader[] readers = {
          new PdfReader(pdfL),
          new PdfReader(pdfM)
        };
        
        // step 1
        //Document document = new Document();
        // step 2
        using (var ms = new MemoryStream()) { 
          // step 1
          using (Document document = new Document()) {
            using (PdfCopy copy = new PdfCopy(document, ms)) {
              // step 3
              document.Open();
              // step 4
              int n;
              // copy the pages of the different PDFs into one document
              for (int i = 0; i < readers.Length; i++) {
                readers[i].ConsolidateNamedDestinations();
                n = readers[i].NumberOfPages;
                for (int page = 0; page < n; ) {
                  copy.AddPage(copy.GetImportedPage(readers[i], ++page));
                }
              }
              // Add named destination  
              copy.AddNamedDestinations(
                // from the second document
                SimpleNamedDestination.GetNamedDestination(readers[1], false),
                // using the page count of the first document as offset
                readers[0].NumberOfPages
              );
            }
            zip.AddEntry(RESULT1, ms.ToArray());
          }
          
          // Create a reader
          PdfReader reader = new PdfReader(ms.ToArray());
          // Convert the remote destinations into local destinations
          reader.MakeRemoteNamedDestinationsLocal();
          using (MemoryStream ms2 = new MemoryStream()) {
            // Create a new PDF containing the local destinations
            using (PdfStamper stamper = new PdfStamper(reader, ms2)) {
            }
            zip.AddEntry(RESULT2, ms2.ToArray());
          }
          
        }
        zip.AddEntry(Utility.ResultFileName(m.ToString() + ".pdf"), pdfM);
        zip.AddEntry(Utility.ResultFileName(l.ToString() + ".pdf"), pdfL);
        zip.Save(stream);             
      }   
   }
예제 #2
0
// ---------------------------------------------------------------------------    
    public void Write(Stream stream) {
      using (ZipFile zip = new ZipFile()) {
        MovieLinks1 m = new MovieLinks1(); 
        byte[] pdf = Utility.PdfBytes(m);
        LinkActions actions = new LinkActions();
        zip.AddEntry(RESULT2, actions.CreatePdf());
        zip.AddEntry(RESULT3, actions.CreateXml(pdf));
        zip.AddEntry(RESULT1, pdf);
        zip.Save(stream);             
      }
    }
예제 #3
0
// ---------------------------------------------------------------------------
        public void Write(Stream stream)
        {
            using (ZipFile zip = new ZipFile()) {
                MovieLinks1 m       = new MovieLinks1();
                byte[]      pdf     = Utility.PdfBytes(m);
                LinkActions actions = new LinkActions();
                zip.AddEntry(RESULT2, actions.CreatePdf());
                zip.AddEntry(RESULT3, actions.CreateXml(pdf));
                zip.AddEntry(RESULT1, pdf);
                zip.Save(stream);
            }
        }
예제 #4
0
// ---------------------------------------------------------------------------
        public void Write(Stream stream)
        {
            using (ZipFile zip = new ZipFile()) {
                // Use previous examples to create PDF files
                MovieLinks1 m    = new MovieLinks1();
                byte[]      pdfM = Utility.PdfBytes(m);
                LinkActions l    = new LinkActions();
                byte[]      pdfL = l.CreatePdf();
                // Create readers.
                PdfReader[] readers =
                {
                    new PdfReader(pdfL),
                    new PdfReader(pdfM)
                };

                // step 1
                //Document document = new Document();
                // step 2
                using (var ms = new MemoryStream()) {
                    // step 1
                    using (Document document = new Document()) {
                        using (PdfCopy copy = new PdfCopy(document, ms)) {
                            // step 3
                            document.Open();
                            // step 4
                            int n;
                            // copy the pages of the different PDFs into one document
                            for (int i = 0; i < readers.Length; i++)
                            {
                                readers[i].ConsolidateNamedDestinations();
                                n = readers[i].NumberOfPages;
                                for (int page = 0; page < n;)
                                {
                                    copy.AddPage(copy.GetImportedPage(readers[i], ++page));
                                }
                            }
                            // Add named destination
                            copy.AddNamedDestinations(
                                // from the second document
                                SimpleNamedDestination.GetNamedDestination(readers[1], false),
                                // using the page count of the first document as offset
                                readers[0].NumberOfPages
                                );
                        }
                        zip.AddEntry(RESULT1, ms.ToArray());
                    }

                    // Create a reader
                    PdfReader reader = new PdfReader(ms.ToArray());
                    // Convert the remote destinations into local destinations
                    reader.MakeRemoteNamedDestinationsLocal();
                    using (MemoryStream ms2 = new MemoryStream()) {
                        // Create a new PDF containing the local destinations
                        using (PdfStamper stamper = new PdfStamper(reader, ms2)) {
                        }
                        zip.AddEntry(RESULT2, ms2.ToArray());
                    }
                }
                zip.AddEntry(Utility.ResultFileName(m.ToString() + ".pdf"), pdfM);
                zip.AddEntry(Utility.ResultFileName(l.ToString() + ".pdf"), pdfL);
                zip.Save(stream);
            }
        }