예제 #1
0
        public byte[] ViewAsPng(string filePath)
        {
            //List<MemoryStream> pages = new List<MemoryStream>();

            //var streamFactory = new MemoryPageStreamFactory(pages);

            //using (Viewer viewer = new Viewer(filePath))
            //{
            //    PngViewOptions options = new PngViewOptions(streamFactory);
            //    viewer.View(options);

            //    long len = 0;
            //    foreach (var page in pages)
            //    {
            //        len += page.Length;
            //    }

            //    var byteArray = new byte[len];
            //    long i = 0;
            //    foreach (var page in pages)
            //    {
            //        page.ToArray().CopyTo(byteArray, i);
            //        i += page.Length;
            //    }

            //    return byteArray;
            //}
            var bytes  = File.ReadAllBytes(filePath);
            var stream = new MemoryStream(bytes);

            using (var viewer = new Viewer(stream))
            {
                var pages         = new List <MemoryStream>();
                var streamFactory = new MemoryPageStreamFactory(pages);
                var options       = new PngViewOptions(streamFactory);
                viewer.View(options);

                var imageByteArray = new List <byte[]>();
                foreach (var page in pages)
                {
                    imageByteArray.Add(page.ToArray());
                }

                long len = 0;
                foreach (var page in pages)
                {
                    len += page.Length;
                }

                var  byteArray = new byte[len];
                long i         = 0;
                foreach (var page in pages)
                {
                    page.ToArray().CopyTo(byteArray, i);
                    i += page.Length;
                }
                return(byteArray);
            }
        }
예제 #2
0
        public string ViewAsHtml(string filePath)
        {
            List <MemoryStream> pages = new List <MemoryStream>();

            using (Viewer viewer = new Viewer(filePath))
            {
                MemoryPageStreamFactory pageStreamFactory = new MemoryPageStreamFactory(pages);

                ViewOptions viewOptions =
                    HtmlViewOptions.ForEmbeddedResources(pageStreamFactory);

                viewer.View(viewOptions);
            }

            var stringContent = new StringBuilder();

            foreach (var page in pages)
            {
                stringContent.Append(Encoding.UTF8.GetString(page.ToArray()));
            }

            return(stringContent.ToString());
        }