白玫瑰歌词发音:C#的office文档操作(9)

来源:百度文库 编辑:中财网 时间:2024/04/29 01:40:53
C#的office文档操作(9)2010-06-12 14:598.18 读取PDF文档之前在各个实例中介绍了如何创建各种类型的PDF文档,并进行了不同的设置。本节将主要介绍如何从已有的PDF文档中读取现有的内容。1.目的说明本实例主要介绍如何读取PDF文档。2.操作步骤(1)创建一个Windows控制台应用程序,命名为ReadPdfDemo。(2)添加对iTextSharp的引用。(3)在“Program.cs”文件中添加如下引用。using System;using System.IO;using iTextSharp.text;using iTextSharp.text.pdf;(4)直接修改“Program.cs”文件的代码如下。namespace ReadPdfDemo{    class Program    {        static void Main(string[] args)        {            Console.WriteLine("读取PDF文档");            try            {                // 创建一个PdfReader对象                PdfReader reader = new PdfReader(@"C:\origin.pdf");                // 获得文档页数                 int n = reader.NumberOfPages;                // 获得第一页的大小                Rectangle psize = reader.GetPageSize(1);                float width = psize.Width;                float height = psize.Height;                // 创建一个文档变量                Document document = new Document(psize, 50, 50, 50, 50);                // 创建该文档                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"C:\Read.pdf", FileMode.Create));                // 打开文档                document.Open();                 // 添加内容                PdfContentByte cb = writer.DirectContent;                int i = 0;                int p = 0;                Console.WriteLine("一共有 " + n + " 页.");                while (i < n)                {                    document.NewPage();                    p++;                    i++;                    PdfImportedPage page1 = writer.GetImportedPage(reader, i);                    cb.AddTemplate(page1, .5f, 0, 0, .5f, 0, height / 2);                    Console.WriteLine("处理第 " + i + " 页");                    if (i < n)                    {                        i++;                        PdfImportedPage page2 = writer.GetImportedPage(reader, i);                        cb.AddTemplate(page2, .5f, 0, 0, .5f, width / 2, height / 2);                        Console.WriteLine("处理第 " + i + " 页");                    }                    if (i < n)                    {                        i++;                        PdfImportedPage page3 = writer.GetImportedPage(reader, i);                        cb.AddTemplate(page3, .5f, 0, 0, .5f, 0, 0);                        Console.WriteLine("处理第 " + i + " 页");                    }                    if (i < n)                    {                        i++;                         PdfImportedPage page4 = writer.GetImportedPage(reader, i);                        cb.AddTemplate(page4, .5f, 0, 0, .5f, width / 2, 0);                        Console.WriteLine("处理第 " + i + " 页");                    }                    cb.SetRGBColorStroke(255, 0, 0);                    cb.MoveTo(0, height / 2);                    cb.LineTo(width, height / 2);                    cb.Stroke();                    cb.MoveTo(width / 2, height);                    cb.LineTo(width / 2, 0);                    cb.Stroke();                    BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);                    cb.BeginText();                    cb.SetFontAndSize(bf, 14);                    cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "page " + p + " of " + ((n / 4) + (n % 4 > 0 ? 1 : 0)), width / 2, 40, 0);                    cb.EndText();                }                // 关闭文档                document.Close();            }            catch (Exception de)            {                Console.Error.WriteLine(de.Message);                Console.Error.WriteLine(de.StackTrace);            }        }    }}3.运行结果运行程序,结果如图8.63所示。查看创建的PDF文档,如图8.64所示。    图8.63 运行结果                              图8.64 运行结果