如何将PrintDocument保存为PDF文件?

问题描述

我已经尝试过使用iText库在stackoverflow上使用几个示例,但是没有成功。我想将printDocument2另存为pdf文件,并使用OpenFileDialog进行操作,而无需使用itext库。

我想创建一个关于它的方法。我是C#的初学者,如果您能帮助我,我将不胜感激 谢谢大家

打印文档方法

private void printDocument2_PrintPage(object sender,System.Drawing.Printing.PrintPageEventArgs e)
        {
            Graphics g = e.Graphics;
            Brush kalın = new SolidBrush(Color.Black);
            Font yazi = new Font("Arial",16,FontStyle.Regular);
            Font yazince = new Font("Arial",10,FontStyle.Regular);
            Font yazince1 = new Font("Arial",8,FontStyle.Regular);
            Font yazince2 = new Font("Arial",7,FontStyle.Regular);
            Font yazince3 = new Font("Arial",6,FontStyle.Regular);
            Font baslik = new Font("Arial",14,FontStyle.Bold);
            Font diyagrambaslik = new Font("Arial",12,FontStyle.Bold);
            Font baslikalt = new Font("Arial",FontStyle.Bold);
            Font rapor = new Font("Arial",FontStyle.Regular);
            Font rapor2 = new Font("Arial",9,FontStyle.Regular);
            Font koyuitalik = new Font("Arial",FontStyle.Italic | FontStyle.Bold);
            Pen kesikli = new Pen(Color.Black,2);
            kesikli.DashStyle = System.Drawing.drawing2d.DashStyle.Dash;

            Pen ince = new Pen(Color.DarkGray,2);
            Pen kalin = new Pen(Color.Red,4);
            Pen orta = new Pen(Color.Black,1);
            Pen kalem = new Pen(Color.Black,2);
            Brush siyah = new SolidBrush(Color.Black);
            Form1 frm1 = new Form1();
            Class1 obj = new Class1();
            frm1.malzeme_hesap();

            if (frm1.sev.Value == 2)
            {

                //Çerçeve
                g.DrawLine(kalem,15,790,15);
                g.DrawLine(kalem,1130);
                g.DrawLine(kalem,1130,15);
                //Çerçeve Sonu
                //üst baslık ölçüleri

                g.DrawLine(kalem,110,110);//yatay cizgi
                g.DrawString("İşin Adı : ",yazi,siyah,200,30);
                g.DrawString("Projeyi Yapan : ",60);
                g.DrawLine(kalem,165,110);// sol resim
                /* rect = new Rectangle(15,150,95);
                 g.DrawImage(image,rect);*/

                //üst baslık ölçüleri
                g.DrawLine(kalem,110);//yatay cizgi
                //g.DrawString("İşin Adı : " + isinAdi,30);
                //g.DrawString("Projeyi Yapan : " + adSoyad,110);// sol resim
                Image image3 = Properties.Resources.logo;

                Rectangle rect3 = new Rectangle(40,100,95);
                g.DrawImage(image3,rect3);
                g.DrawLine(kalem,360,360);//orta çizgi 
                                                     //rect = new Rectangle(40,115,715,240);
                                                     //g.DrawImage(image3,rect);

                Image image2 = Properties.Resources.DURUM_2;
                Rectangle rect = new Rectangle(280,215,240);
                g.DrawImage(image2,rect);
                if (fotografsecili == true)
                {
                    
                    g.DrawLine(kalem,640,110);//sag resim baslangıc
                    rect4 = new Rectangle(655,17,120,93);
                    g.DrawImage(image5,rect4);
                }
                else
                {
                    g.DrawLine(kalem,110);//sag resim baslangıc
                }

                //alt baslık
                image4 = Properties.Resources.ista;
                g.DrawLine(kalem,1110,1110);
                g.DrawLine(kalem,760,1130);
                rect = new Rectangle(20,20,20);
                g.DrawImage(image4,rect);
                g.DrawString("Bu program İSTA Yazılım tarafından geliştirilmiştir.",yazince,50,1112);
                g.DrawString("1",770,1112);

                //Rapor baslangıc
                g.DrawString("KUYU TEMEL HESAP RAPORU",baslik,270,365);
                double deger1,deger2;
                double cbolunbet;
                double sboluncel;

                g.DrawString("KUYU TEMEL GEOMETRİK BİLGİLERİ",baslikalt,400);
                g.DrawString("Kuyu temel seviye sayısı",rapor,420);
                g.DrawString(": " + frm1.sev.Value.ToString(),350,420);
                g.DrawString("1. seviye genişlik",440);
                g.DrawString(": " + frm1.gen1.Value + " cm ",440);
                g.DrawString("2. seviye genişlik",460);
                g.DrawString(": " + frm1.gen2.Value + " cm ",460);
                g.DrawString("Toplam genişik",480);
                g.DrawString(": " + frm1.gen1.Value + frm1.gen2.Value + " cm ",480);
                g.DrawString("1. seviye yükseklik",500);
                g.DrawString(": " + frm1.yuk1.Value + " cm ",500);
                g.DrawString("2. seviye yükseklik",520);
                g.DrawString(": " + frm1.yuk2.Value + " cm ",520);
                e.HasMorePages = false;
            }
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)