一、设置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);
}
}
}
}