Exemplo n.º 1
0
        public override void DrawImage(Image img, RectangleF rect)
        {
            string tmpPath = TmpManager.GetTmpDir() + "\\tmp.jpg";

            img.GdiBitmap.Save(tmpPath);
            XImage bmp = XImage.FromFile(tmpPath);

            //XImage bmp = XImage.FromGdiPlusImage(img.GdiBitmap);
            g.DrawImage(bmp, rect);
            bmp.Dispose();
        }
Exemplo n.º 2
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;

            List <int> pageIndexes = new List <int>();

            for (int i = 0; i < lvPages.Items.Count; i++)
            {
                if (lvPages.Items[i].Checked)
                {
                    pageIndexes.Add(i);
                }
            }

            /*Bitmap[] bmps = MupdfSharp.PageRenderer.Render(path, PAGETHEIGHTPIXEL, pageIndexes.ToArray());
             * for(int i = 0; i < bmps.Length; i++)
             * {
             *  Bitmap tmp = bmps[i];
             *  bmps[i] = tmp.MakeBackgroundTransparent(Color.White);
             *  tmp.Dispose();
             * }*/

            if (!Directory.Exists(TmpManager.GetTmpDir() + "\\render"))
            {
                Directory.CreateDirectory(TmpManager.GetTmpDir() + "\\render");
            }

            Pages = new KPage[pageIndexes.Count];
            pdf.PdfDocument pdfdoc = pdf_io.PdfReader.Open(path, pdf_io.PdfDocumentOpenMode.Modify | pdf_io.PdfDocumentOpenMode.Import);

            for (int i = 0; i < pageIndexes.Count; i++)
            {
                int         p     = pageIndexes[i];
                KPage       page  = new KPage(KDocument.EmptyDocument);
                pdf.PdfPage pPage = pdfdoc.Pages[p];
                float       w     = (float)pPage.Width.Millimeter;
                float       h     = (float)pPage.Height.Millimeter;
                if (pPage.Rotate == 90 || pPage.Rotate == 270)
                {
                    Util.Swap(ref w, ref h);
                }
                page.Format       = new PageFormat(w, h);
                page.Background   = null;
                page.ShowDate     = false;
                page.OriginalPage = pPage;

                /*page.BackgroundImage
                 *  = new Renderer.Image(bmps[i]);*/

                page.PdfRenderPath = TmpManager.NewFilename(TmpManager.GetTmpDir() + "\\render", "page", ".png");
                Pages[i]           = page;
            }
            pdfdoc.Close();
        }