Exemple #1
0
 public HomeController(
     [NotNull] IPageDocument pageDocument,
     [NotNull] IDataSupplier dataSupplier,
     [NotNull] ILoggerFactory loggerFactory)
 {
     _logger = loggerFactory.CreateLogger<HomeController>();
     _pageDocument = pageDocument;
     _dataSupplier = dataSupplier;
 }
Exemple #2
0
        ///// <summary>
        ///// 无作为的初始化对象
        ///// </summary>
        //public PrintPage()
        //{
        //}

        public PrintPage(
            IPageDocument document,
            XPageSettings pageSettings,
            PrintPageCollection pages,
            int headerHeight,
            int footerHeight)
        {
            myDocument      = document;
            myPageSettings  = pageSettings;
            myOwnerPages    = pages;
            intHeaderHeight = headerHeight;
            intFooterHeight = footerHeight;
            intWidth        = (int)myPageSettings.ViewClientWidth;
            // 对标准页高缩小点,避免由于某个页高正好等于标准页高时该页最下面
            // 的线条无法显示和打印。(通融才能从容)
            intHeight = this.ViewStandardHeight - 10;
        }
 public PageDocumentPaintEventArgs(
     Graphics graphics,
     Rectangle clipRectangle,
     IPageDocument document,
     PrintPage page,
     PageContentPartyStyle contentStyle)
 {
     _Graphics      = graphics;
     _ClipRectangle = clipRectangle;
     _Document      = document;
     _Page          = page;
     _ContentStyle  = contentStyle;
     if (page != null)
     {
         _PageIndex = page.GlobalIndex + 1;
     }
 }
Exemple #4
0
 /// <summary>
 /// 创建文档指定页的位图
 /// </summary>
 /// <param name="doc">文档对象</param>
 /// <param name="pages">页面集合</param>
 /// <param name="PageIndex">指定页的序号</param>
 /// <param name="DrawBorder">是否绘制页面边框</param>
 /// <returns>生成的BMP位图文档对象</returns>
 public static byte[] GetPageMetafile(
     IPageDocument doc,
     PrintPageCollection pages,
     int PageIndex,
     bool DrawBorder,
     PageContentDrawer drawer)
 {
     drawer.Document  = doc;
     drawer.Pages     = pages;
     drawer.BackColor = System.Drawing.Color.White;
     if (DrawBorder)
     {
         drawer.BorderColor = System.Drawing.Color.Black;
     }
     else
     {
         drawer.BorderColor = System.Drawing.Color.Transparent;
     }
     return(drawer.GetMetafile(pages[PageIndex], true));
 }
Exemple #5
0
 /// <summary>
 /// 创建文档指定页的位图
 /// </summary>
 /// <param name="doc">文档对象</param>
 /// <param name="pages">页面集合</param>
 /// <param name="PageIndex">指定页的序号</param>
 /// <param name="DrawBorder">是否绘制页面边框</param>
 /// <returns>生成的BMP位图文档对象</returns>
 public static System.Drawing.Bitmap GetPageBmp(
     IPageDocument doc,
     PrintPageCollection pages,
     int PageIndex,
     bool DrawBorder,
     PageContentDrawer drawer)
 {
     drawer.Document  = doc;
     drawer.Pages     = pages;
     drawer.BackColor = System.Drawing.Color.White;
     if (DrawBorder)
     {
         drawer.BorderColor = System.Drawing.Color.Black;
     }
     else
     {
         drawer.BorderColor = System.Drawing.Color.Transparent;
     }
     System.Drawing.Bitmap bmp = drawer.GetPageBmp(pages[PageIndex], true);
     return(bmp);
 }
Exemple #6
0
        public MsHtmlPageElement(IPageDocument pageDocument, IHTMLElement htmlElement, IPageElement parentElement)
        {
            _htmlElement = htmlElement;
            PageDocument = pageDocument;
            Parent = parentElement;
            Attributes = new MsHtmlAttributes(htmlElement);
            Path = $"{(parentElement == null ? string.Empty : parentElement.Path)}/{Tag}";
            _content = new Lazy<string>(GetContent);

            //create children list including references to previous and next element
            var list = new List<IPageElement>();
            MsHtmlPageElement previousElement = null;
            foreach (IHTMLElement childElement in (IHTMLElementCollection) _htmlElement.children)
            {
                var currentElement = new MsHtmlPageElement(PageDocument, childElement, this);
                list.Add(currentElement);
                currentElement.PreviousSibling = previousElement;
                if (previousElement != null)
                {
                    previousElement.NextSibling = currentElement;

                    // calculate node index
                    IPageElement element = previousElement;
                    while (element != null)
                    {
                        if (element.Tag == Tag)
                        {
                            currentElement.NodeIndex = element.NodeIndex + 1;
                            break;
                        }
                        element = element.PreviousSibling;
                    }
                }
                previousElement = currentElement;
            }
            Children = list.ToArray();
        }
Exemple #7
0
 /// <summary>
 /// 初始化对象
 /// </summary>
 /// <param name="doc">文档对象</param>
 /// <param name="pages">页面集合</param>
 public DocumentPageDrawer(IPageDocument doc, PrintPageCollection pages)
 {
     this.myDocument = doc;
     this.myPages    = pages;
 }