iTextSharp高手进来接分
我用一个网络上给出的例子给一个已有的PDF文件加密,加密代
码如下.可见代码中是通过建立新文件,然后给新文件加密后将
要加密内容COPY到新文件中。但那是用这种方式后原PDF文件的
书签锚点(也就是目录)并没有过来。我想问一下用什么方式能
把书签目录也一起复制过来或者有没有方法能够不用复制直接将
要加密的文件进行密码加密的?比较急,高手请帮忙!
   using   System.Text;    
   using   System.IO;    
   using   iTextSharp.text;    
   using   iTextSharp.text.pdf;      
   string   sname=Server.MapPath("temp/")+"\\UML开发教
程.pdf";    
   string   sname1=Server.MapPath("temp/")+"\\UML开发教程
_psd.pdf";          
   PdfReader   reader   =   new   PdfReader(sname);    
   int   n   =   reader.NumberOfPages;       
   Document   document   =   new   Document
(reader.GetPageSizeWithRotation(1));    
   PdfWriter   writer=PdfWriter.GetInstance(document,    
new   FileStream(sname1,   FileMode.Create));    
   writer.SetEncryption(PdfWriter.STRENGTH128BITS,    
"123456",   null, PdfWriter.AllowPrinting);       
   document.Open();    
   PdfContentByte   cb   =   writer.DirectContent;    
   PdfImportedPage   page;    
   int   rotation;    
   int   i   =   0;    
   //   step   4:   we   add   content    
   while   (i   <   n)      
   {    
   i++;    
   document.SetPageSize(reader.GetPageSizeWithRotation
(i));    
   document.NewPage();    
   page   =   writer.GetImportedPage(reader,   i);    
   rotation   =   reader.GetPageRotation(i);    
   if   (rotation   ==   90   ||   rotation   ==   270)        
   {    
   cb.AddTemplate(page,   0,   -1f,   1f,   0,   0,    
reader.GetPageSizeWithRotation(i).Height);    
   }    
   else      
   {    
   cb.AddTemplate(page,   1f,   0,   0,   1f,   0,   0);     
   }          
   }       
   document.Close();    
   writer.Close();    
------解决方案--------------------用过    只是简单的参照提供的实例做...
------解决方案--------------------同1楼用过
只能帮顶
------解决方案--------------------我昨天也在想这个问题,你看有没有拷贝书签的函数
可以交流一下,我最近也在研究这个
sayid@foxmail.com
------解决方案--------------------只能帮顶了
------解决方案--------------------
我在 WinForm 中做过,直接用 PdfStamper 类就可以达到源文件另存,同时增加功能(如加密)的效果。当初看的示例还是 WebForm 中的呢,记得构造函数的第二个参数用的是 MemoryStream,我这里是个 FileStream,并无大碍。
C# code
                PdfReader pdfReader = new PdfReader(textBoxFilename.Text);
                FileStream stream = new FileStream(saveFileDialogPdf.FileName, FileMode.Create);
                PdfStamper pdfStamper = new PdfStamper(pdfReader, stream);
                if (checkBoxHideBar.Checked)
                {
                    pdfStamper.ViewerPreferences = PdfWriter.HideMenubar | PdfWriter.HideToolbar;
                }
                pdfStamper.SetEncryption(PdfWriter.STRENGTH128BITS, textBoxUserPassword.Text, textBoxOwnerPassword.Text, 0);
                pdfStamper.Close();