Exemplo n.º 1
0
        public void LayerCheckTest2()
        {
            string     filename = OUT + "LayerCheckTest2.pdf";
            FileStream fos      = new FileStream(filename, FileMode.Create);
            Document   document = new Document();
            PdfWriter  writer   = PdfAWriter.GetInstance(document, fos, PdfAConformanceLevel.PDF_A_2B);

            writer.ViewerPreferences = PdfWriter.PageModeUseOC;
            writer.PdfVersion        = PdfWriter.VERSION_1_5;
            document.Open();
            PdfContentByte cb       = writer.DirectContent;
            PdfLayer       nested   = new PdfLayer("Nested layers", writer);
            PdfLayer       nested_1 = new PdfLayer("Nested layer 1", writer);
            PdfLayer       nested_2 = new PdfLayer("Nested layer 2", writer);

            nested.AddChild(nested_1);
            nested.AddChild(nested_2);
            writer.LockLayer(nested_2);
            cb.BeginLayer(nested);

            Font font = FontFactory.GetFont(RESOURCES + "FreeMonoBold.ttf", BaseFont.WINANSI, true);

            ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT, new Phrase("nested layers", font), 50, 775, 0);
            cb.EndLayer();
            cb.BeginLayer(nested_1);
            ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT, new Phrase("nested layer 1", font), 100, 800, 0);
            cb.EndLayer();
            cb.BeginLayer(nested_2);
            ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT, new Phrase("nested layer 2", font), 100, 750, 0);
            cb.EndLayer();

            document.Close();
        }
Exemplo n.º 2
0
        protected void ManipulatePdf(String dest)
        {
            PdfDocument     pdfDoc     = new PdfDocument(new PdfWriter(dest));
            Document        doc        = new Document(pdfDoc);
            List <PdfLayer> options    = new List <PdfLayer>();
            PdfLayer        radiogroup = PdfLayer.CreateTitle("Table", pdfDoc);

            PdfLayer radio1 = new PdfLayer("column1", pdfDoc);

            // To follow a "radio button" paradigm,
            // make sure, that no more that one column is selected.
            radio1.SetOn(true);
            options.Add(radio1);
            radiogroup.AddChild(radio1);

            PdfLayer radio2 = new PdfLayer("column2", pdfDoc);

            radio2.SetOn(false);
            options.Add(radio2);
            radiogroup.AddChild(radio2);

            PdfLayer radio3 = new PdfLayer("column3", pdfDoc);

            radio3.SetOn(false);
            options.Add(radio3);
            radiogroup.AddChild(radio3);

            PdfLayer.AddOCGRadioGroup(pdfDoc, options);

            PdfCanvas pdfCanvas = new PdfCanvas(pdfDoc.AddNewPage());

            for (int i = 0; i < 3; i++)
            {
                pdfCanvas.BeginLayer(options[i]);
                Table table = CreateTable(i + 1, options);
                table.SetFixedPosition(1, 36, 700, 523);
                doc.Add(table);
                pdfCanvas.EndLayer();
            }

            doc.Close();
        }
// ===========================================================================
        public void Write(Stream stream)
        {
            // step 1
            using (Document document = new Document()) {
                // step 2
                PdfWriter writer = PdfWriter.GetInstance(document, stream);
                writer.PdfVersion = PdfWriter.VERSION_1_5;
                // step 3
                document.Open();
                // step 4
                PdfContentByte cb       = writer.DirectContent;
                PdfLayer       nested   = new PdfLayer("Nested layers", writer);
                PdfLayer       nested_1 = new PdfLayer("Nested layer 1", writer);
                PdfLayer       nested_2 = new PdfLayer("Nested layer 2", writer);
                nested.AddChild(nested_1);
                nested.AddChild(nested_2);
                writer.LockLayer(nested_2);
                cb.BeginLayer(nested);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase("nested layers"), 50, 775, 0
                                           );
                cb.EndLayer();
                cb.BeginLayer(nested_1);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase("nested layer 1"), 100, 800, 0
                                           );
                cb.EndLayer();
                cb.BeginLayer(nested_2);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase("nested layer 2"), 100, 750, 0
                                           );
                cb.EndLayer();

                PdfLayer group  = PdfLayer.CreateTitle("Grouped layers", writer);
                PdfLayer layer1 = new PdfLayer("Group: layer 1", writer);
                PdfLayer layer2 = new PdfLayer("Group: layer 2", writer);
                group.AddChild(layer1);
                group.AddChild(layer2);
                cb.BeginLayer(layer1);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase("layer 1 in the group"), 50, 700, 0
                                           );
                cb.EndLayer();
                cb.BeginLayer(layer2);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase("layer 2 in the group"), 50, 675, 0
                                           );
                cb.EndLayer();

                PdfLayer radiogroup = PdfLayer.CreateTitle("Radio group", writer);
                PdfLayer radio1     = new PdfLayer("Radiogroup: layer 1", writer);
                radio1.On = true;
                PdfLayer radio2 = new PdfLayer("Radiogroup: layer 2", writer);
                radio2.On = false;
                PdfLayer radio3 = new PdfLayer("Radiogroup: layer 3", writer);
                radio3.On = false;
                radiogroup.AddChild(radio1);
                radiogroup.AddChild(radio2);
                radiogroup.AddChild(radio3);
                List <PdfLayer> options = new List <PdfLayer>();
                options.Add(radio1);
                options.Add(radio2);
                options.Add(radio3);
                writer.AddOCGRadioGroup(options);
                cb.BeginLayer(radio1);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase("option 1"), 50, 600, 0
                                           );
                cb.EndLayer();
                cb.BeginLayer(radio2);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase("option 2"), 50, 575, 0
                                           );
                cb.EndLayer();
                cb.BeginLayer(radio3);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_LEFT,
                                           new Phrase(
                                               "option 3"
                                               ), 50, 550, 0
                                           );
                cb.EndLayer();

                PdfLayer not_printed = new PdfLayer("not printed", writer);
                not_printed.OnPanel = false;
                not_printed.SetPrint("Print", false);
                cb.BeginLayer(not_printed);
                ColumnText.ShowTextAligned(cb, Element.ALIGN_CENTER,
                                           new Phrase(
                                               "PRINT THIS PAGE"
                                               ), 300, 700, 90
                                           );
                cb.EndLayer();

                PdfLayer zoom = new PdfLayer("Zoom 0.75-1.25", writer);
                zoom.OnPanel = false;
                zoom.SetZoom(0.75f, 1.25f);
                cb.BeginLayer(zoom);
                ColumnText.ShowTextAligned(
                    cb, Element.ALIGN_LEFT,
                    new Phrase(
                        "Only visible if the zoomfactor is between 75 and 125%"
                        ), 30, 530, 90
                    );
                cb.EndLayer();
            }
        }
Exemplo n.º 4
0
        protected void ManipulatePdf(String dest)
        {
            PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
            PdfCanvas   canvas = new PdfCanvas(pdfDoc.GetFirstPage());

            PdfLayer nested  = new PdfLayer("Nested layers", pdfDoc);
            PdfLayer nested1 = new PdfLayer("Nested layer 1", pdfDoc);
            PdfLayer nested2 = new PdfLayer("Nested layer 2", pdfDoc);

            nested2.SetLocked(true);
            nested.AddChild(nested1);
            nested.AddChild(nested2);

            canvas.BeginLayer(nested);
            Canvas canvasModel = new Canvas(canvas, pdfDoc.GetDefaultPageSize());

            canvasModel.ShowTextAligned("nested layers", 50, 765, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            canvas.BeginLayer(nested1);
            canvasModel.ShowTextAligned("nested layers 1", 100, 800, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            canvas.BeginLayer(nested2);
            canvasModel.ShowTextAligned("nested layers 2", 100, 750, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            PdfLayer group  = PdfLayer.CreateTitle("Grouped layers", pdfDoc);
            PdfLayer layer1 = new PdfLayer("Group: layer 1", pdfDoc);
            PdfLayer layer2 = new PdfLayer("Group: layer 2", pdfDoc);

            group.AddChild(layer1);
            group.AddChild(layer2);

            canvas.BeginLayer(layer1);
            canvasModel.ShowTextAligned("layer 1 in the group", 50, 700, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            canvas.BeginLayer(layer2);
            canvasModel.ShowTextAligned("layer 2 in the group", 50, 675, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            PdfLayer radiogroup = PdfLayer.CreateTitle("Radio group", pdfDoc);
            PdfLayer radio1     = new PdfLayer("Radiogroup: layer 1", pdfDoc);

            radio1.SetOn(true);
            PdfLayer radio2 = new PdfLayer("Radiogroup: layer 2", pdfDoc);

            radio2.SetOn(false);
            PdfLayer radio3 = new PdfLayer("Radiogroup: layer 3", pdfDoc);

            radio3.SetOn(false);
            radiogroup.AddChild(radio1);
            radiogroup.AddChild(radio2);
            radiogroup.AddChild(radio3);
            IList <PdfLayer> options = new List <PdfLayer>();

            options.Add(radio1);
            options.Add(radio2);
            options.Add(radio3);
            PdfLayer.AddOCGRadioGroup(pdfDoc, options);

            canvas.BeginLayer(radio1);
            canvasModel.ShowTextAligned("option 1", 50, 600, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            canvas.BeginLayer(radio2);
            canvasModel.ShowTextAligned("option 2", 50, 575, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            canvas.BeginLayer(radio3);
            canvasModel.ShowTextAligned("option 3", 50, 550, TextAlignment.LEFT, 0);
            canvas.EndLayer();

            PdfLayer not_printed = new PdfLayer("not printed", pdfDoc);

            not_printed.SetOnPanel(false);
            not_printed.SetPrint("Print", false);

            canvas.BeginLayer(not_printed);
            canvasModel.ShowTextAligned("PRINT THIS PAGE", 300, 700, TextAlignment.CENTER,
                                        (float)MathUtil.ToRadians(90));
            canvas.EndLayer();

            PdfLayer zoom = new PdfLayer("Zoom 0.75-1.25", pdfDoc);

            zoom.SetOnPanel(false);
            zoom.SetZoom(0.75f, 1.25f);

            canvas.BeginLayer(zoom);
            canvasModel.ShowTextAligned("Only visible if the zoomfactor is between 75 and 125%",
                                        30, 530, TextAlignment.LEFT, (float)MathUtil.ToRadians(90));
            canvas.EndLayer();

            pdfDoc.Close();
        }