Ejemplo n.º 1
0
        private void exportPDFProcess(string filename, FPDFSave dialog)
        {
            org.pdfclown.files.File         file     = new org.pdfclown.files.File();
            org.pdfclown.documents.Document document = file.Document;
            Page   page;
            Stream stream;

            org.pdfclown.documents.contents.entities.JpegImage currentImage;
            int i = 1;

            foreach (CScannedImage img in images.Values)
            {
                ThreadStart setstatus = delegate { dialog.SetStatus(i, images.Count); };
                dialog.Invoke(setstatus);
                Size      pageSize  = new Size((int)(img.BaseImage.Width / img.BaseImage.HorizontalResolution * 72), (int)(img.BaseImage.Height / img.BaseImage.VerticalResolution * 72));
                PointF    point     = new PointF(0, 0);
                Resources resources = new Resources(document);
                //page = new Page(document,pageSize,resources);
                page = new Page(document);
                document.Pages.Add(page);
                stream = new MemoryStream();
                img.BaseImage.Save(stream, ImageFormat.Jpeg);
                PrimitiveComposer composer = new PrimitiveComposer(page);
                currentImage = new org.pdfclown.documents.contents.entities.JpegImage(stream);
                composer.ShowXObject(currentImage.ToXObject(document), point, pageSize);
                stream.Flush();
                composer.Flush();
                i++;
            }
            file.Save(filename, SerializationModeEnum.Standard);
            dialog.Invoke(new ThreadStart(dialog.Close));
        }
Ejemplo n.º 2
0
        private void exportPDF(string filename)
        {
            FPDFSave    pdfdialog = new FPDFSave();
            ThreadStart starter   = delegate { exportPDFProcess(filename, pdfdialog); };

            new Thread(starter).Start();
            pdfdialog.ShowDialog(this);
        }