SetPage() public méthode

public SetPage ( ) : void
Résultat void
Exemple #1
0
// ---------------------------------------------------------------------------
    public void Write(Stream stream) {
      // step 1
      using (Document document = new Document()) {
        // step 2
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        // step 3
        document.Open();
        // step 4
        Rectangle rect = new Rectangle(100, 400, 500, 800);
        rect.Border = Rectangle.BOX;
        rect.BorderWidth = 0.5f;
        rect.BorderColor = new BaseColor(0xFF, 0x00, 0x00);
        document.Add(rect);

        PdfIndirectObject streamObject = null;
        using (FileStream fs = 
          new FileStream(RESOURCE, FileMode.Open, FileAccess.Read))
        {
          PdfStream stream3D = new PdfStream(fs, writer);
          
          stream3D.Put(PdfName.TYPE, new PdfName("3D"));
          stream3D.Put(PdfName.SUBTYPE, new PdfName("U3D"));
          stream3D.FlateCompress();
          streamObject = writer.AddToBody(stream3D);
          stream3D.WriteLength();
        }
            
        PdfDictionary dict3D = new PdfDictionary();
        dict3D.Put(PdfName.TYPE, new PdfName("3DView"));
        dict3D.Put(new PdfName("XN"), new PdfString("Default"));
        dict3D.Put(new PdfName("IN"), new PdfString("Unnamed"));
        dict3D.Put(new PdfName("MS"), PdfName.M);
        dict3D.Put(
          new PdfName("C2W"),
          new PdfArray(
            new float[] { 1, 0, 0, 0, 0, -1, 0, 1, 0, 3, -235, 28 }
          )
        );
        dict3D.Put(PdfName.CO, new PdfNumber(235));

        PdfIndirectObject dictObject = writer.AddToBody(dict3D); 
            
        PdfAnnotation annot = new PdfAnnotation(writer, rect);
        annot.Put(PdfName.CONTENTS, new PdfString("3D Model"));
        annot.Put(PdfName.SUBTYPE, new PdfName("3D"));
        annot.Put(PdfName.TYPE, PdfName.ANNOT);
        annot.Put(new PdfName("3DD"), streamObject.IndirectReference);
        annot.Put(new PdfName("3DV"), dictObject.IndirectReference);
        PdfAppearance ap = writer.DirectContent.CreateAppearance(
          rect.Width, rect.Height
        );
        annot.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, ap);
        annot.SetPage();

        writer.AddAnnotation(annot);      
      }
    }
        /**
         * Creates a screen PdfAnnotation
         * @param writer
         * @param rect
         * @param clipTitle
         * @param fs
         * @param mimeType
         * @param playOnDisplay
         * @return a screen PdfAnnotation
         * @throws IOException
         */
        public static PdfAnnotation CreateScreen(PdfWriter writer, Rectangle rect, String clipTitle, PdfFileSpecification fs,
                                                 String mimeType, bool playOnDisplay)
        {
            PdfAnnotation ann = writer.CreateAnnotation(rect, PdfName.SCREEN);

            ann.Put(PdfName.F, new PdfNumber(FLAGS_PRINT));
            ann.Put(PdfName.TYPE, PdfName.ANNOT);
            ann.SetPage();
            PdfIndirectReference refi      = ann.IndirectReference;
            PdfAction            action    = PdfAction.Rendition(clipTitle, fs, mimeType, refi);
            PdfIndirectReference actionRef = writer.AddToBody(action).IndirectReference;

            // for play on display add trigger event
            if (playOnDisplay)
            {
                PdfDictionary aa = new PdfDictionary();
                aa.Put(new PdfName("PV"), actionRef);
                ann.Put(PdfName.AA, aa);
            }
            ann.Put(PdfName.A, actionRef);
            return(ann);
        }
 /**
 * Creates a screen PdfAnnotation
 * @param writer
 * @param rect
 * @param clipTitle
 * @param fs
 * @param mimeType
 * @param playOnDisplay
 * @return a screen PdfAnnotation
 * @throws IOException
 */
 public static PdfAnnotation CreateScreen(PdfWriter writer, Rectangle rect, String clipTitle, PdfFileSpecification fs,
                                         String mimeType, bool playOnDisplay)
 {
     PdfAnnotation ann = new PdfAnnotation(writer, rect);
     ann.Put(PdfName.SUBTYPE, PdfName.SCREEN);
     ann.Put (PdfName.F, new PdfNumber(FLAGS_PRINT));
     ann.Put(PdfName.TYPE, PdfName.ANNOT);
     ann.SetPage();
     PdfIndirectReference refi = ann.IndirectReference;
     PdfAction action = PdfAction.Rendition(clipTitle,fs,mimeType, refi);
     PdfIndirectReference actionRef = writer.AddToBody(action).IndirectReference;
     // for play on display add trigger event
     if (playOnDisplay)
     {
         PdfDictionary aa = new PdfDictionary();
         aa.Put(new PdfName("PV"), actionRef);
         ann.Put(PdfName.AA, aa);
     }
     ann.Put(PdfName.A, actionRef);
     return ann;
 }