C#操作Office文件(九)

一、设置PDF文档的默认格式

        PDF文档除了能够以默认的格式进行显示以外,还有多种其他的显示格式,这些显示格式可以在创建PDF文档时进行设置。

添加对iTextSharp的引用

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

namespace  CreatePdfOtherDemo

{

     class  Program

     {

           static  void  Main(string[]  args)

           {

                Console.WriteLine("添加其他内容");

                //声明文档变量

                Document  document=new  Document();

                try

                {

                     //创建几个PDF文档

                     PdfWriter  writerA=PdfWriter.GetInstance(document,new FileStream(@"c:\Other1.pdf",FileMode.Create));

                     writerA.ViewerPreferences=PdfWriter.PageLayoutTwoColumnLeft;

                     PdfWriter  writerB=PdfWriter.GetInstance(document,new FileStream(@"c:\Other2.pdf",FileMode.Create));

                     writerB.ViewerPreferences=PdfWriter.HideMenubar | PdfWriter.HideToolbar;

                     PdfWriter  writerC=PdfWriter.GetInstance(document,new FileStream(@"c:\Other3.pdf",FileMode.Create));

                     writerC.ViewerPreferences=PdfWriter.PageLayoutTwoColumnLeft | PdfWriter.PageModeFullScreen  |  PdfWriter.NonFullScreenPageModeUseThumbs;

                     //添加页眉

                    HeaderFooter  header=new  HeaderFooter(new Phrase("This  is a header"),false);

                    document.Header=header;

                    //打开文档

                    document.Open();

                    //转换为横向A4幅面

                   document.SetPageSize(PageSize.A4.Rotate());

                   //添加页脚

                   HeaderFooter  footer=new HeaderFooter(new Phrase("This is page:"),true);

                   document.Footer=footer;

                  //向页面上添加内容

                 //。。。。。。。同上一节

           }

     }

}


二、读取PDF文档

本节介绍如何从已有的PDF文档中读取现有的内容

添加对iTextSharp的引用

using  System;

using  System.IO;

using  iTextSharp.text;

using  iTextSharp.text.pdf;

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,width/2,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,width/2,height/2);

                           Console.WriteLine("处理第"+i+"页");

                           }

                            if(i<n)

                           {

                                    i++;

                           PdfImportedPage  page4=writer.GetImportedPage(reader,i);

                           cb.AddTemplate(page4, .5f,0,0, .5f,width/2,height/2);

                           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.WriterLine(de.StackTrace);

               }

        }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值