Esempio n. 1
0
        static Field()
        {
            fieldRows    = FieldData.GameFieldHeight;
            fieldColumns = FieldData.GameFieldWidth;

            BorderElement = new FigureElement(FieldData.BorderSymbolColor, FieldData.BorderSymbol);
        }
        public static void Run()
        {
            // ExStart:CreateStructureElements
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

            // Create Pdf Document
            Document document = new Document();

            // Get Content for work with TaggedPdf
            ITaggedContent taggedContent = document.TaggedContent;

            // Set Title and Language for Documnet
            taggedContent.SetTitle("Tagged Pdf Document");
            taggedContent.SetLanguage("en-US");

            // Create Grouping Elements
            PartElement       partElement       = taggedContent.CreatePartElement();
            ArtElement        artElement        = taggedContent.CreateArtElement();
            SectElement       sectElement       = taggedContent.CreateSectElement();
            DivElement        divElement        = taggedContent.CreateDivElement();
            BlockQuoteElement blockQuoteElement = taggedContent.CreateBlockQuoteElement();
            CaptionElement    captionElement    = taggedContent.CreateCaptionElement();
            TOCElement        tocElement        = taggedContent.CreateTOCElement();
            TOCIElement       tociElement       = taggedContent.CreateTOCIElement();
            IndexElement      indexElement      = taggedContent.CreateIndexElement();
            NonStructElement  nonStructElement  = taggedContent.CreateNonStructElement();
            PrivateElement    privateElement    = taggedContent.CreatePrivateElement();

            // Create Text Block-Level Structure Elements
            ParagraphElement paragraphElement = taggedContent.CreateParagraphElement();
            HeaderElement    headerElement    = taggedContent.CreateHeaderElement();
            HeaderElement    h1Element        = taggedContent.CreateHeaderElement(1);

            // Create Text Inline-Level Structure Elements
            SpanElement  spanElement  = taggedContent.CreateSpanElement();
            QuoteElement quoteElement = taggedContent.CreateQuoteElement();
            NoteElement  noteElement  = taggedContent.CreateNoteElement();

            // Create Illustration Structure Elements
            FigureElement  figureElement  = taggedContent.CreateFigureElement();
            FormulaElement formulaElement = taggedContent.CreateFormulaElement();

            // Methods are under development
            ListElement      listElement      = taggedContent.CreateListElement();
            TableElement     tableElement     = taggedContent.CreateTableElement();
            ReferenceElement referenceElement = taggedContent.CreateReferenceElement();
            BibEntryElement  bibEntryElement  = taggedContent.CreateBibEntryElement();
            CodeElement      codeElement      = taggedContent.CreateCodeElement();
            LinkElement      linkElement      = taggedContent.CreateLinkElement();
            AnnotElement     annotElement     = taggedContent.CreateAnnotElement();
            RubyElement      rubyElement      = taggedContent.CreateRubyElement();
            WarichuElement   warichuElement   = taggedContent.CreateWarichuElement();
            FormElement      formElement      = taggedContent.CreateFormElement();

            // Save Tagged Pdf Document
            document.Save(dataDir + "StructureElements.pdf");
            // ExEnd:CreateStructureElements
        }
Esempio n. 3
0
        private static void Initialize(int row)
        {
            for (int col = 1; col < fieldColumns - 1; col++)
            {
                Cells[row][col] = new FigureElement(FieldData.BackgroundColor, ' ');
            }

            //Vertical borders
            Cells[row][0] = BorderElement;
            Cells[row][fieldColumns - 1] = BorderElement;
        }
Esempio n. 4
0
        // Generates a new figure that was not generated before
        private FigureElement [] BuildFigure(ArrayList array, ArrayList figures)
        {
            bool done = false;

            FigureElement []       element  = null;
            ArrayListIndicesRandom elements = new ArrayListIndicesRandom(array.Count);
            bool element_exists             = false;

            while (done == false)
            {
                elements = RandomizeFromArray(array);
                element  = new FigureElement []
                {
                    new FigureElement(pos1_x, pos1_y, (Element)elements[0]),
                    new FigureElement(pos2_x, pos2_y, (Element)elements[1]),
                    new FigureElement(pos3_x, pos3_y, (Element)elements[2]),
                    new FigureElement(pos4_x, pos4_y, (Element)elements[3]),
                    new FigureElement(pos5_x, pos5_y, (Element)elements[4]),
                    new FigureElement(pos6_x, pos6_y, (Element)elements[5]),
                    new FigureElement(pos7_x, pos7_y, (Element)elements[6]),
                };

                for (int i = 0; i < figures.Count; i++)
                {
                    FigureElement [] element2 = (FigureElement [])figures[i];

                    if (element.Length != element2.Length)
                    {
                        continue;
                    }

                    element_exists = true;
                    for (int n = 0; n < element.Length; n++)
                    {
                        if (element[n].element != element2[n].element)
                        {
                            element_exists = false;
                            break;
                        }
                    }
                    if (element_exists == true)
                    {
                        break;
                    }
                }

                if (element_exists == false)
                {
                    done = true;
                }
            }

            return(element);
        }
        private static FigureElement ExtractToFigureElement(ITaggedContent taggedContent, Page page, int imageIndex)
        {
            ImagePlacementAbsorber imagePlacementAbsorber = new ImagePlacementAbsorber();

            page.Accept(imagePlacementAbsorber);
            XImage xImage = imagePlacementAbsorber.ImagePlacements[imageIndex].Image;

            FileStream outputImage = new FileStream("temp-image.png", FileMode.Create);

            xImage.Save(outputImage, ImageFormat.Png);
            outputImage.Close();

            FigureElement figureElement = taggedContent.CreateFigureElement();

            figureElement.SetImage("temp-image.png");
            figureElement.AlternativeText = "Aspose logo";

            return(figureElement);
        }
Esempio n. 6
0
        private void DrawFigureElement(CairoContextEx gr, double x, double y, FigureElement figure)
        {
            switch (figure.element)
            {
            case Element.SmallCircle:
                gr.Arc(x + figure.x + small_size / 2, y + figure.y + small_size / 2, small_size, 0, 2 * Math.PI);
                break;

            case Element.MediumCircle:
                gr.Arc(x + figure.x + medium_size / 2, y + figure.y + medium_size / 2, medium_size, 0, 2 * Math.PI);
                break;

            case Element.MediumCircleWithChild:
                gr.Arc(x + figure.x + medium_size / 2, y + figure.y + medium_size / 2, medium_size, 0, 2 * Math.PI);
                gr.Stroke();
                gr.Arc(x + figure.x + medium_size / 2, y + figure.y + medium_size / 2, small_size, 0, 2 * Math.PI);
                break;
            }
            gr.Stroke();
        }
        static void Main()
        {
            var inputFileName  = "non-compliant.pdf";
            var outputFileName = "compliant.pdf";

            // Use some helper functions to create an example non-PDf/UA-compliant PDF
            Helpers.CreateDemoNonCompliantPdfFile(inputFileName);
            using (var d = new Document(inputFileName))
            {
                bool isValid = d.Validate("non-compliant-validation-log.xml", Aspose.Pdf.PdfFormat.PDF_UA_1);
            }

            var originalDocument = new Document(inputFileName);
            var pageOne          = originalDocument.Pages[1];

            // Create our new tagged document
            var              taggedDocument = new Document();
            ITaggedContent   taggedContent  = taggedDocument.TaggedContent;
            StructureElement rootElement    = taggedContent.RootElement;

            // Set meta data required by PDF/UA
            taggedContent.SetTitle("Our compliant document.");
            taggedContent.SetLanguage("en-US");

            // Extract from original PDF and create new structured elements for tagged PDF
            HeaderElement    h1            = ExtractToHeaderElement(taggedContent, pageOne, 1, 1);
            ParagraphElement p             = ExtractToParagraphElement(taggedContent, pageOne, 2);
            FigureElement    figureElement = ExtractToFigureElement(taggedContent, pageOne, 1);

            // Append to new tagged content in desired order, which will build structure tree up from the 'root'
            rootElement.AppendChild(h1);
            rootElement.AppendChild(figureElement);
            rootElement.AppendChild(p);

            // Save and validate the compliant PDF
            taggedDocument.Save(outputFileName);
            using (var d = new Document(outputFileName))
            {
                bool isValid = d.Validate("compliant-validation-log.xml", Aspose.Pdf.PdfFormat.PDF_UA_1);
            }
        }
Esempio n. 8
0
 static FieldCellsManager()
 {
     obstacle = new FigureElement(FieldData.ObstacleColor);
 }
Esempio n. 9
0
        public static void Run()
        {
            // ExStart:LinkStructureElements
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
            string outFile = dataDir + "LinkStructureElements_Output.pdf";
            string logFile = dataDir + "46035_log.xml";
            string imgFile = dataDir + "google-icon-512.png";

            // Creation document and getting Tagged Pdf Content
            Document       document      = new Document();
            ITaggedContent taggedContent = document.TaggedContent;


            // Setting Title and Nature Language for document
            taggedContent.SetTitle("Link Elements Example");
            taggedContent.SetLanguage("en-US");

            // Getting Root structure element (Document structure element)
            StructureElement rootElement = taggedContent.RootElement;


            ParagraphElement p1 = taggedContent.CreateParagraphElement();

            rootElement.AppendChild(p1);
            LinkElement link1 = taggedContent.CreateLinkElement();

            p1.AppendChild(link1);
            link1.Hyperlink = new WebHyperlink("http://google.com");
            link1.SetText("Google");
            link1.AlternateDescriptions = "Link to Google";


            ParagraphElement p2 = taggedContent.CreateParagraphElement();

            rootElement.AppendChild(p2);
            LinkElement link2 = taggedContent.CreateLinkElement();

            p2.AppendChild(link2);
            link2.Hyperlink = new WebHyperlink("http://google.com");
            SpanElement span2 = taggedContent.CreateSpanElement();

            span2.SetText("Google");
            link2.AppendChild(span2);
            link2.AlternateDescriptions = "Link to Google";


            ParagraphElement p3 = taggedContent.CreateParagraphElement();

            rootElement.AppendChild(p3);
            LinkElement link3 = taggedContent.CreateLinkElement();

            p3.AppendChild(link3);
            link3.Hyperlink = new WebHyperlink("http://google.com");
            SpanElement span31 = taggedContent.CreateSpanElement();

            span31.SetText("G");
            SpanElement span32 = taggedContent.CreateSpanElement();

            span32.SetText("oogle");
            link3.AppendChild(span31);
            link3.SetText("-");
            link3.AppendChild(span32);
            link3.AlternateDescriptions = "Link to Google";


            ParagraphElement p4 = taggedContent.CreateParagraphElement();

            rootElement.AppendChild(p4);
            LinkElement link4 = taggedContent.CreateLinkElement();

            p4.AppendChild(link4);
            link4.Hyperlink = new WebHyperlink("http://google.com");
            link4.SetText("The multiline link: Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google");
            link4.AlternateDescriptions = "Link to Google (multiline)";


            ParagraphElement p5 = taggedContent.CreateParagraphElement();

            rootElement.AppendChild(p5);
            LinkElement link5 = taggedContent.CreateLinkElement();

            p5.AppendChild(link5);
            link5.Hyperlink = new WebHyperlink("http://google.com");
            FigureElement figure5 = taggedContent.CreateFigureElement();

            figure5.SetImage(imgFile, 1200);
            figure5.AlternativeText = "Google icon";
            StructureAttributes linkLayoutAttributes = link5.Attributes.GetAttributes(AttributeOwnerStandard.Layout);
            StructureAttribute  placementAttribute   = new StructureAttribute(AttributeKey.Placement);

            placementAttribute.SetNameValue(AttributeName.Placement_Block);
            linkLayoutAttributes.SetAttribute(placementAttribute);
            link5.AppendChild(figure5);
            link5.AlternateDescriptions = "Link to Google";


            // Save Tagged Pdf Document
            document.Save(outFile);

            // Checking PDF/UA compliance
            document = new Document(outFile);
            bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);

            Console.WriteLine(String.Format("PDF/UA compliance: {0}", isPdfUaCompliance));
            // ExEnd:LinkStructureElements
        }
 private void DrawFigureElement(CairoContextEx gr, double x, double y, FigureElement figure)
 {
     switch (figure.element) {
     case Element.SmallCircle:
         gr.Arc (x + figure.x + small_size / 2, y + figure.y + small_size / 2, small_size, 0, 2 * Math.PI);
         break;
     case Element.MediumCircle:
         gr.Arc (x + figure.x + medium_size / 2, y + figure.y + medium_size / 2, medium_size, 0, 2 * Math.PI);
         break;
     case Element.MediumCircleWithChild:
         gr.Arc (x + figure.x + medium_size / 2, y + figure.y + medium_size / 2, medium_size, 0, 2 * Math.PI);
         gr.Stroke ();
         gr.Arc (x + figure.x + medium_size / 2, y + figure.y + medium_size / 2, small_size, 0, 2 * Math.PI);
         break;
     }
     gr.Stroke ();
 }
        private void DrawFigure(CairoContextEx gr, double x, double y, FigureElement[] figure)
        {
            const double cercle_size = 0.15;
            gr.Stroke ();
            gr.Arc (x + cercle_size / 2, y + cercle_size / 2, cercle_size / 2, 0, 2 * Math.PI);
            gr.Stroke ();

            for (int i = 0; i < figure.Length; i++)
                DrawFigureElement (gr, x, y,  figure[i]);

            gr.Stroke ();
        }
        // Generates a new figure that was not generated before
        private FigureElement[] BuildFigure(ArrayList array, ArrayList figures)
        {
            bool done = false;
            FigureElement [] element = null;
            ArrayListIndicesRandom elements = new ArrayListIndicesRandom (array.Count);
            bool element_exists = false;

            while (done == false) {

                elements = RandomizeFromArray (array);
                element = new FigureElement []
                {
                    new FigureElement (pos1_x, pos1_y, (Element) elements[0]),
                    new FigureElement (pos2_x, pos2_y, (Element) elements[1]),
                    new FigureElement (pos3_x, pos3_y, (Element) elements[2]),
                    new FigureElement (pos4_x, pos4_y, (Element) elements[3]),
                    new FigureElement (pos5_x, pos5_y, (Element) elements[4]),
                    new FigureElement (pos6_x, pos6_y, (Element) elements[5]),
                    new FigureElement (pos7_x, pos7_y, (Element) elements[6]),
                };

                for (int i = 0; i < figures.Count; i++) {
                    FigureElement [] element2 = (FigureElement []) figures[i];

                    if (element.Length != element2.Length)
                        continue;

                    element_exists = true;
                    for (int n = 0; n < element.Length; n++) {
                        if (element[n].element != element2[n].element) {
                            element_exists = false;
                            break;
                        }
                    }
                    if (element_exists == true)
                        break;
                }

                if (element_exists == false)
                    done = true;
            }

            return element;
        }