简体   繁体   English

在C#Windows Forms应用程序中裁剪受密码保护的pdf

[英]Crop password protected pdf in C# Windows Forms application

I need to develop Windows Forms Application where user will select a PDF(password protected) from OpenFileDialog then my application should crop that PDF and save it. 我需要开发Windows窗体应用程序,其中用户将从OpenFileDialog中选择一个PDF(受密码保护),然后我的应用程序应裁剪该PDF并保存。

The PDF Files are of same format and cropping dimension is also fix. PDF文件具有相同的格式,并且裁剪尺寸也已修复。 (How can i get dimension from PDF file?) (如何从PDF文件获取尺寸?)

I am new to itextsharp library can any one help me in this please. 我是itextsharp库的新手,任何人都可以帮我这个忙。

byte[] password = System.Text.ASCIIEncoding.ASCII.GetBytes(pdfPass);
        PdfReader reader1 = new PdfReader(src, password);
        PdfReader reader2 = new PdfReader(src, password);
        int n = reader1.NumberOfPages;
        PdfDictionary pageDict1;
        PdfDictionary pageDict2;
        PdfRectangle rect1;
        PdfRectangle rect2;
        //For Old Aadhar Card
        if (PdfType == "Old")
        {
            rect1 = new PdfRectangle(10, 50, 300, 270);
            rect2 = new PdfRectangle(290, 50, 590, 270);
        }
        else 
        {
            rect1 = new PdfRectangle(10, 50, 500, 270);
            rect2 = new PdfRectangle(290, 50, 590, 270);
        }
        //For New Aadhar Card
        //PdfRectangle rect = new PdfRectangle(10, 40, 570, 270);
        for (int i = 1; i <= n; i++)
        {
            pageDict1 = reader1.GetPageN(i);
            pageDict1.Put(PdfName.CROPBOX, rect1);
        }
        for (int i = 1; i <= n; i++)
        {
            pageDict2 = reader2.GetPageN(i);
            pageDict2.Put(PdfName.CROPBOX, rect2);
        }

        using (MemoryStream ms = new MemoryStream())
        {
            PdfStamper stamper1 = new PdfStamper(reader1, new FileStream(@"D:\testpdfnew1.pdf", FileMode.Create));
            PdfStamper stamper2 = new PdfStamper(reader2, new FileStream(@"D:\testpdfnew2.pdf", FileMode.Create));
            stamper1.Close();
            stamper2.Close();
            reader1.Close();
            reader2.Close();
        }

I wrote above code it works for my question. 我写了上面的代码,它可以解决我的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM