日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

C#教程之打印和打印预览

發(fā)布時(shí)間:2023/12/31 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 C#教程之打印和打印预览 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近研究一了一下關(guān)于PDF打印和打印預(yù)覽的功能,在此小小的總結(jié)記錄一下學(xué)習(xí)過(guò)程。

實(shí)現(xiàn)打印和打印預(yù)覽的方法,一般要實(shí)現(xiàn)如下的菜單項(xiàng):打印、打印預(yù)覽、頁(yè)面設(shè)置、

PrintDocument類(lèi)

PrintDocument組件是用于完成打印的類(lèi),其常用的屬性、方法事件如下:

屬性DocumentName:字符串類(lèi)型,記錄打印文檔時(shí)顯示的文檔名(例如,在打印狀態(tài)對(duì)話(huà)框或打印機(jī)隊(duì)列中顯示),即用戶(hù)填寫(xiě)生成pdf文件名時(shí)的默認(rèn)值為DocumentName
方法Print:開(kāi)始文檔的打印。
事件BeginPrint:在調(diào)用Print方法后,在打印文檔的第一頁(yè)之前發(fā)生。
事件PrintPage:需要打印新的一頁(yè)時(shí)發(fā)生。
事件EndPrint:在文檔的最后一頁(yè)打印后發(fā)生。

若要打印,首先創(chuàng)建PrintDocument組建的對(duì)象,然后使用頁(yè)面上設(shè)置對(duì)話(huà)框PageSetupDialog設(shè)置頁(yè)面打印方式,這些設(shè)置作為打印頁(yè)的默認(rèn)設(shè)置、使用打印對(duì)話(huà)框PrintDialog設(shè)置對(duì)文檔進(jìn)行打印的打印機(jī)的參數(shù)。在打開(kāi)兩個(gè)對(duì)話(huà)框前,首先設(shè)置對(duì)話(huà)框的屬性Document為指定的PrintDocument類(lèi)對(duì)象,修改的設(shè)置將保存到PrintDocument組件對(duì)象中。

第三步是調(diào)用PrintDocument.Print方法來(lái)實(shí)際打印文檔,調(diào)用該方法后,引發(fā)下列事件:BeginPrint、PrintPage、EndPrint。其中每打印一頁(yè)都引發(fā)PrintPage事件,打印多頁(yè),要多次引發(fā)PrintPage事件。完成一次打印,可以引發(fā)一個(gè)或多個(gè)PrintPage事件。

        /// <summary>
        /// 打印紙?jiān)O(shè)置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_PageSet_Click(object sender, EventArgs e)
        {
            PageSetupDialog pageSetupDialog = new PageSetupDialog();
            pageSetupDialog.Document = printDocument;
            pageSetupDialog.ShowDialog();
        }
        /// <summary>
        /// 打印機(jī)設(shè)置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_PrintSet_Click(object sender, EventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();
            printDialog.Document = printDocument;
            printDialog.ShowDialog();
        }
        /// <summary>
        /// 預(yù)覽功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_PrintView_Click(object sender, EventArgs e)
        {
            PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog {Document = printDocument};
            lineReader = new StreamReader(@"f:新建文本文檔.txt");
            try
            { // 腳本學(xué)堂 www.jbxue.com
                printPreviewDialog.ShowDialog();
            }
            catch (Exception excep)
            {
                MessageBox.Show(excep.Message, "打印出錯(cuò)", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// 打印功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_Print_Click(object sender, EventArgs e)
        {
            PrintDialog printDialog = new PrintDialog {Document = printDocument};
            lineReader = new StreamReader(@"f:新建文本文檔.txt");
            if (printDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    printDocument.Print();
                }
                catch (Exception excep)
                {
                    MessageBox.Show(excep.Message, "打印出錯(cuò)", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    printDocument.PrintController.OnEndPrint(printDocument, new PrintEventArgs());
                }
            }
        }

程序員應(yīng)為這3個(gè)事件編寫(xiě)事件處理函數(shù)。BeginPrint事件處理函數(shù)進(jìn)行打印初始化,一般設(shè)置在打印時(shí)所有頁(yè)的相同屬性或共用的資源,例如所有頁(yè)共同使用的字體、建立要打印的文件流等。PrintPage事件處理函數(shù)負(fù)責(zé)打印一頁(yè)數(shù)據(jù)。EndPrint事件處理函數(shù)進(jìn)行打印善后工作。這些處理函數(shù)的第2個(gè)參數(shù)System.Drawing.Printing.PrintEventArgs e提供了一些附加信息,主要有:
l e.Cancel:布爾變量,設(shè)置為true,將取消這次打印作業(yè)。
l e.Graphics:所使用的打印機(jī)的設(shè)備環(huán)境,參見(jiàn)第五章。
l e.HasMorePages:布爾變量。PrintPage事件處理函數(shù)打印一頁(yè)后,仍有數(shù)據(jù)未打印,退出事件處理函數(shù)前設(shè)置HasMorePages=true,退出PrintPage事件處理函數(shù)后,將再次引發(fā)PrintPage事件,打印下一頁(yè)。
l e.MarginBounds:打印區(qū)域的大小,是Rectangle結(jié)構(gòu),元素包括左上角坐標(biāo):Left和Top,寬和高:Width和Height。單位為1/100英寸。
l e.MarginBounds:打印紙的大小,是Rectangle結(jié)構(gòu)。單位為1/100英寸。
l e.PageSettings:PageSettings類(lèi)對(duì)象,包含用對(duì)話(huà)框PageSetupDialog設(shè)置的頁(yè)面打印方式的全部信息。可用幫助查看PageSettings類(lèi)的屬性。

注意:本例打印或預(yù)覽RichTextBox中的內(nèi)容,增加變量:StringReader streamToPrint=null。如果打印或預(yù)覽文件,改為:StreamReader streamToPrint,

接下來(lái)用winform的例子具體實(shí)現(xiàn)一個(gè)小功能:

首先我們要生成的pdf 文件中的數(shù)據(jù)來(lái)源有:從其他文本中獲得,用戶(hù)將現(xiàn)有的數(shù)據(jù)按照某只格式輸出為pdf文件

首先介紹一下,讀取txt文件中的內(nèi)容,生成pdf文件的具體代碼:

 PrintDocument printDocument;
        StreamReader lineReader = null;
        public Form1()
        {
            InitializeComponent();
            // 這里的printDocument對(duì)象可以通過(guò)將PrintDocument控件拖放到窗體上來(lái)實(shí)現(xiàn),注意要設(shè)置該控件的PrintPage事件。
            printDocument=new PrintDocument();
            printDocument.DocumentName = "張海倫測(cè)試";
            printDocument.PrintPage += new PrintPageEventHandler (this.printDocument_PrintPage);
        }

        /// <summary>
        /// 打印內(nèi)容頁(yè)面布局
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            var g = e.Graphics; //獲得繪圖對(duì)象
            float linesPerPage = 0; //頁(yè)面的行號(hào)
            float yPosition = 0; //繪制字符串的縱向位置
            var count = 0; //行計(jì)數(shù)器
            float leftMargin = e.MarginBounds.Left; //左邊距
            float topMargin = e.MarginBounds.Top; //上邊距
            string line = null;
            System.Drawing.Font printFont = this.textBox.Font; //當(dāng)前的打印字體
            BaseFont baseFont = BaseFont.CreateFont("f:\STSONG.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            var myBrush = new SolidBrush(Color.Black); //刷子
            linesPerPage = e.MarginBounds.Height / printFont.GetHeight(g); //每頁(yè)可打印的行數(shù)
            //逐行的循環(huán)打印一頁(yè)
            while (count < linesPerPage && ((line = lineReader.ReadLine()) != null))
            {
                yPosition = topMargin + (count * printFont.GetHeight(g));
                g.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());
                count++;           
            }        
        
        }
        
        /// <summary>
        /// 打印紙?jiān)O(shè)置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_PageSet_Click(object sender, EventArgs e)
        {
            PageSetupDialog pageSetupDialog = new PageSetupDialog();
            pageSetupDialog.Document = printDocument;
            pageSetupDialog.ShowDialog();
        }
        /// <summary>
        /// 打印機(jī)設(shè)置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_PrintSet_Click(object sender, EventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();
            printDialog.Document = printDocument;
            printDialog.ShowDialog();
        }
        /// <summary>
        /// 預(yù)覽功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_PrintView_Click(object sender, EventArgs e)
        {
            PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog {Document = printDocument};
            lineReader = new StreamReader(@"f:新建文本文檔.txt");
            try
            { // 腳本學(xué)堂 www.jbxue.com
                printPreviewDialog.ShowDialog();
            }
            catch (Exception excep)
            {
                MessageBox.Show(excep.Message, "打印出錯(cuò)", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// 打印功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void FileMenuItem_Print_Click(object sender, EventArgs e)
        {
            PrintDialog printDialog = new PrintDialog {Document = printDocument};
            lineReader = new StreamReader(@"f:新建文本文檔.txt");
            if (printDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    printDocument.Print();
                }
                catch (Exception excep)
                {
                    MessageBox.Show(excep.Message, "打印出錯(cuò)", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    printDocument.PrintController.OnEndPrint(printDocument, new PrintEventArgs());
                }
            }
        }

View Code

其次,根據(jù)現(xiàn)有數(shù)據(jù)數(shù)據(jù)某種文本樣式的pdf文件具體代碼如下:

  ///GetPrintSw方法用來(lái)構(gòu)造打印文本,內(nèi)部StringBuilder.AppendLine在Drawstring時(shí)單獨(dú)占有一行。
        public StringBuilder GetPrintSW()
        {
            StringBuilder sb = new StringBuilder();
            string tou = "測(cè)試管理公司名稱(chēng)";
            string address = "河南洛陽(yáng)";
            string saleID = "2010930233330";    //單號(hào)        
            string item = "項(xiàng)目";
            decimal price = 25.00M;
            int count = 5;
            decimal total = 0.00M;
            decimal fukuan = 500.00M;
            sb.AppendLine(" " + tou + " 
");
            sb.AppendLine("--------------------------------------");
            sb.AppendLine("日期:" + DateTime.Now.ToShortDateString() + " " + "單號(hào):" + saleID);
            sb.AppendLine("-----------------------------------------");
            sb.AppendLine("項(xiàng)目" + "      " + "數(shù)量" + "    " + "單價(jià)" + "    " + "小計(jì)");
            for (int i = 0; i < count; i++)
            {
                decimal xiaoji = (i + 1) * price;
                sb.AppendLine(item + (i + 1) + "      " + (i + 1) + "     " + price + "    " + xiaoji);
                total += xiaoji;
            }
            sb.AppendLine("-----------------------------------------");
            sb.AppendLine("數(shù)量:" + count + "  合計(jì): " + total);
            sb.AppendLine("付款:" + fukuan);
            sb.AppendLine("現(xiàn)金找零:" + (fukuan - total));
            sb.AppendLine("-----------------------------------------");
            sb.AppendLine("地址:" + address + "");
            sb.AppendLine("電話(huà):123456789 123456789");
            sb.AppendLine("謝謝惠顧歡迎下次光臨 ");
            sb.AppendLine("-----------------------------------------");
            return sb;

        }

View Code

最后我們?cè)谲浖校?jīng)常使用的是將現(xiàn)有的某條記錄生成一個(gè)pdf文件表格,里面有用戶(hù)從數(shù)據(jù)庫(kù)中獲取的值。具體代碼如下:

private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            Font titleFont = new Font("宋體", 9, FontStyle.Bold);//標(biāo)題字體            
            Font font = new Font("宋體", 9, FontStyle.Regular);//正文文字            
            Brush brush = new SolidBrush(Color.Black);//畫(huà)刷            
            Pen pen = new Pen(Color.Black);           //線(xiàn)條顏色            
            Point po = new Point(10, 10);
            try
            {
                e.Graphics.DrawString(GetPrintSW().ToString(), titleFont, brush, po);   //DrawString方式進(jìn)行打印。  
                int length = 500;
                int height = 500;
                Graphics g = e.Graphics;//利用該圖片對(duì)象生成“畫(huà)板”
                Pen p = new Pen(Color.Red, 1);//定義了一個(gè)紅色,寬度為的畫(huà)筆
                g.Clear(Color.White); //設(shè)置黑色背景
                //一排數(shù)據(jù)
                g.DrawRectangle(p, 100, 100, 80, 20);//在畫(huà)板上畫(huà)矩形,起始坐標(biāo)為(10,10),寬為80,高為20
                g.DrawRectangle(p, 180, 100, 80, 20);//在畫(huà)板上畫(huà)矩形,起始坐標(biāo)為(90,10),寬為80,高為20
                g.DrawRectangle(p, 260, 100, 80, 20);//
                g.DrawRectangle(p, 340, 100, 80, 20);//
                g.DrawString("目標(biāo)", font, brush, 12, 12);//
                g.DrawString("完成數(shù)", font, brush, 92, 12);
                g.DrawString("完成率", font, brush, 172, 12);//進(jìn)行繪制文字。起始坐標(biāo)為(172, 12)
                g.DrawString("效率", font, brush, 252, 12);//關(guān)鍵的一步,進(jìn)行繪制文字。

                g.DrawRectangle(p, 10, 30, 80, 20);
                g.DrawRectangle(p, 90, 30, 80, 20);
                g.DrawRectangle(p, 170, 30, 80, 20);
                g.DrawRectangle(p, 250, 30, 80, 20);
                g.DrawString("800", font, brush, 12, 32);
                g.DrawString("500", font, brush, 92, 32);//關(guān)鍵的一步,進(jìn)行繪制文字。
                g.DrawString("60%", font, brush, 172, 32);//關(guān)鍵的一步,進(jìn)行繪制文字。
                g.DrawString("50%", font, brush, 252, 32);//關(guān)鍵的一步,進(jìn)行繪制文字。

                g.DrawRectangle(p, 10, 50, 80, 20);
                g.DrawRectangle(p, 90, 50, 80, 20);
                g.DrawRectangle(p, 170, 50, 160, 20);//在畫(huà)板上畫(huà)矩形,起始坐標(biāo)為(170,10),寬為160,高為20
                g.DrawString("總查數(shù)", font, brush, 12, 52);
                g.DrawString("不良數(shù)", font, brush, 92, 52);
                g.DrawString("合格率", font, brush, 222, 52);

                g.Dispose();//釋放掉該資源
            }

            catch (Exception ex)
            {

                MessageBox.Show(this, "打印出錯(cuò)!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }

        }

View Code

效果圖如:

上面這3個(gè)例子,均是在winform中實(shí)現(xiàn)的,最后一個(gè)功能的實(shí)現(xiàn)比較復(fù)雜,不是很好,

下面是倆個(gè)wpf實(shí)現(xiàn)打印的例子,

簡(jiǎn)單的一個(gè)具體代碼有:

  1  public MainWindow()
  2         {
  3             InitializeComponent();
  4         }
  5         /// <summary>
  6         /// 我得第一個(gè)Pdf程序
  7         /// </summary>
  8         private void CreatePdf()
  9         {
 10             string fileName = string.Empty;
 11             Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
 12             dlg.FileName = "我的第一個(gè)PDF";
 13             dlg.DefaultExt = ".pdf";
 14             dlg.Filter = "Text documents (.pdf)|*.pdf";
 15             Nullable<bool> result = dlg.ShowDialog();
 16             if (result == true)
 17             {
 18                 fileName = dlg.FileName;
 19                 Document document = new Document();                
 20                 PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
 21                 document.Open();
 22                 iTextSharp.text.Paragraph paragraph = new iTextSharp.text.Paragraph("Hello World");
 23                 document.Add(paragraph);
 24                 document.Close();             
 25             }//end if          
 26         }
 27         /// <summary>
 28         /// 設(shè)置頁(yè)面大小、作者、標(biāo)題等相關(guān)信息設(shè)置
 29         /// </summary>
 30         private void CreatePdfSetInfo()
 31         {
 32             string fileName = string.Empty;
 33             Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
 34             dlg.FileName = "我的第一個(gè)PDF";
 35             dlg.DefaultExt = ".pdf";
 36             dlg.Filter = "Text documents (.pdf)|*.pdf";
 37             Nullable<bool> result = dlg.ShowDialog();
 38             if (result == true)
 39             {
 40                 fileName = dlg.FileName;
 41                 //設(shè)置頁(yè)面大小
 42                 iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(216f, 716f);
 43                 pageSize.BackgroundColor = new iTextSharp.text.BaseColor(0xFF, 0xFF, 0xDE);
 44                 //設(shè)置邊界
 45                 Document document = new Document(pageSize, 36f, 72f, 108f, 180f);
 46                 PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
 47                 // 添加文檔信息
 48                 document.AddTitle("PDFInfo");
 49                 document.AddSubject("Demo of PDFInfo");
 50                 document.AddKeywords("Info, PDF, Demo");
 51                 document.AddCreator("SetPdfInfoDemo");
 52                 document.AddAuthor("焦?jié)?);
 53                 document.Open();
 54                 // 添加文檔內(nèi)容
 55                 for (int i = 0; i < 5; i++)
 56                 {
 57                     document.Add(new iTextSharp.text.Paragraph("Hello World! Hello People! " +"Hello Sky! Hello Sun! Hello Moon! Hello Stars!"));
 58                 }              
 59                 document.Close();
 60             }//end if
 61         }
 62         /// <summary>
 63         /// 創(chuàng)建多個(gè)Pdf新頁(yè)
 64         /// </summary>
 65         private void CreateNewPdfPage()
 66         {
 67             string fileName = string.Empty;
 68             Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
 69             dlg.FileName = "創(chuàng)建多個(gè)Pdf新頁(yè)";//生成的pdf文件名
 70             dlg.DefaultExt = ".pdf";//pdf的默認(rèn)后綴名
 71             dlg.Filter = "Text documents (.pdf)|*.pdf";
 72             Nullable<bool> result = dlg.ShowDialog();
 73             if (result == true)
 74             {
 75                 fileName = dlg.FileName;
 76                 Document document = new Document(PageSize.NOTE);            
 77                 PdfWriter writer= PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));                
 78                 document.Open();
 79                 // 第一頁(yè)
 80                 document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1"));
 81                 document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1"));
 82                 document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1"));
 83                 document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1"));             
 84                 // 添加新頁(yè)面
 85                 document.NewPage();
 86                 // 第二頁(yè)
 87                 // 添加第二頁(yè)內(nèi)容
 88                 document.Add(new iTextSharp.text.Paragraph("PDF2, PDF2, PDF2, PDF2, PDF2"));
 89                 document.Add(new iTextSharp.text.Paragraph("PDF2, PDF2, PDF2, PDF2, PDF2"));
 90                 document.Add(new iTextSharp.text.Paragraph("PDF2, PDF2, PDF2, PDF2, PDF2"));
 91                 document.Add(new iTextSharp.text.Paragraph("PDF2, PDF2, PDF2, PDF2, PDF2"));
 92                 document.Add(new iTextSharp.text.Paragraph("PDF2, PDF2, PDF2, PDF2, PDF2"));
 93                 document.Add(new iTextSharp.text.Paragraph("PDF2, PDF2, PDF2, PDF2, PDF2"));          
 94                 // 添加新頁(yè)面
 95                 document.NewPage();
 96                 // 第三頁(yè)
 97                 // 添加新內(nèi)容
 98                 document.Add(new iTextSharp.text.Paragraph("PDF3, PDF3, PDF3, PDF3, PDF3"));
 99                 document.Add(new iTextSharp.text.Paragraph("PDF3, PDF3, PDF3, PDF3, PDF3"));
100                 document.Add(new iTextSharp.text.Paragraph("PDF3, PDF3, PDF3, PDF3, PDF3"));
101                 document.Add(new iTextSharp.text.Paragraph("PDF3, PDF3, PDF3, PDF3, PDF3"));
102                 // 重新開(kāi)始頁(yè)面計(jì)數(shù)
103                 document.ResetPageCount();
104                 // 新建一頁(yè)
105                 document.NewPage();
106                 // 第四頁(yè)
107                 // 添加第四頁(yè)內(nèi)容
108                 document.Add(new iTextSharp.text.Paragraph("PDF4, PDF4, PDF4, PDF4, PDF4"));
109                 document.Add(new iTextSharp.text.Paragraph("PDF4, PDF4, PDF4, PDF4, PDF4"));
110                 document.Add(new iTextSharp.text.Paragraph("PDF4, PDF4, PDF4, PDF4, PDF4"));
111                 document.Add(new iTextSharp.text.Paragraph("PDF4, PDF4, PDF4, PDF4, PDF4"));
112                 document.Close();
113             }//end if
114         }
115         /// <summary>
116         /// 生成圖片pdf頁(yè)(pdf中插入圖片)
117         /// </summary>
118         public void ImageDirect()
119         {
120             string imagePath = AppDomain.CurrentDomain.BaseDirectory + @"Image1.jpg"; //臨時(shí)文件路徑
121             string fileName = string.Empty;
122             Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
123             dlg.FileName = "我的第一個(gè)PDF";
124             dlg.DefaultExt = ".pdf";
125             dlg.Filter = "Text documents (.pdf)|*.pdf";
126             Nullable<bool> result = dlg.ShowDialog();
127             if (result == true)
128             {
129                 fileName = dlg.FileName;
130                 Document document = new Document();
131                 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
132                 document.Open();
133                 iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imagePath);
134                 img.SetAbsolutePosition((PageSize.POSTCARD.Width - img.ScaledWidth) / 2, (PageSize.POSTCARD.Height - img.ScaledHeight) / 2);
135                 writer.DirectContent.AddImage(img);
136                 iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph("Foobar Film Festival", new iTextSharp.text.Font(Font.FontFamily.HELVETICA, 22f));
137                 p.Alignment = Element.ALIGN_CENTER;
138                 document.Add(p);
139                 document.Close();
140             }//end if
141         }
142         private void ReadPdf()
143         {
144             Console.WriteLine("讀取PDF文檔");
145             try
146             {
147                 // 創(chuàng)建一個(gè)PdfReader對(duì)象
148                 PdfReader reader = new PdfReader(@"D:我的第一個(gè)PDF.pdf");
149                 // 獲得文檔頁(yè)數(shù)
150                 int n = reader.NumberOfPages;
151                 // 獲得第一頁(yè)的大小
152                 iTextSharp.text.Rectangle psize = reader.GetPageSize(1);
153                 float width = psize.Width;
154                 float height = psize.Height;
155                 // 創(chuàng)建一個(gè)文檔變量
156                 Document document = new Document(psize, 50, 50, 50, 50);
157                 // 創(chuàng)建該文檔
158                 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"d:Read.pdf", FileMode.Create));
159                 // 打開(kāi)文檔
160                 document.Open();
161                 // 添加內(nèi)容
162                 PdfContentByte cb = writer.DirectContent;
163                 int i = 0;
164                 int p = 0;
165                 Console.WriteLine("一共有 " + n + " 頁(yè).");
166                 while (i < n)
167                 {
168                     document.NewPage();
169                     p++;
170                     i++;
171                     PdfImportedPage page1 = writer.GetImportedPage(reader, i);
172                     cb.AddTemplate(page1, .5f, 0, 0, .5f, 0, height / 2);
173                     Console.WriteLine("處理第 " + i + " 頁(yè)");
174                     if (i < n)
175                     {
176                         i++;
177                         PdfImportedPage page2 = writer.GetImportedPage(reader, i);
178                         cb.AddTemplate(page2, .5f, 0, 0, .5f, width / 2, height / 2);
179                         Console.WriteLine("處理第 " + i + " 頁(yè)");
180                     }
181                     if (i < n)
182                     {
183                         i++;
184                         PdfImportedPage page3 = writer.GetImportedPage(reader, i);
185                         cb.AddTemplate(page3, .5f, 0, 0, .5f, 0, 0);
186                         Console.WriteLine("處理第 " + i + " 頁(yè)");
187                     }
188                     if (i < n)
189                     {
190                         i++;
191                         PdfImportedPage page4 = writer.GetImportedPage(reader, i);
192                         cb.AddTemplate(page4, .5f, 0, 0, .5f, width / 2, 0);
193                         Console.WriteLine("處理第 " + i + " 頁(yè)");
194                     }
195                     cb.SetRGBColorStroke(255, 0, 0);
196                     cb.MoveTo(0, height / 2);
197                     cb.LineTo(width, height / 2);
198                     cb.Stroke();
199                     cb.MoveTo(width / 2, height);
200                     cb.LineTo(width / 2, 0);
201                     cb.Stroke();
202                     BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
203                     cb.BeginText();
204                     cb.SetFontAndSize(bf, 14);
205                     cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "page " + p + " of " + ((n / 4) + (n % 4 > 0 ? 1 : 0)), width / 2, 40, 0);
206                     cb.EndText();
207                 }
208                 // 關(guān)閉文檔
209                 document.Close();
210             }
211             catch (Exception de)
212             {
213                 Console.Error.WriteLine(de.Message);
214                 Console.Error.WriteLine(de.StackTrace);
215             }
216         }
217         
218         /// <summary>
219         /// 創(chuàng)建表格
220         /// </summary>
221         public void CreateFirstTable()
222         {
223             string imagePath = AppDomain.CurrentDomain.BaseDirectory + @"Image1.pm"; //臨時(shí)文件路徑
224             string fileName = string.Empty;
225             Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
226             dlg.FileName = "我的第一個(gè)PDF";
227             dlg.DefaultExt = ".pdf";
228             dlg.Filter = "Text documents (.pdf)|*.pdf";
229             Nullable<bool> result = dlg.ShowDialog();
230             BaseFont baseFont = BaseFont.CreateFont("D:\STSONG.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
231             iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 9);
232             if (result == true)
233             {
234                 fileName = dlg.FileName;
235                 Document document = new Document();
236                 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
237                 document.Open();
238 
239                 iTextSharp.text.Paragraph p;
240                 p = new iTextSharp.text.Paragraph("中華人民共和國(guó)海關(guān)出口貨物打單", font);
241                 p.Alignment = Element.ALIGN_CENTER;//設(shè)置標(biāo)題居中
242                 p.SpacingAfter = 12;//設(shè)置段落行 通過(guò)設(shè)置Paragraph的SpacingBefore和SpacingAfter屬性調(diào)整Paragraph對(duì)象與之間或之后段落的間距
243                 p.SpacingBefore = 1;
244                 document.Add(p);//添加段落
245 
246                 p = new iTextSharp.text.Paragraph(GetBlank(5)+"預(yù)錄入編號(hào):" +"編號(hào)代碼"+GetBlank(15)+"海關(guān)編號(hào):"+GetBlank(5),font);
247                 //p.IndentationLeft = 20;
248                 //p.IndentationLeft = 20;
249                 //p.IndentationRight = 20;
250                 //p.FirstLineIndent = 20;
251                 //IndentationLeft屬性設(shè)置左側(cè)縮進(jìn)。
252                 //IndentationRight屬性設(shè)置右側(cè)縮進(jìn)。
253                 p.SpacingAfter = 12;
254                 document.Add(p);//添加段落
255 
256 
257                 PdfPTable table = new PdfPTable(10);//幾列
258                 
259                 PdfPCell cell;
260                 cell=new PdfPCell(new Phrase("收發(fā)貨人"+GetBlank(5)+"具體值"));
261                 cell.Colspan = 4;
262                 
263                 table.AddCell(cell);
264                 
265                 cell = new PdfPCell(new Phrase("出關(guān)口岸"+GetBlank(10)+"具體值"));
266                 cell.Rowspan = 2;
267                 table.AddCell(cell);
268                 cell = new PdfPCell(new Phrase("出口日期" + GetBlank(10) + "具體值"));
269                 cell.Rowspan = 2;
270                 table.AddCell(cell);
271                 cell = new PdfPCell(new Phrase("申報(bào)日期" + GetBlank(10) + "具體值"));
272                 cell.Rowspan = 2;
273                 table.AddCell(cell);
274 
275 
276                 cell = new PdfPCell(new Phrase("收發(fā)貨人" + GetBlank(5) + "具體值"));
277                 cell.Colspan = 4;
278                 table.AddCell(cell);
279 
280                 cell = new PdfPCell(new Phrase("出關(guān)口岸" + GetBlank(10) + "具體值"));
281                 cell.Rowspan = 2;
282                 table.AddCell(cell);
283                 cell = new PdfPCell(new Phrase("出口日期" + GetBlank(10) + "具體值"));
284                 cell.Rowspan = 2;
285                 table.AddCell(cell);
286                 cell = new PdfPCell(new Phrase("申報(bào)日期" + GetBlank(10) + "具體值"));
287                 cell.Rowspan = 2;
288                 table.AddCell(cell);
289 
290 
291                 //table.AddCell("row 1; cell 1");
292                 //table.AddCell("row 1; cell 2");
293                 //table.AddCell("row 2; cell 1");
294                 //table.AddCell("row 2; cell 2");
295                 document.Add(table);
296                 document.Close();
297             }//end if
298         }
299         /// <summary>
300         /// 獲得空格
301         /// </summary>
302         /// <param name="num"></param>
303         /// <returns></returns>
304         private static string GetBlank(int num)
305         {
306             StringBuilder blank = new StringBuilder();
307             for (int i = 0; i < num; i++)
308             {
309                 blank.Append(" ");
310             }
311             return blank.ToString();
312         }
313 
314         private void button1_Click(object sender, RoutedEventArgs e)
315         {
316             //CreatePdf();      
317             //CreatePdfPageSize();
318             CreateNewPdfPage();
319         }
320         private void button2_Click(object sender, RoutedEventArgs e)
321         {
322             CreateFirstTable();
323         }
324 
325         private void button3_Click(object sender, RoutedEventArgs e)
326         {
327             ImageDirect();
328         }
329 
330         private void button4_Click(object sender, RoutedEventArgs e)
331         {
332             ReadPdf();
333         } 

View Code

在這里用到了iTextSharp ,需要先先下載dll文件,然后引用,總結(jié)一下其中常用的用法和屬性之類(lèi)的知識(shí)點(diǎn),

PdfWriter的setInitialLeading操作用于設(shè)置行間距
Font font = new Font(Font.FontFamily.COURIER, 12, Font.BOLD, BaseColor.WHITE);
設(shè)置縮進(jìn)
iTextSharp中,Paragraph有三個(gè)屬性可以設(shè)置縮進(jìn):
//設(shè)置Paragraph對(duì)象的縮進(jìn)
contentPara1.IndentationLeft = 20;
contentPara1.IndentationRight = 20;
contentPara1.FirstLineIndent = 20;
IndentationLeft屬性設(shè)置左側(cè)縮進(jìn)。
IndentationRight屬性設(shè)置右側(cè)縮進(jìn)。
FirstLineIndent屬性設(shè)置首行左側(cè)縮進(jìn)。
三個(gè)值都可設(shè)為正負(fù)值。
設(shè)置對(duì)齊方式
設(shè)置Alignment屬性可以調(diào)整Paragraph對(duì)象中文字的對(duì)齊方式。如:
//設(shè)置Paragraph對(duì)象的對(duì)齊方式為兩端對(duì)齊
contentPara1.Alignment = Element.ALIGN_JUSTIFIED;
默認(rèn)情況使用左對(duì)齊。
Paragraph之間的間距
iTextSharp中,通過(guò)設(shè)置Paragraph的SpacingBefore和SpacingAfter屬性調(diào)整Paragraph對(duì)象與之間或之后段落的間距。例如:
//設(shè)置Paragraph對(duì)象與后面Paragraph對(duì)象之間的間距
contentPara1.SpacingAfter = 36;
文字分行問(wèn)題
iText默認(rèn)的規(guī)則是盡可能多的將完整單詞放在同一行內(nèi)。iText當(dāng)遇到空格或連字符才會(huì)分行,可以通過(guò)重新定義分隔符(split character)來(lái)改變這種規(guī)則。
 
分隔符(the split character)
使用nonbreaking space character,(char)160代替普通空格(char)32放入兩個(gè)單詞中間從而避免iText將它們放到不同行中。

最好的是自己設(shè)計(jì)界面和功能當(dāng)做模板使用,綁定數(shù)據(jù)實(shí)現(xiàn)如winform第三個(gè)例子樣的功能。

總結(jié)

以上是生活随笔為你收集整理的C#教程之打印和打印预览的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

欧美性春潮| 主播av在线 | 超碰在线最新网址 | 久久伊99综合婷婷久久伊 | 99re热精品视频 | 日韩欧美国产激情在线播放 | 午夜久久久精品 | 亚洲码国产日韩欧美高潮在线播放 | 国产高清视频免费最新在线 | 17婷婷久久www | 在线播放一区二区三区 | 日韩av不卡在线 | 日韩av线观看 | 热久在线 | 99视频99 | 久久久久亚洲精品 | 国产福利小视频在线 | 色之综合网 | 日b视频在线观看网址 | 中文字幕免费看 | 亚洲精品在线视频观看 | 91av影视| 日韩在线视 | 久久国产精品免费 | 精品视频免费 | 久久国产精品久久久 | 日韩av一区二区在线 | 免费日韩av片 | 亚洲电影影音先锋 | 免费色av | 91在线精品播放 | 色噜噜噜噜| 久久国产精品99久久人人澡 | 色先锋av资源中文字幕 | 精品久久久国产 | 在线国产能看的 | 91看成人 | www.国产在线视频 | 狠狠干成人综合网 | 久操视频在线播放 | 99999精品视频 | 在线视频 一区二区 | 一区二区 不卡 | 在线观看免费91 | 欧美日韩视频在线播放 | 成人午夜电影在线 | 在线导航av| 九九热在线播放 | 欧美另类v| 天天摸天天弄 | 久久草在线免费 | 国产一区福利在线 | 精品久久一区二区三区 | 九九免费精品视频 | 黄色大片国产 | 成人国产精品久久久春色 | 高清国产在线一区 | 波多野结衣视频一区二区 | 国产精品久久久777 成人手机在线视频 | 亚洲天堂社区 | 97久久精品午夜一区二区 | 国产成人精品久久久久 | 伊人国产在线播放 | 五月婷婷一级片 | 日日操天天操狠狠操 | 天天爽天天搞 | 中文字幕第一页在线视频 | 欧美精选一区二区三区 | 99热99re6国产在线播放 | 亚洲毛片久久 | 91亚色在线观看 | 国产精品久久久久久欧美 | 午夜久久美女 | 日批视频国产 | 久久伊人色综合 | 热久久这里只有精品 | 98超碰人人 | 97超碰色 | 日日夜精品| 五月天亚洲婷婷 | 九色porny真实丨国产18 | 国产精品久久久久久久毛片 | 波多野结衣理论片 | 在线观看视频免费大全 | 久久国内精品视频 | 日本久久高清视频 | 亚洲精品999| avlulu久久精品 | 久久综合欧美精品亚洲一区 | 久草久热| 97免费 | 精品伦理一区二区三区 | av 一区二区三区 | 天天曰天天干 | 波多野结衣视频一区二区 | 亚洲视频,欧洲视频 | 黄色av一级片 | 97视频免费在线 | 日韩在线高清免费视频 | 久久婷婷一区二区三区 | 久久亚洲美女 | 97视频人人免费看 | 开心色插 | 9在线观看免费高清完整版在线观看明 | 亚洲第一成网站 | 国产一区免费在线 | 国产精品完整版 | 色综合久久88色综合天天人守婷 | 国内久久久久 | 精品国产乱子伦一区二区 | 日韩91av| 成人在线电影观看 | 在线观看免费 | 中文字幕亚洲精品在线观看 | 麻豆成人精品视频 | 九九久久精品视频 | 免费在线播放黄色 | 国产精品91一区 | 天天躁日日躁狠狠躁av麻豆 | 黄色一级片视频 | 黄色亚洲大片免费在线观看 | 国产专区在线视频 | av黄免费看| 国产精品久久久久aaaa | 91精品视频免费看 | 三级黄色大片在线观看 | 久久天天操 | 国产成人精品综合久久久 | 国际精品久久久 | 狠狠狠狠狠狠狠狠 | 97福利在线 | 国产一级免费播放 | 蜜臀精品久久久久久蜜臀 | a级片在线播放 | 午夜精品久久久久久久久久久久 | 日本高清dvd| 国产精品1区 | 91精品色| 婷婷射五月 | 日日弄天天弄美女bbbb | 色婷在线 | 亚洲高清av | 日免费视频 | 久久99久国产精品黄毛片入口 | 国产福利网站 | 日日干美女 | 欧美激情视频一区 | 日日爱网址 | 成人国产精品一区 | 国产精品久久久久久婷婷天堂 | 91在线中文 | 亚洲干视频在线观看 | 97超碰色| 亚洲不卡av一区二区三区 | 欧美日韩国产亚洲乱码字幕 | 国产精品一区久久久久 | 久久精品欧美一区二区三区麻豆 | 日韩免费视频播放 | 精品高清美女精品国产区 | 久久免费99 | 九九精品久久久 | 99精品视频在线看 | 国产亚洲成av片在线观看 | 欧美一区二区三区激情视频 | 色欧美88888久久久久久影院 | 色综合天天综合网国产成人网 | 欧美日韩国产一区二区在线观看 | 久热久草在线 | 免费色av| 国产视频资源在线观看 | 婷婷在线色 | av电影免费在线看 | 国产高清av在线播放 | 日本黄色免费播放 | 999ZYZ玖玖资源站永久 | 国产精品99久久久久久小说 | 亚洲高清91 | 成人免费观看视频网站 | 成人黄色在线 | av动图 | 天天色天天骑天天射 | 欧美一级免费高清 | 国产传媒一区在线 | 美女性爽视频国产免费app | 亚洲成人家庭影院 | 黄色三级免费观看 | 91在线精品秘密一区二区 | 精品高清视频 | 久久久久久久久久久黄色 | 国产理论片在线观看 | 美国三级黄色大片 | 亚洲精品乱码白浆高清久久久久久 | 国产精品久久久久久久午夜 | 中文字幕在线看视频国产中文版 | 精品国产免费人成在线观看 | 日韩乱色精品一区二区 | 免费影视大全推荐 | av中文字幕剧情 | 久久五月精品 | 日本精品二区 | 亚州精品天堂中文字幕 | 国产日韩中文在线 | 欧美一级片免费观看 | 中文字幕av全部资源www中文字幕在线观看 | 天天干天天操天天做 | 808电影免费观看三年 | 欧美天堂久久 | 黄色小说免费在线观看 | 久久一区二区三区国产精品 | 欧美日韩一区二区三区在线免费观看 | 国产精品麻豆欧美日韩ww | 欧美在线99| 精品亚洲午夜久久久久91 | 久久公开免费视频 | 91传媒在线看 | 摸bbb搡bbb搡bbbb| 韩国av免费| 精品国产人成亚洲区 | 少妇bbw撒尿 | 免费观看91 | 婷婷视频在线 | 三上悠亚一区二区在线观看 | 国产午夜激情视频 | 国产在线免费观看 | 丁香五婷| 香蕉在线观看视频 | 天天激情在线 | 色黄视频免费观看 | 在线免费观看黄 | 国产精品久久久av久久久 | 中文字幕在线观看免费 | 国产高清在线免费 | 国产精品视频免费在线观看 | 中文字幕日韩有码 | 91中文在线 | 狠狠操电影网 | 97超级碰碰碰碰久久久久 | 91人人爽人人爽人人精88v | 中文字幕亚洲国产 | 国产视频一区在线免费观看 | 热久久国产| 成人一级片免费看 | 婷婷六月丁| 成人在线小视频 | 国产精品毛片久久久久久久 | 黄色91在线 | 日韩精品aaa| 久草香蕉在线视频 | 五月婷婷久久综合 | 国产免费小视频 | 美女视频黄免费的久久 | 丁香六月色 | 亚洲做受高潮欧美裸体 | 激情五月六月婷婷 | 久久综合中文字幕 | 手机看片1042 | 国产精品24小时在线观看 | 精品国产一二三四区 | 在线免费观看的av网站 | 特黄特黄的视频 | 91亚瑟视频 | 四虎成人免费观看 | 成人在线视频你懂的 | 精品国产一区二区三区日日嗨 | 国产精品久久一区二区三区不卡 | 亚洲欧美日韩一级 | 欧美极度另类性三渗透 | 最新久久免费视频 | 国产精品久久久久一区二区 | 91c网站色版视频 | 91av在线视频免费观看 | 草久在线视频 | 西西444www大胆无视频 | 五月婷婷一区二区三区 | 天天操天天吃 | 欧美va天堂在线电影 | 男女视频91 | 国产99久久 | 九草视频在线 | 香蕉精品在线观看 | 91视频久久久 | 成人av在线资源 | 色噜噜狠狠狠狠色综合久不 | 亚洲天堂网在线观看视频 | 丁香综合网 | 99在线观看免费视频精品观看 | 肉色欧美久久久久久久免费看 | 欧美一二三四在线 | 国产污视频在线观看 | 亚洲精品五月 | 在线免费黄色 | 人人爽人人射 | 亚洲欧美日韩国产精品一区午夜 | 日本中文一级片 | 伊人久久精品久久亚洲一区 | 久人人 | 国产 一区二区三区 在线 | 久久成人精品 | 欧美激情视频免费看 | 夜夜视频欧洲 | 亚洲最大av网站 | 久久国产精品99精国产 | 国产精品二区在线观看 | 国产精品电影一区 | 五月婷久 | 日韩中文久久 | 91手机电视 | 欧美日韩在线网站 | 亚洲电影黄色 | 亚洲精品免费在线视频 | 久久精品一区二区三区四区 | 亚洲亚洲精品在线观看 | 日韩欧美一区二区三区在线观看 | 91精品在线视频观看 | 国产精品九九久久99视频 | 日韩美女久久 | 国产一级一片免费播放放 | 亚洲精品国产拍在线 | 日韩精品一区电影 | 国产黄色在线 | 天天干天天色2020 | 狠狠干狠狠艹 | av电影不卡 | 国产亚洲精品久久 | 超碰在线94 | 99久久激情视频 | 午夜影视av | 色瓜| 欧美精品久久久久久久久久丰满 | 黄色a在线| 亚洲成人免费观看 | 一区二区在线电影 | 综合亚洲视频 | 97人人人人| 中文字幕高清 | 日韩欧美电影在线 | 中文字幕在线观看网站 | 亚洲欧美婷婷六月色综合 | 奇米7777狠狠狠琪琪视频 | 91av久久 | 69成人在线| 91精品小视频 | 久久黄色小说视频 | 国产香蕉视频在线播放 | 亚洲国产欧美在线看片xxoo | 久久与婷婷 | 久久精品视频网 | 一区二区三区国 | 综合精品久久 | 91成年人视频 | 91在线小视频 | 美女视频国产 | 久久久久久久影视 | 人人爽人人爽人人爽学生一级 | 中文字幕 婷婷 | 国产成人l区 | 在线观看免费视频你懂的 | 麻豆国产精品va在线观看不卡 | 日韩在线视频免费播放 | 欧美日本在线观看视频 | 欧美精品v国产精品v日韩精品 | 9在线观看免费高清完整版 玖玖爱免费视频 | 久草影视在线观看 | 99久热精品 | 91丨精品丨蝌蚪丨白丝jk | 天天操夜操 | 亚洲成人精品国产 | 国产精品久久久久久久电影 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 欧美在线视频一区二区三区 | 欧美黑人性猛交 | 日韩激情av在线 | 亚洲综合色婷婷 | 日韩高清免费观看 | 国产aa精品 | 欧美精品在线观看一区 | 国产成人av电影在线 | 久久狠狠一本精品综合网 | 日韩精品视频免费在线观看 | 中文在线字幕观看电影 | 日本超碰在线 | 亚洲精品视 | 香蕉看片| 国产中文欧美日韩在线 | 日韩免费大片 | 黄色a大片 | 国产一区免费在线观看 | 国产又粗又猛又爽又黄的视频先 | 日韩精品高清视频 | 九九在线精品视频 | 成人黄视频| 色www.| 国产中文字幕在线 | 亚洲无吗天堂 | 国产午夜在线观看 | 美女黄频| 久久五月婷婷综合 | 黄av在线 | 国产在线精品国自产拍影院 | 99久久精品午夜一区二区小说 | 久久免费精品 | 亚洲男人天堂a | 超碰97公开 | 日韩一级片观看 | 狠狠狠综合 | 色婷婷久久久 | 丝袜网站在线观看 | 97超级碰碰 | 欧美成人亚洲成人 | 免费观看91 | 婷婷国产一区二区三区 | 国产在线精品区 | 91热在线 | 91大神在线观看视频 | 精品国产免费观看 | 99色精品视频 | 国产免费视频在线 | av天天干| 中文字幕乱码电影 | 欧美一二三区在线播放 | 91亚洲精品久久久蜜桃借种 | 四虎国产精品成人免费影视 | av网址aaa | 亚洲激情在线观看 | 亚洲精品国内 | 丁香五月缴情综合网 | 香蕉久草 | 亚洲成人一二三 | 久久久久久久99精品免费观看 | 久久久久久久久久久久国产精品 | 国产精品久久久久久久午夜片 | 久久99最新地址 | 西西人体www444 | sesese图片| 99超碰在线播放 | 成人av视屏| 日韩在线大片 | 亚洲精品自拍视频在线观看 | 91视频91蝌蚪 | 久久伊人综合 | 成人精品一区二区三区中文字幕 | 成人超碰97| 在线观看亚洲视频 | 国产精品白丝jk白祙 | 亚洲日韩欧美一区二区在线 | 久久国产一区二区 | 国产成人免费在线观看 | 久久一久久 | 亚洲人成免费 | 精品一区二区在线免费观看 | 日韩欧美电影在线 | 精品不卡视频 | 伊人婷婷网 | 欧美日韩二三区 | 亚洲视频久久久久 | 欧美色图视频一区 | 国产黄色免费看 | 麻花豆传媒一二三产区 | 日韩在线电影一区 | 欧美久久九九 | 亚洲一区尤物 | 欧美午夜性 | 日日夜夜精品免费观看 | a视频在线看| 91av视频播放 | av网站免费线看精品 | 97超碰在线久草超碰在线观看 | av电影免费看| 怡红院av | 中文字幕a∨在线乱码免费看 | 欧美亚洲三级 | 欧美极品xxxx | 成人免费观看视频大全 | 玖玖精品视频 | 天堂久久电影网 | 黄色软件在线观看免费 | 国产黄免费在线观看 | 夜色资源网 | 五月婷婷在线视频 | 婷婷色网站 | 免费在线国产视频 | 午夜久久视频 | 九九久久久久99精品 | 国产99在线| 国产日韩在线观看一区 | 国产视频2区 | 激情欧美一区二区免费视频 | 国产资源在线观看 | 精品国产一区二区三区男人吃奶 | 91av看片 | 欧美日韩在线观看一区二区 | 亚洲一区二区三区在线看 | 国产精品第一视频 | 免费色视频 | 久久黄色片子 | www久久精品 | 天天天天天天天操 | 国产精品免费看 | 中国精品少妇 | 亚洲婷婷在线视频 | 国产成人不卡 | 黄色av观看 | 国产日韩在线看 | 激情视频免费在线 | 一区二精品 | 久久的色 | 综合网色 | 国产一区精品在线 | 手机成人在线电影 | 91自拍91| 欧美日本日韩aⅴ在线视频 插插插色综合 | 91精品国产91热久久久做人人 | 91亚洲精 | 色网站免费在线观看 | 免费午夜视频在线观看 | 色射色| 久草精品视频在线播放 | 亚洲精品综合一区二区 | 久久综合欧美精品亚洲一区 | 成人午夜电影免费在线观看 | 色综合久久久久久久久五月 | 色九九视频 | 婷婷在线精品视频 | 久久人人爽人人片 | 久草香蕉在线视频 | 日韩av高清 | av怡红院 | 久久99影院 | 日日日日日 | 欧美精品少妇xxxxx喷水 | 成人在线视频网 | 国产精品嫩草影院99网站 | 亚欧日韩成人h片 | 国产精久久 | 久久久国产精品视频 | 亚洲aaa级 | 亚洲伊人成综合网 | 人人舔人人爱 | 国产资源精品在线观看 | 国产精品久久久久久一二三四五 | 久久国产精品免费视频 | 日本韩国欧美在线观看 | 国产在线1区 | 国产一区二区电影在线观看 | 91精品国产综合久久福利不卡 | 久久久久免费精品国产小说色大师 | 国产精品久久久网站 | 一区二区三区在线视频111 | 2019av在线视频 | 国产一区免费在线 | 国产国产人免费人成免费视频 | 中文字幕在线观看视频免费 | 免费视频久久 | 天天射天天干天天爽 | 成人久久亚洲 | 在线免费观看亚洲视频 | 黄色片亚洲 | 国产精品免费久久久久久久久久中文 | 亚洲精品玖玖玖av在线看 | 久草在线资源视频 | 在线免费观看视频a | 国产精品99久久久久久小说 | 久久精品这里都是精品 | 在线久久 | 永久免费的av电影 | 国产xx在线 | 爱情影院aqdy鲁丝片二区 | 久久激情五月激情 | 久久夜色精品国产欧美乱 | 精品人妖videos欧美人妖 | 国产黄色免费电影 | 免费成人av在线看 | 成人久久18免费网站麻豆 | 日韩最新在线 | 人人狠狠综合久久亚洲 | 97超碰伊人 | 日本丰满少妇免费一区 | 成年人免费在线 | 在线观看网站av | 亚洲精品a区 | 日本h视频在线观看 | 精品久久久成人 | 麻豆视频免费播放 | 一区二区视频在线观看免费 | 国产成人精品日本亚洲999 | 国产原创在线 | 欧美日韩视频精品 | 婷婷六月在线 | 日韩欧美有码在线 | 最新av中文字幕 | 亚洲免费精品视频 | 黄色www免费 | av综合av | 亚洲六月丁香色婷婷综合久久 | 亚洲免费成人 | 日韩精品网址 | 国产精品久久久久一区二区三区共 | 亚洲天堂网在线播放 | 国产又粗又猛又黄又爽视频 | 国产精品免费久久 | 在线看小早川怜子av | 久久久久久影视 | 波多野结衣综合网 | 成人av片免费看 | 香蕉视频在线免费看 | 日韩美在线 | 日韩精品一区二区三区高清免费 | 亚州日韩中文字幕 | 亚洲色综合 | 国产免费视频一区二区裸体 | 日韩欧美精品在线观看 | 亚州天堂 | 人人澡超碰碰97碰碰碰软件 | 日日草视频 | 97久久久免费福利网址 | 国产激情电影综合在线看 | 成人av电影免费在线播放 | 成人9ⅰ免费影视网站 | 黄色毛片在线观看 | 五月天综合网站 | 国产精品久久久久久久久久免费 | 国产午夜三级一区二区三桃花影视 | 国产精品99免视看9 国产精品毛片一区视频 | 国产91在线观看 | 国产美女视频免费 | 91久久在线观看 | 亚洲乱码国产乱码精品天美传媒 | 欧美性另类 | 99久久久久久 | 在线观看亚洲精品 | 黄色国产高清 | 久久不卡国产精品一区二区 | 91豆花在线观看 | 中文字幕成人在线 | 碰超在线97人人 | 日韩不卡高清视频 | 久草在线播放视频 | 最新中文在线视频 | 亚洲区另类春色综合小说校园片 | 综合色综合 | 在线小视频你懂的 | 久久久久网址 | 美女视频国产 | 国产一级免费观看视频 | 美女福利视频一区二区 | 99久久久免费视频 | 中文av网 | 国产精品久久久影视 | 国产在线观看国语版免费 | 97av精品 | 97超级碰碰碰视频在线观看 | 成年人在线观看网站 | 亚洲美女视频在线 | 香蕉日日| 在线国产不卡 | 手机av电影在线观看 | 国产精品久久久久久吹潮天美传媒 | 国产在线观看你懂得 | 国产91亚洲 | 免费久久久久久久 | 五月婷婷丁香在线观看 | 国产丝袜制服在线 | 亚洲精品高清视频在线观看 | 精品在线播放 | 亚洲色图27p | 久久久人人爽 | 丁香婷婷网 | 中文字幕色站 | 在线观看一区二区视频 | 人人要人人澡人人爽人人dvd | 精品久久久久久久久久久久 | 激情偷乱人伦小说视频在线观看 | 日本护士三级少妇三级999 | 亚洲精品久久久久中文字幕二区 | 最新av在线免费观看 | 在线国产中文字幕 | 黄色三级免费看 | 色婷婷综合久久久中文字幕 | 伊人婷婷色 | 中文有码在线 | 成人黄色在线看 | 免费观看国产精品 | 99视频在线观看视频 | 91成人精品一区在线播放69 | 啪一啪在线 | 中文伊人 | 亚洲精品国产日韩 | 日韩精品五月天 | 激情综合交 | 叶爱av在线 | 欧美激精品 | 成人一级影视 | 69国产精品视频 | 久久精品99国产精品 | 成人午夜电影在线 | 久久蜜臀一区二区三区av | 国产精品毛片一区二区 | 欧美性高跟鞋xxxxhd | 天天操天天是 | 国模精品一区二区三区 | 91麻豆精品国产 | 天天爽天天爽天天爽 | 亚洲综合最新在线 | 综合久久综合久久 | 在线看片91 | 亚洲涩涩色| 久久久久久久久久久免费 | 久久亚洲欧美日韩精品专区 | 国产乱对白刺激视频在线观看女王 | 国产99精品在线观看 | 亚洲精品五月天 | 成人永久视频 | 少妇按摩av| 久久综合影院 | www.com久久久| 欧美精品久久久久a | 久久综合五月天 | 国产精品久久一区二区三区不卡 | 99 精品 在线 | 免费男女网站 | 色综合久久综合 | 欧美精品日韩 | 久久精品www人人爽人人 | 丁香婷婷综合激情五月色 | 国产成人一区二区精品非洲 | 国产精品大片在线观看 | 精品在线视频一区二区三区 | 亚洲精品短视频 | 亚洲一区欧美精品 | 日韩欧美国产精品 | 99爱在线| 国产日产精品一区二区三区四区的观看方式 | 欧美精品乱码久久久久 | 久久精品区 | 成人在线播放网站 | 国产日产高清dvd碟片 | 国产精品理论视频 | 99精品视频在线播放观看 | 97天天干 | 天天干天天上 | 久久久久久看片 | www免费视频com━ | 国产一级片久久 | 日日干夜夜骑 | 麻豆视频国产精品 | 最近最新中文字幕视频 | 久草在线视频免费资源观看 | 亚洲综合欧美激情 | 激情视频免费观看 | 国产精品美女久久久久久久久久久 | 国产视频一区二区在线播放 | 久草网在线视频 | 国产伦精品一区二区三区四区视频 | 99视频精品视频高清免费 | 欧美日韩国产高清视频 | 国产精品白虎 | 久久尤物电影视频在线观看 | 黄色av成人在线 | 日本中文字幕视频 | 中文字幕国产精品一区二区 | 亚洲天天干 | 日韩欧美在线一区二区 | 日日躁你夜夜躁你av蜜 | 亚洲最新av网站 | 丁香花在线观看免费完整版视频 | 日韩av视屏 | 亚洲激情电影在线 | 国产玖玖精品视频 | 久久久久久久亚洲精品 | 九九热在线免费观看 | 一区二区三区四区五区在线 | 97在线超碰 | 亚洲综合在线一区二区三区 | 九九免费在线观看 | 毛片网站在线看 | 日本精品一区二区 | 久久高清视频免费 | 国产精品久久久久久久久久久久午夜 | 在线国产片| 在线观看香蕉视频 | 美女在线黄| 91精品久久久久 | 欧美国产日韩一区二区三区 | 在线a视频 | 夜夜夜影院 | 玖玖精品在线 | 久久久久综合精品福利啪啪 | 天天玩天天干天天操 | 97成人超碰 | 国产精品一区二区久久 | 日日干网址| 三级黄在线| 亚洲免费精品视频 | 欧美不卡视频在线 | 91黄色小视频 | 亚洲欧美日本一区二区三区 | 日韩精品一区二区三区免费视频观看 | 日韩免费成人 | 91九色网站 | 久久精品999| 五月婷婷伊人网 | 日韩三级久久 | 欧美日韩免费网站 | 91精品久久久久久久久久久久久 | 99热 精品在线 | 久久久99国产精品免费 | 九九热99视频 | 蜜臀久久99精品久久久酒店新书 | 人人躁| 婷婷色五 | 欧美精品乱码久久久久久 | 中文字幕久久精品亚洲乱码 | 91天堂在线观看 | 国产一区二区三区免费在线 | 婷婷色网站 | 91麻豆精品国产自产 | www.亚洲黄色 | 中文字幕永久 | 久久国产香蕉视频 | 狠狠色丁香婷婷综合久久片 | 91成人精品国产刺激国语对白 | 日韩免费av片 | 免费看的黄色录像 | 91亚洲精品国产 | 日韩色爱 | 激情视频一区二区三区 | 麻豆视频国产 | 在线观看视频一区二区三区 | 97在线成人| 欧美日韩电影在线播放 | 欧美在线观看视频一区二区 | 精品久久久久久亚洲综合网站 | 日韩一二区在线观看 | 国产成人av综合色 | 国产精品一区二区麻豆 | 精品久久1| 日日夜夜草 | 婷婷国产v亚洲v欧美久久 | 国产精品毛片一区 | 少妇按摩av| 国产精品免费看 | 久久超碰在线 | 亚洲视频在线观看 | 99在线视频网站 | 成片视频在线观看 | 婷婷色网视频在线播放 | 99久久久国产免费 | 日韩精品91偷拍在线观看 | 中文字幕在线观看网 | 色综合天天综合网国产成人网 | 日韩午夜电影 | 性色在线视频 | 狂野欧美激情性xxxx欧美 | 国产精品自产拍在线观看中文 | 国产黄色特级片 | 久久免费视频网站 | 欧美精品在线观看免费 | 91在线精品视频 | 日日夜夜国产 | 中文字幕在线观看第一区 | 91av在线免费观看 | 精品久久久久国产免费第一页 | 中文字幕资源网在线观看 | 日本中文字幕视频 | 国产色黄网站 | 亚洲天堂网在线视频 | 久久精品婷婷 | 国产精品久久久久国产精品日日 | 亚洲成成品网站 | 涩涩爱夜夜爱 | 97精品国产一二三产区 | 天操夜夜操 | 99热这里只有精品国产首页 | www国产亚洲精品久久网站 | 久久久久北条麻妃免费看 | 色精品视频 | 欧美成人免费在线 | 夜夜操夜夜干 | 亚洲激情网站免费观看 | 日韩系列 | 成人免费在线视频观看 | 精品三级av| 国产视频日韩 | 国产精品电影一区二区 | 成人a在线| 国产在线精品福利 | 91超国产| 国产伦理一区二区 | 99久久精品网 | 日韩成人免费电影 | 一区二区三区四区在线免费观看 | 在线观看视频国产 | 高清国产午夜精品久久久久久 | 在线成人免费电影 | 一级做a爱片性色毛片www | 日韩和的一区二在线 | 日韩有码在线播放 | 色大片免费看 | 日韩精品一区二区三区三炮视频 | 亚洲经典视频在线观看 | 久久五月婷婷综合 | 91精品专区 | 欧美一级日韩免费不卡 | 中文不卡视频在线 | 亚洲欧洲精品一区二区精品久久久 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 国产在线观看你懂的 | 六月天综合网 | 国产少妇在线观看 | 日本久久不卡视频 | 天天在线操| 久久99久久99精品中文字幕 | 久久任你操 | 国产精品第52页 | 亚洲国产一二三 | 九九久久影院 | 99婷婷狠狠成为人免费视频 | 2020天天干天天操 | 国产精品免费在线 | 中文字幕电影在线 | 亚洲精品网页 | 国产一区二区三区高清播放 | 啪啪午夜免费 | 久久久久亚洲精品国产 | 在线之家官网 | 天天激情综合网 | 免费看的黄色 | 黄色一级在线免费观看 | 97成人超碰 | 色婷婷啪啪免费在线电影观看 | 国内精品久久久久久久影视麻豆 | 亚洲综合情 | 天天做天天干 | 国产流白浆高潮在线观看 | 日韩成人精品 | 深爱五月激情五月 | 美女一级毛片视频 | 波多野结衣一区二区三区中文字幕 | 久久伊99综合婷婷久久伊 | 婷婷激情五月综合 | 国产精品视频你懂的 | 久久久久久久综合色一本 | 一级片免费观看视频 | 丁香视频 | 中文在线字幕免 | 亚洲综合色视频 | 久久国产精品视频观看 | 日韩激情片在线观看 | 日日夜夜天天人人 | 美女网站在线免费观看 | 狠狠色香婷婷久久亚洲精品 | 久久久久 免费视频 | 在线免费观看黄色大片 | 欧美日韩不卡一区二区 | 91麻豆精品国产午夜天堂 | 成人国产精品久久久春色 | av超碰在线观看 | 蜜臀av性久久久久av蜜臀三区 | 国产精品粉嫩 | 免费看在线看www777 | 91在线精品播放 | 激情在线网址 | 免费黄色在线网站 | 在线日韩精品视频 | 在线视频精品 | 在线观看视频在线观看 | 六月丁香婷 | 欧美大香线蕉线伊人久久 | 美女性爽视频国产免费app | 成人一区二区三区中文字幕 | 久久69精品久久久久久久电影好 | 日日草夜夜操 | 91自拍91 | 免费一级特黄毛大片 | 在线看一区二区 | 国产小视频在线 | 激情综合网五月激情 | 久久综合五月天婷婷伊人 | 亚洲国产精品va在线 | 99久e精品热线免费 99国产精品久久久久久久久久 | www.日日日.com | 久久久久免费电影 | 日韩一区二区三免费高清在线观看 | 99热精品视 | 欧美在线视频一区二区 | 日韩av一区二区在线 | 日韩av黄| 午夜12点 | 国产夫妻av在线 | 久久久久久久免费观看 | 夜夜夜精品| 久久夜色精品国产欧美一区麻豆 | 91精彩视频在线观看 | 日韩色视频在线观看 | 久精品视频在线观看 | 激情久久伊人 | 香蕉影视 | 国产片免费在线观看视频 |