コード例 #1
0
        private void button4_Click(object sender, System.EventArgs e)
        {
            // step 1: create the C1PdfDocument object
            C1.C1Pdf.C1PdfDocument pdf = new C1.C1Pdf.C1PdfDocument();

            // step 2: add content to the page
            Font       font = new Font("Arial", 12);
            RectangleF rc   = pdf.PageRectangle;

            rc.Inflate(-72, -72);

            // stretch image to fill the rectangle
            pdf.DrawImage(pictureBox1.Image, rc);

            // center image within the rectangle, scale keeping aspect ratio
            pdf.DrawImage(pictureBox1.Image, rc, ContentAlignment.MiddleCenter, C1.C1Pdf.ImageSizeModeEnum.Scale);

            // center image within the rectangle, keep original size
            pdf.DrawImage(pictureBox1.Image, rc, ContentAlignment.TopLeft, C1.C1Pdf.ImageSizeModeEnum.Clip);

            // step 3: save the document to a file
            string fileName = tempdir + "hello world.pdf";

            pdf.Save(fileName);
            System.Diagnostics.Process.Start(fileName);
        }
コード例 #2
0
        private void button12_Click(object sender, System.EventArgs e)
        {
            C1.C1Pdf.C1PdfDocument pdf = new C1.C1Pdf.C1PdfDocument();
            Image img = pictureBox3.Image;


            // stretch image to fill the rectangle
            Rectangle rc = new Rectangle(100, 100, 50, 30);

            pdf.DrawImage(img, rc);
            pdf.DrawRectangle(Pens.Black, rc);

            // render in actual size, clipping if necessary
            rc.Offset(rc.Width + 20, 0);
            pdf.DrawImage(img, rc, ContentAlignment.MiddleLeft, ImageSizeModeEnum.Clip);
            pdf.DrawRectangle(Pens.Black, rc);

            // scale the image to fit the rectangle while preserving the aspect ratio
            rc.Offset(rc.Width + 20, 0);
            pdf.DrawImage(img, rc, ContentAlignment.MiddleLeft, ImageSizeModeEnum.Scale);
            pdf.DrawRectangle(Pens.Black, rc);

            // step 3: save the document to a file
            string fileName = tempdir + "images.pdf";

            pdf.Save(fileName);
            System.Diagnostics.Process.Start(fileName);
        }
コード例 #3
0
        private void CreatePdf(Image img)
        {
            // export to pdf
            _pdf.Clear();
            RectangleF rc = _pdf.PageRectangle;

            rc.Inflate(-72, -72); // << 1" margin
            _pdf.DrawImage(img, rc, ContentAlignment.MiddleCenter, ImageSizeModeEnum.Scale);
            string fileName = Application.StartupPath + @"\pie.pdf";

            _pdf.Save(fileName);

            // show pdf
            System.Diagnostics.Process.Start(fileName);
        }
コード例 #4
0
        private void DrawPageImage(C1.C1Pdf.C1PdfDocument pdf, int index)
        {
            // get image bounds
            RectangleF rcBounds = pdf.PageRectangle;

            rcBounds.Inflate(-72, -72);

            // calculate zoom factor
            if (index == 0)
            {
                // get size of largest image
                SizeF szMax = Size.Empty;
                foreach (Image page in _images)
                {
                    szMax.Height = Math.Max(szMax.Height, page.Height);
                    szMax.Width  = Math.Max(szMax.Width, page.Width);
                }

                // get size of page bounds
                SizeF szPage = rcBounds.Size;

                // calculate zoom so largest image doesn't overflow the page
                _zoom = 1;
                float zh = szPage.Width / szMax.Width;
                float zv = szPage.Height / szMax.Height;
                if (zh < 1 || zv < 1)
                {
                    _zoom = Math.Min(zh, zv);
                }
            }

            // draw grid image
            var   rc  = rcBounds;
            Image img = _images[index] as Image;

            rc.Width  = (int)(img.Width * _zoom);
            rc.Height = (int)(img.Height * _zoom);
            if (index > 0)
            {
                pdf.NewPage();
            }
            pdf.DrawImage(img, rc);
        }