GetImportedPage() public méthode

public GetImportedPage ( PdfReader reader, int pageNumber ) : PdfImportedPage
reader PdfReader
pageNumber int
Résultat PdfImportedPage
       private static void EmbedeIntroPage(Document pdfDoc, PdfWriter writer)
       {
           pdfDoc.NewPage();
           PdfReader reader = new PdfReader(Resources.Intro);
           PdfContentByte cb = writer.DirectContent;
           PdfImportedPage page = writer.GetImportedPage(reader, 1); ;

           //cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(1).Height);
           cb.AddTemplate(page, 0, 0);
       }
        public void OnOpenDocument(PdfWriter writer, Document document)
        {
            _baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);
            _frontPageFont = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED);
            _content = writer.DirectContent;

            if (!string.IsNullOrEmpty(_settings.PageTemplate))
            {
                var reader = new PdfReader(_settings.PageTemplate);
                _template = writer.GetImportedPage(reader, 1);
            }

            WriteFrontPage(writer, document);
        }
        public string AddText(string PathSource, string PathTarget, int x, int y, int selectedPage, String text, int angle, int red, int green, int blue, int fontSize, float opacity)
        {
            try
            {
                iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(PathSource);
                int n = reader.NumberOfPages;

                if (!(selectedPage > 0 && selectedPage <= n))
                {
                    return(String.Format("Invalid Page {0}, the PDF has {1} pages", selectedPage, n));
                }

                iTextSharp.text.Document      document = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1));
                iTextSharp.text.pdf.PdfWriter writer   = iTextSharp.text.pdf.PdfWriter.GetInstance(document, new System.IO.FileStream(PathTarget, System.IO.FileMode.Create));

                document.Open();
                iTextSharp.text.pdf.PdfContentByte  cb = writer.DirectContent;
                iTextSharp.text.pdf.PdfImportedPage page;
                int rotation;
                int i = 0;
                // step 4: we add content
                while (i < n)
                {
                    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);
                    }

                    if (i == selectedPage)
                    {
                        InsertText(cb, fontSize, x, y, text, angle, red, green, blue, opacity);
                    }
                }
                document.Close();
                return("");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
        public string SetSize(string sourceFile, string pSize, string targetPath)
        {
            try
            {
                string file = GetFullPath(sourceFile);
                iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(file);
                int n = reader.NumberOfPages;

                Rectangle pageSize = PageSize.GetRectangle(pSize);

                iTextSharp.text.Document      document = new iTextSharp.text.Document(pageSize);
                iTextSharp.text.pdf.PdfWriter writer   = iTextSharp.text.pdf.PdfWriter.GetInstance(document, new System.IO.FileStream(GetFullPath(targetPath), System.IO.FileMode.Create));
                document.Open();
                iTextSharp.text.pdf.PdfContentByte  cb = writer.DirectContent;
                iTextSharp.text.pdf.PdfImportedPage page;
                int rotation;
                int i = 0;

                reader = new iTextSharp.text.pdf.PdfReader(file);
                n      = reader.NumberOfPages;
                while (i < n)
                {
                    i++;
                    document.SetPageSize(pageSize);
                    document.NewPage();
                    page     = writer.GetImportedPage(reader, i);
                    rotation = reader.GetPageRotation(i);
                    if (rotation == 90)
                    {
                        cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(i).Height);
                    }
                    else if ((rotation == 270))
                    {
                        cb.AddTemplate(page, 0f, 1f, -1f, 0f, reader.GetPageSizeWithRotation(i).Width, 0f);
                    }
                    else
                    {
                        cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
                    }
                }
                document.Close();
                return("");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
 // based on http://itextsharp.sourceforge.net/examples/Encrypt.cs
 public string ModifyPermissions(string PathSource, string PathTarget, string UserPassword, List <int> Permissons)
 {
     try
     {
         int PDFpermisson = 0;
         foreach (int permisson in Permissons)
         {
             PDFpermisson = PDFpermisson | permisson;
         }
         iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(PathSource);
         int n = reader.NumberOfPages;
         iTextSharp.text.Document      document = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1));
         iTextSharp.text.pdf.PdfWriter writer   = iTextSharp.text.pdf.PdfWriter.GetInstance(document, new System.IO.FileStream(PathTarget, System.IO.FileMode.Create));
         writer.SetEncryption(iTextSharp.text.pdf.PdfWriter.STRENGTH128BITS, UserPassword, null, (int)PDFpermisson);
         // step 3: we open the document
         document.Open();
         iTextSharp.text.pdf.PdfContentByte  cb = writer.DirectContent;
         iTextSharp.text.pdf.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();
         return("");
     }
     catch (Exception e)
     {
         return(e.Message);
     }
 }
 protected override void GenerateDocument(Document doc, DocumentType docType, string addSheet, PdfWriter writer)
 {
     DepartmentOrderDocTableAdapters.DocumentContentTableAdapter ta = new DepartmentOrderDocTableAdapters.DocumentContentTableAdapter();
     IEnumerator iEnum = ta.GetDocumentContentById(docType.DocId, docType.CoId, docType.DeptId).GetEnumerator();
     if (iEnum.MoveNext())
     {
         DepartmentOrderDoc.DocumentContentEntityRow docContent = (DepartmentOrderDoc.DocumentContentEntityRow)iEnum.Current;
         if (docContent.file_contents != null && docContent.file_contents.Length > 0)
         {
             PdfContentByte pdfContentByte = writer.DirectContent;
             PdfReader reader = new PdfReader(docContent.file_contents);
             for (int page = 1; page <= reader.NumberOfPages; page++)
             {
                 doc.NewPage();
                 PdfImportedPage importedPage = writer.GetImportedPage(reader, page);
                 pdfContentByte.AddTemplate(importedPage, 0, 0);
             }
         }
     }
 }
Exemple #7
0
        }//print

        #region private Func


        /// <summary> 合併PDF檔 </summary>
        /// <param name="fileList">欲合併PDF檔之List(byte[])(一筆以上)</param>
        /// <returns>byte[]</returns>
        private byte[] MergePDFFiles(List <byte[]> fileList)
        {
            string actionName = "MergePDFFiles";

            byte[]    result = null;
            PdfReader reader = null;

            iTextSharp.text.Document document = new iTextSharp.text.Document();
            try
            {
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    //creating a sample Document
                    iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, ms);
                    document.Open();
                    PdfContentByte  cb = writer.DirectContent;
                    PdfImportedPage newPage;
                    foreach (byte[] file in fileList)
                    {
                        reader = new PdfReader(file);
                        int iPageNum = reader.NumberOfPages;
                        for (int j = 1; j <= iPageNum; j++)
                        {
                            document.NewPage();
                            newPage = writer.GetImportedPage(reader, j);
                            cb.AddTemplate(newPage, 0, 0);
                        }
                    }
                    document.Close();
                    document.Dispose();
                    reader.Close();
                    reader.Dispose();
                    result = ms.ToArray();
                }
            }
            catch (Exception ex)
            {
                LogTool.SaveLogMessage(ex, actionName, this.csName);
            }
            return(result);
        }
        public byte[] SetMetadati(System.IO.MemoryStream inputPdf, IDictionary <string, string> md)
        {
            inputPdf.Position = 0;
            iTextSharp.text.pdf.PdfReader prd   = new iTextSharp.text.pdf.PdfReader(inputPdf);
            iTextSharp.text.Rectangle     psize = prd.GetPageSize(1);
            Document doc = new Document(psize, 50, 50, 50, 70);

            System.IO.MemoryStream output = new System.IO.MemoryStream();
            output.Position = 0;

            iTextSharp.text.pdf.PdfWriter wr = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, output);
            doc.AddAuthor(md["author"]);
            doc.AddCreator(md["creator"]);
            doc.AddSubject(md["subject"]);
            wr.SetTagged();

            doc.Open();

            /*
             * EndPage pageEvent = new EndPage();
             * pageEvent.CIU = md["ciu"];
             * pageEvent.IDUfficio = md["id_ufficio"];
             * pageEvent.DocumentDate = md["data_emissione"];
             *
             * wr.PageEvent = pageEvent;
             */
            //wr.SetPdfVersion(PdfWriter.PDF_VERSION_1_7);
            wr.SetPdfVersion(PdfWriter.PDF_VERSION_1_6);
            PdfContentByte content = wr.DirectContent;

            for (int i = 1; i <= prd.NumberOfPages; i++)
            {
                doc.NewPage();
                PdfImportedPage pg = wr.GetImportedPage(prd, i);
                content.AddTemplate(pg, 0, 0);
            }
            doc.Close();
            return(output.ToArray());
        }
        private void WriteFrontPage(PdfWriter writer, Document document)
        {
            if (!string.IsNullOrEmpty(_settings.FrontPageTemplate))
            {
                document.NewPage();

                // Write Generated On
                string title = _settings.GetDocumentTitle();

                _content.BeginText();
                _content.SetFontAndSize(_frontPageFont, HeadingFontSize);
                _content.SetTextMatrix(GetFrontPageTextXPosition(title, writer), GetFrontPageTextYPosition(writer));
                _content.ShowText(title);
                _content.EndText();

                var reader = new PdfReader(_settings.FrontPageTemplate);
                writer.DirectContentUnder.AddTemplate(writer.GetImportedPage(reader, 1), 0, 0);
                _skipPageFooter = true;
            }
        }
        // based on example http://itextsharp.sourceforge.net/examples/Concat.cs
        public string ConcatFilesOld(List <string> files, string targetPath)
        {
            try
            {
                if (files.Count > 0)
                {
                    string file = files[0];
                    iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(GetFullPath(file));
                    int n = reader.NumberOfPages;
                    iTextSharp.text.Document      document = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1));
                    iTextSharp.text.pdf.PdfWriter writer   = iTextSharp.text.pdf.PdfWriter.GetInstance(document, new System.IO.FileStream(targetPath, System.IO.FileMode.Create));

                    reader.Close();
                    document.Open();
                    iTextSharp.text.pdf.PdfContentByte  cb = writer.DirectContent;
                    iTextSharp.text.pdf.PdfImportedPage page;
                    int rotation;
                    foreach (string sourceFile in files)
                    {
                        int i = 0;
                        iTextSharp.text.pdf.PdfReader reader2 = new iTextSharp.text.pdf.PdfReader(GetFullPath(sourceFile));
                        n = reader2.NumberOfPages;
                        while (i < n)
                        {
                            i++;
                            document.SetPageSize(reader2.GetPageSizeWithRotation(i));
                            document.NewPage();
                            page     = writer.GetImportedPage(reader2, i);
                            rotation = reader2.GetPageRotation(i);
                            if (rotation == 90)
                            {
                                cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader2.GetPageSizeWithRotation(i).Height);
                            }
                            else if ((rotation == 270))
                            {
                                cb.AddTemplate(page, 0f, 1f, -1f, 0f, reader2.GetPageSizeWithRotation(i).Width, 0f);
                            }
                            else
                            {
                                cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
                            }
                        }

                        writer.FreeReader(reader2);
                        reader2.Close();
                    }

                    if (document.IsOpen())
                    {
                        document.CloseDocument();
                        document.Close();
                    }
                    return("");
                }
                else
                {
                    return("No files to process, use AddFile method");
                }
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Exemple #11
0
 /**
  * Initialize the imported page.
  * @param writer The PdfWriter
  */
 public void UseStationary(PdfWriter writer, byte[] stationary) {
   writer.PageEvent = new TemplateHelper(this);
   PdfReader reader = new PdfReader(stationary);
   page = writer.GetImportedPage(reader, 1);
 }
Exemple #12
0
        public Boolean MergePdfFiles(String[] pdfFiles, String outputPath)
        {
            //                                     Optional ByVal authorName As String = "", _
            //                                     Optional ByVal creatorName As String = "", _
            //                                     Optional ByVal subject As String = "", _
            //                                     Optional ByVal title As String = "", _
            //                                     Optional ByVal keywords As String = "")
            Boolean result   = false;
            int     pdfCount = 0;                        //'total input pdf file count
            int     f        = 0;                        //'pointer to current input pdf file
            string  fileName = String.Empty;             // 'current input pdf filename

            iTextSharp.text.pdf.PdfReader reader = null;
            int pageCount = 0;                                //'cureent input pdf page count

            iTextSharp.text.Document           pdfDoc = null; //   'the output pdf document
            iTextSharp.text.pdf.PdfWriter      writer = null;
            iTextSharp.text.pdf.PdfContentByte cb     = null;
            //    'Declare a variable to hold the imported pages
            iTextSharp.text.pdf.PdfImportedPage page = null;
            int  rotation         = 0;
            bool unethicalreading = false;

            //    'Declare a font to used for the bookmarks
            iTextSharp.text.Font bookmarkFont = iTextSharp.text.FontFactory.GetFont(iTextSharp.text.FontFactory.HELVETICA, 12, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.BLUE);

            // Try
            pdfCount = pdfFiles.Length;
            if (pdfCount > 1)
            {
                //            'Open the 1st pad using PdfReader object
                fileName = pdfFiles[f];
                reader   = new iTextSharp.text.pdf.PdfReader(fileName);
                // reader.
                iTextSharp.text.pdf.PdfReader.unethicalreading = unethicalreading;
                //            'Get page count
                pageCount = reader.NumberOfPages;

                //            'Instantiate an new instance of pdf document and set its margins. This will be the output pdf.
                //            'NOTE: bookmarks will be added at the 1st page of very original pdf file using its filename. The location
                //            'of this bookmark will be placed at the upper left hand corner of the document. So you'll need to adjust
                //            'the margin left and margin top values such that the bookmark won't overlay on the merged pdf page. The
                //            'unit used is "points" (72 points = 1 inch), thus in this example, the bookmarks' location is at 1/4 inch from
                //            'left and 1/4 inch from top of the page.

                pdfDoc = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1), 18, 18, 18, 18);
                //            'Instantiate a PdfWriter that listens to the pdf document
                writer = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, new System.IO.FileStream(outputPath, System.IO.FileMode.Create));    //added system
                //            'Set metadata and open the document
                // With pdfDoc
                pdfDoc.AddAuthor("");
                pdfDoc.AddCreationDate();
                pdfDoc.AddCreator("");
                pdfDoc.AddProducer();
                pdfDoc.AddSubject("");
                pdfDoc.AddTitle("");
                pdfDoc.AddKeywords("");
                pdfDoc.Open();
                //  End With
                //            'Instantiate a PdfContentByte object
                cb = writer.DirectContent;
                //            'Now loop thru the input pdfs
                while (f < pdfCount)
                {
                    //                'Declare a page counter variable
                    int i = 0;
                    //                'Loop thru the current input pdf's pages starting at page 1
                    while (i < pageCount)
                    {
                        i += 1;
                        //                    'Get the input page size
                        pdfDoc.SetPageSize(reader.GetPageSizeWithRotation(i));
                        //                    'Create a new page on the output document
                        pdfDoc.NewPage();

                        //                    'If it is the 1st page, we add bookmarks to the page
                        //                    'If i = 1 Then
                        //                    '    'First create a paragraph using the filename as the heading
                        //                    '    Dim para As New iTextSharp.text.Paragraph(IO.Path.GetFileName(fileName).ToUpper(), bookmarkFont)
                        //                    '    'Then create a chapter from the above paragraph
                        //                    '    Dim chpter As New iTextSharp.text.Chapter(para, f + 1)
                        //                    '    'Finally add the chapter to the document
                        //                    '    pdfDoc.Add(chpter)
                        //                    'End If

                        //                    'Now we get the imported page


                        page = writer.GetImportedPage(reader, i);
                        //                    'Read the imported page's rotation
                        rotation = reader.GetPageRotation(i);
                        //                    'Then add the imported page to the PdfContentByte object as a template based on the page's rotation
                        if (rotation == 90)
                        {
                            cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height);
                        }
                        else
                        if (rotation == 270)
                        {
                            cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, reader.GetPageSizeWithRotation(i).Width + 60, -30);
                        }
                        else
                        {
                            cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0);
                        }
                    } //End While 2

                    //                'Increment f and read the next input pdf file
                    f += 1;
                    if (f < pdfCount)
                    {
                        fileName  = pdfFiles[f];
                        reader    = new iTextSharp.text.pdf.PdfReader(fileName);
                        pageCount = reader.NumberOfPages;
                    } //   End If
                }        //end while 1
                //            'When all done, we close the document so that the pdfwriter object can write it to the output file
                pdfDoc.Close();
                result = true;
            }//        End If Principal
             //    Catch ex As Exception
             //        Throw New Exception(ex.Message)
             //    End Try

            return(result);
        }
Exemple #13
0
        protected override void BuildFile()
        {
            if (TemplateStream != null)
            {
                readerFileTemplate = new PdfReader(TemplateStream);
                document = new Document(readerFileTemplate.GetPageSize(1));
                writer = PdfWriter.GetInstance(document, BufferStream);
                document.Open();

                var page = writer.GetImportedPage(readerFileTemplate, 1);
                Template = page;
                writer.DirectContent.AddTemplate(page, 0, 0);
            }
            else
            {
                var size = IPageSize.GetRectangle(DocumentPageSize.ToString());
                if (IsPageRotate) size = size.Rotate();
                document = DocumentMargin == Margin.Empty ? new Document(size) :
                        new Document(size, DocumentMargin.Left, DocumentMargin.Right, DocumentMargin.Top, DocumentMargin.Bottom);
                writer = PdfWriter.GetInstance(document, BufferStream);
                document.Open();
                AddEmpty();
            }

            Height = document.PageSize.Height;
            Width = document.PageSize.Width;
        }
Exemple #14
0
        public ActionResult DocuXmlPDF(int idCab)
        {
            try
            {
                var Org_XML = _db.Documento.FirstOrDefault(z => z.id_cab == idCab).xml_dte.ToString();
                var html    = helper.XmlFo4Pdf(Org_XML.Replace("xmlns=\"http://www.sii.cl/SiiDte\" ", "").Replace("\r\n", ""));

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(Org_XML);
                var          Ted = doc.GetElementsByTagName("TED")[0].OuterXml;
                MemoryStream ms  = new MemoryStream();

                // Convierto el HTML en PDF
                ConverterProperties properties = new ConverterProperties();
                properties.SetBaseUri("http://gs.pso.cl/Master/DocuXml?idCab=4923");
                HtmlConverter.ConvertToPdf(html, ms, properties);

                // Genero el PDF417
                MemoryStream msIMG = new MemoryStream();
                iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(ms.ToArray());
                PdfStamper stamper = new PdfStamper(reader, msIMG);
                int        n       = reader.NumberOfPages;
                var        msIMG2  = GenerateBarCodeZXing(Ted);
                //Inserto la imagen del PDF417
                iTextSharp.text.Image QR = iTextSharp.text.Image.GetInstance(msIMG2, ImageFormat.Png);
                QR.SetAbsolutePosition(10, 200);
                stamper.GetOverContent(1).AddImage(QR);
                stamper.FormFlattening = false;



                //msIMG.Flush(); // Don't know if this is necessary
                //msIMG.Position = 0;
                //msIMG.Close();

                //iTextSharp.text.pdf.PdfReader reader2 = new iTextSharp.text.pdf.PdfReader(msIMG.ToArray());

                MemoryStream msMargen = new MemoryStream();
                //WriterProperties writerProperties = new WriterProperties();
                Document doc2 = new Document(iTextSharp.text.PageSize.LETTER, 200, 0, 100, 0);
                iTextSharp.text.pdf.PdfWriter pdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(doc2, msMargen);



                doc2.Open();
                pdfWriter.Open();
                PdfContentByte cb = pdfWriter.DirectContent;

                var page = pdfWriter.GetImportedPage(reader, 1);

                cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);

                //pdfWriter.SetMargins(0, 0, 0, 0);
                //pdfWriter.Close();

                //ms.Close();
                //msIMG.Close();
                doc2.Close();
                stamper.Close();
                reader.Close();

                return(File(msIMG.ToArray(), System.Net.Mime.MediaTypeNames.Application.Pdf));
            }
            catch (Exception)
            {
                return(null);
            }
        }
 public Image GetImage(PdfWriter writer)
 {
     var reader = new PdfReader(source);
     var pdfImportedPage = writer.GetImportedPage(reader, 1);
     return Image.GetInstance(pdfImportedPage);
 }