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 }
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; }
// 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); }
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); } }
static FieldCellsManager() { obstacle = new FigureElement(FieldData.ObstacleColor); }
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; }