コード例 #1
0
        protected override void Write(OpenXMLRenderer renderer, CodeInline obj)
        {
            {
                var run = renderer.PushNewRun();
                renderer.ApplyStyleToRun(StyleDictionary.IdToName[FormatStyle.CodeInline], run);
                var runProp = run.ChildElements[0] as RunProperties;
                runProp.AppendChild(new CharacterScale {
                    Val = 25
                });
                run.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.Text()
                {
                    Space = SpaceProcessingModeValues.Preserve, Text = "\u202F"
                });
                renderer.PopTo(run);
            }

            {
                var run = renderer.PushNewRun();
                renderer.ApplyStyleToRun(StyleDictionary.IdToName[FormatStyle.CodeInline], run);
                run.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.Text()
                {
                    Space = SpaceProcessingModeValues.Preserve, Text = obj.Content.ToString().Replace(" ", "\u00A0")
                });                                                                                                                                                             // change spaces against fixed spaces
                renderer.PopTo(run);
            }

            {
                var run = renderer.PushNewRun();
                renderer.ApplyStyleToRun(StyleDictionary.IdToName[FormatStyle.CodeInline], run);
                var runProp = run.ChildElements[0] as RunProperties;
                runProp.AppendChild(new CharacterScale {
                    Val = 25
                });
                run.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.Text()
                {
                    Space = SpaceProcessingModeValues.Preserve, Text = "\u202F"
                });
                renderer.PopTo(run);
            }
        }
コード例 #2
0
ファイル: LinkInlineRenderer.cs プロジェクト: olesar/Altaxo
        /// <inheritdoc/>
        protected override void Write(OpenXMLRenderer renderer, LinkInline link)
        {
            var url = link.GetDynamicUrl != null?link.GetDynamicUrl() ?? link.Url : link.Url;

            if (link.IsImage)
            {
                RenderImage(renderer, link, url);
                renderer.AddBookmarkIfNeccessary(link);
            }
            else // link is not an image
            {
                if (Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute))
                {
                    ++_linkIndex;
                    //var nextId = renderer._wordDocument.MainDocumentPart.Parts.Count() + 1;
                    var rId = "lkId" + _linkIndex.ToString(System.Globalization.CultureInfo.InvariantCulture);
                    renderer._wordDocument.MainDocumentPart.AddHyperlinkRelationship(new System.Uri(url, System.UriKind.Absolute), true, rId);

                    var hyperlink = new Hyperlink()
                    {
                        Id = rId
                    };
                    renderer.Push(hyperlink);
                    renderer.WriteChildren(link);

                    foreach (var run in hyperlink.ChildElements.OfType <Run>())
                    {
                        renderer.ApplyStyleToRun(StyleDictionary.IdToName[FormatStyle.Link], run);
                    }

                    renderer.PopTo(hyperlink);
                }
                else if (!string.IsNullOrEmpty(url) && url.StartsWith("#")) // not a well formed Uri String - then it is probably a fragment reference
                {
                    if (null != renderer.FigureLinkList)
                    {
                        var idx = renderer.FigureLinkList.FindIndex(x => object.ReferenceEquals(x.Link, link));
                        if (idx >= 0)
                        {
                            renderer.CurrentFigureLinkListIndex = idx;
                        }
                    }

                    var hyperlink = new Hyperlink()
                    {
                        Anchor = url.Substring(1)
                    };
                    renderer.Push(hyperlink);
                    renderer.WriteChildren(link);

                    if (!renderer.CurrentFigureLinkListIndex.HasValue || !renderer.DoNotFormatFigureLinksAsHyperlinks)
                    {
                        foreach (var run in hyperlink.ChildElements.OfType <Run>())
                        {
                            renderer.ApplyStyleToRun(StyleDictionary.IdToName[FormatStyle.Link], run);
                        }
                    }
                    renderer.PopTo(hyperlink);

                    renderer.CurrentFigureLinkListIndex = null;
                }
            }
        }