Inheritance: IPdfViewerPreferences, IDisposable
Example #1
7
        private static String GetPdfContent(string path)
        {
            var text = new StringBuilder();

            using (var pdfReader = new PdfReader(path))
            {
                for (var page = 1; page <= pdfReader.NumberOfPages; page++)
                {
                    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); //  LocationTextExtractionStrategy();

                    var currentText = PdfTextExtractor.GetTextFromPage(
                        pdfReader,
                        page,
                        strategy);

                    currentText =
                        Encoding.UTF8.GetString(Encoding.Convert(
                            Encoding.Default,
                            Encoding.UTF8,
                            Encoding.Default.GetBytes(currentText)));

                    text.Append(currentText);
                }
            }
            return text.ToString();
        }
        /// <summary>
        /// Extract a single page from PDF file.
        /// </summary>
        /// <param name="sourceFile">The source file.</param>
        /// <param name="outputFile">The output file.</param>
        /// <param name="pageNumber">The specific page number.</param>
        public static void ExtractPage(string sourceFile, string outputFile, int pageNumber)
        {
            try
            {
                PdfReader reader = new PdfReader(sourceFile);
                if (pageNumber > reader.NumberOfPages)
                {
                    Console.WriteLine("This page number is out of reach.");
                    return;
                }

                Document document = new Document();
                PdfCopy pdfCopy = new PdfCopy(document, new FileStream(outputFile, FileMode.Create));
                document.Open();

                PdfImportedPage importedPage = pdfCopy.GetImportedPage(reader, pageNumber);
                pdfCopy.AddPage(importedPage);

                document.Close();
                reader.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #3
3
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            string filepath;
            dlg.Filter = "PDF Files(*.PDF)|*.PDF|All Files(*.*)|*.*";
            if(dlg.ShowDialog()==DialogResult.OK)
            {
                filepath = dlg.FileName.ToString();
            
            string strtext = string.Empty;
            try
            {
                PdfReader reader = new PdfReader(filepath);
                for(int page=1;page<=reader.NumberOfPages;page++)
                {
                    ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
                    String s = PdfTextExtractor.GetTextFromPage(reader, page, its);
                    s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s)));
                    strtext = strtext + s;
                    richTextBox1.Text = strtext;

                }
                reader.Close();
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        
           }
            
        }
        public static string ExtractTextFromPdf(string path)
        {
            ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();

            using (PdfReader reader = new PdfReader(path))
            {
                StringBuilder text = new StringBuilder();

                for (int page = 1; page <= reader.NumberOfPages; page++)
                {
                    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();

                    string currentText = PdfTextExtractor.GetTextFromPage(reader, page, strategy);

                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }

                System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test.txt");
                file.WriteLine(text);

                file.Close();

                return text.ToString();
            }
        }
Example #5
1
        public static byte[] MergePdfs(IEnumerable<byte[]> inputFiles)
        {
            MemoryStream outputStream = new MemoryStream();
            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, outputStream);
            document.Open();
            PdfContentByte content = writer.DirectContent;

            foreach (byte[] input in inputFiles)
            {
                PdfReader reader = new PdfReader(input);
                for (int i = 1; i <= reader.NumberOfPages; i++)
                {
                    document.SetPageSize(reader.GetPageSizeWithRotation(i));
                    document.NewPage();
                    PdfImportedPage page = writer.GetImportedPage(reader, i);
                    int rotation = reader.GetPageRotation(i);
                    if (rotation == 90 || rotation == 270)
                    {
                        content.AddTemplate(page, 0, -1f, 1f, 0, 0,
                            reader.GetPageSizeWithRotation(i).Height);
                    }
                    else
                    {
                        content.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
                    }
                }
            }

            document.Close();

            return outputStream.ToArray();
        }
        // 1. save XFA form XML stream to a file to inspect form fields
        public void SaveDatasetsXml(string readerPath)
        {
            using (var reader = new PdfReader(readerPath))
            {
                var xfa = new XfaForm(reader);
                XmlDocument doc = xfa.DomDocument;
                //// remove namespace so XML is easier to read
                //if (!string.IsNullOrEmpty(doc.DocumentElement.NamespaceURI))
                //{
                //    doc.DocumentElement.SetAttribute("xmlns", "");
                //    var temp = new XmlDocument();
                //    temp.LoadXml(doc.OuterXml);
                //    doc = temp;
                //}

                var sb = new StringBuilder();
                var xSettings = new XmlWriterSettings() 
                {
                    Indent = true,
                    WriteEndDocumentOnClose = true
                };
                using (var writer = XmlWriter.Create(sb, xSettings))
                {
                    doc.Save(writer);
                }
                File.WriteAllText(GetXmlPath(readerPath), sb.ToString());
            }
        }
        // http://stackoverflow.com/questions/13618847/itextsharp-combining-two-pdf-documents-into-one

        public string ConcatFiles(List <string> files, string targetPath)
        {
            try
            {
                using (var ms = new System.IO.FileStream(GetFullPath(targetPath), System.IO.FileMode.Create))
                {
                    using (Document document = new Document())
                    {
                        using (PdfCopy copy = new PdfCopy(document, ms))
                        {
                            document.Open();
                            int n;
                            foreach (string sourceFile in files)
                            {
                                //PdfReader.unethicalreading = true; // http://stackoverflow.com/questions/17666577/opening-password-protected-pdf-file-with-itextsharp
                                //byte[] password = System.Text.ASCIIEncoding.ASCII.GetBytes("Secretinfo");
                                iTextSharp.text.pdf.PdfReader reader2 = new iTextSharp.text.pdf.PdfReader(GetFullPath(sourceFile) /*, password*/);
                                n = reader2.NumberOfPages;
                                for (int page = 0; page < n;)
                                {
                                    copy.AddPage(copy.GetImportedPage(reader2, ++page));
                                }
                                // close doc
                                reader2.Close();
                            }
                        }
                    }
                    return("");
                }
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Example #8
0
        /// <summary>
        /// réorganise les pages d'un document pdf selon la liste d'indices de pages
        /// <param name="inputFile">fichier à ordonner</param>
        /// <param name="indexList">pages dans l'ordre voulu</param>
        /// </summary>
        public static void DoReorder(string inputFile, int[] indexList)
        {
            //var inputFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Test.pdf");
            //var output = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Output.pdf");
            var output = Path.Combine(ServiceCfg.OutputFolderPath, Path.GetFileName(inputFile));

            //Bind a reader to our input file
            var reader = new PdfReader(inputFile);

            //Create our output file, nothing special here
            using (FileStream fs = new FileStream(output, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (Document doc = new Document(reader.GetPageSizeWithRotation(1)))
                {
                    //Use a PdfCopy to duplicate each page
                    using (PdfCopy copy = new PdfCopy(doc, fs))
                    {
                        doc.Open();
                        copy.SetLinearPageMode();
                        for (int i = 1; i <= reader.NumberOfPages; i++)
                        {
                            copy.AddPage(copy.GetImportedPage(reader, i));
                        }
                        //Reorder pages
                        copy.ReorderPages(indexList);
                        doc.Close();
                    }
                }
            }
        }
Example #9
0
        /* ----------------------------------------------------------------- */
        ///
        /// ValidatePDF
        ///
        /// <summary>
        /// 生成された PDF が有効なものかどうかをチェックします。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private void ValidatePdf(UserSetting setting)
        {
            try
            {
                iTextSharp.text.pdf.PdfReader reader = null;
                if (setting.Password == string.Empty && setting.Permission.Password == string.Empty)
                {
                    reader = new iTextSharp.text.pdf.PdfReader(setting.OutputPath);
                }
                else
                {
                    var password = (setting.Permission.Password != string.Empty) ? setting.Permission.Password : setting.Password;
                    reader = new iTextSharp.text.pdf.PdfReader(setting.OutputPath, Encoding.UTF8.GetBytes(password));
                }

                // 文書プロパティのチェック
                var title = reader.Info.ContainsKey("Title") ? reader.Info["Title"] : string.Empty;
                Assert.AreEqual(setting.Document.Title, title, String.Format("{0}: title unmatched", title));
                var author = reader.Info.ContainsKey("Author") ? reader.Info["Author"] : string.Empty;
                Assert.AreEqual(setting.Document.Author, author, String.Format("{0}: author unmatched", author));
                var subject = reader.Info.ContainsKey("Subject") ? reader.Info["Subject"] : string.Empty;
                Assert.AreEqual(setting.Document.Subtitle, subject, String.Format("{0}: subject unmatched", subject));
                var keywords = reader.Info.ContainsKey("Keywords") ? reader.Info["Keywords"] : string.Empty;
                Assert.AreEqual(setting.Document.Keyword, keywords, String.Format("{0}: keywords unmatched", keywords));

                reader.Close();
            }
            catch (Exception err)
            {
                Assert.Fail(err.ToString());
            }
        }
Example #10
0
        public static void Test_GetPdfText_05(String file)
        {
            string outputFile = zpath.PathSetFileNameWithExtension(file, Path.GetFileNameWithoutExtension(file) + "_blocks.txt");

            Trace.WriteLine("export pdf file \"{0}\" to \"{1}\"", file, outputFile);
            FileStream   fs = new FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.Read);
            StreamWriter sw = new StreamWriter(fs, Encoding.Default);

            sw.WriteLine("export pdf text blocks of \"{0}\"", file);
            sw.WriteLine();
            //_tr.WriteLine("read pdf file \"{0}\"", file);
            iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(file);
            // Error	8	'LocationTextExtractionStrategy' is an ambiguous reference between 'iTextSharp.text.pdf.parser.LocationTextExtractionStrategy' and 'Test_iTextSharp.LocationTextExtractionStrategy'	C:\pib\dropbox\pbeuz\Dropbox\dev\project\Source\Source_01\Source\Test\Test_iTextSharp\Test_iTextSharp_f.cs	649	13	Source_01
            iTextSharp.text.pdf.parser.LocationTextExtractionStrategy strategy = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
            for (int page = 1; page <= reader.NumberOfPages; page++)
            {
                sw.WriteLine("================ page {0} ================", page);
                //GetTextFromPage(reader, page, strategy);
                Test_iTextSharp.PdfTools.ProcessContentPage(reader, page, strategy);
                PrintTextBlocks(sw, strategy.textBlocks);
                sw.WriteLine();
            }
            //string s = strategy.GetResultantText();
            //_tr.WriteLine("LocationTextExtractionStrategy()");
            reader.Close();
            //List<TextChunk> locationalResult = strategy.locationalResult;
            //string s = GetResultantText(locationalResult);
            //_tr.WriteLine(s);
            //PrintResultantText(locationalResult);
            sw.Close();
        }
Example #11
0
        //PDF
        private void button2_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog ofd = new OpenFileDialog()
            {
                Filter = "PDF files|*.pdf", ValidateNames = true, Multiselect = false
            })
            {
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(ofd.FileName);
                        StringBuilder sb  = new StringBuilder();
                        string        act = "";
                        for (int i = 1; i <= reader.NumberOfPages; ++i)
                        {
                            sb.Append(PdfTextExtractor.GetTextFromPage(reader, i));
                        }
                        act = sb.ToString();

                        solve(act);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
Example #12
0
        /// <summary>
        /// Une los manifiesto de una determinada
        /// </summary>
        /// <param name="c"></param>
        public void UnirPDF(CargaSucursal c)
        {
            Document doc = new Document();

            try
            {
                ManipulacionPDF m     = new ManipulacionPDF();
                string[]        final = new string[c.Manifiesto.Count];
                int             i     = 0;

                foreach (ManifiestoSucursalCarga man in c.Manifiesto)
                {
                    final[i] = @"\\10.120.131.100\Manifiestos\SUC-" + man.ID.ToString() + ".pdf";
                    i++;
                }

                //m.MergePdfFiles(final, @"\\10.120.131.100\ECARD\Final_Validacion\FINALSUCURSAL-" + c.ID + ".pdf");

                string rutafinal = @"\\10.120.131.100\ECARD\Final_Validacion\FINALSUCURSAL-" + c.ID + ".pdf";


                FileStream fs = new FileStream(rutafinal, FileMode.Create, FileAccess.Write, FileShare.None);

                PdfCopy copy = new PdfCopy(doc, fs);
                doc.Open();

                iTextSharp.text.pdf.PdfReader reader = null;
                iTextSharp.text.pdf.PdfReader.unethicalreading = true;


                int n;

                foreach (string file in final)
                {
                    reader = new PdfReader(file);
                    iTextSharp.text.pdf.PdfReader.unethicalreading = true;
                    n = reader.NumberOfPages;

                    int page = 0;

                    while (page < n)
                    {
                        page++;
                        copy.AddPage(copy.GetImportedPage(reader, page));
                    }

                    copy.FreeReader(reader);

                    reader.Close();
                }
            }
            catch (Excepcion ex)
            {
                doc.Close();
            }
            finally
            {
                doc.Close();
            }
        }
Example #13
0
        /// <summary>
        /// Counts the number of pages to split
        /// </summary>
        /// <param name="files">The list of files to split</param>
        private void ProcessNbPages(string[] files)
        {
            this.nbpages       = 0;
            this.progressPages = 0;
            if (files == null)
            {
                return;
            }

            this.statut.Text = "Début du calcul du nombre total de pages";
            this.statut.Refresh();
            foreach (string filepath in files)
            {
                PdfReader reader    = null;
                int       pageCount = 0;
                string    dirPath   = Path.GetDirectoryName(filepath);
                System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                reader = new iTextSharp.text.pdf.PdfReader(filepath);
                reader.RemoveUnusedObjects();
                pageCount     = reader.NumberOfPages;
                this.nbpages += pageCount;
            }

            this.progressBar1.Minimum = 1;
            this.progressBar1.Maximum = this.nbpages;
            this.progressBar1.Step    = 1;
            this.label1.Text          = "0 / " + this.nbpages;
            this.label1.Refresh();
            this.statut.Text = "Fin du calcul du nombre total de pages";
            this.statut.Refresh();
        }
        /// <summary>
        /// 根据pdf模板写入数据生成新的pdf
        /// </summary>
        /// <param name="saveFile">保存的新pdf路径</param>
        /// <param name="sourceFile">原pdf路径</param>
        public static void AddNewPdf(string saveFile, string sourceFile)
        {
            //写入新的pdf地址
            //sourceFile = @"C:\Users\Administrator\Desktop\ABC\temp.pdf";
            //sourceFile = @"C:\Users\Administrator\Desktop\temp123.pdf";
            iTextSharp.text.pdf.PdfDocument document = new iTextSharp.text.pdf.PdfDocument();
            //读取的源pdf文件
            iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(sourceFile);
            PdfStamper pdfStamper    = new PdfStamper(pdfReader, new FileStream(saveFile, FileMode.OpenOrCreate));
            AcroFields pdfFormFields = pdfStamper.AcroFields;

            pdfStamper.FormFlattening = true;
            //BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //BaseFont simheiBase = BaseFont.CreateFont(@"C:\Windows\Fonts\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
            BaseFont simheiBase = BaseFont.CreateFont(@"C:\Windows\Fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

            pdfFormFields.AddSubstitutionFont(simheiBase);
            Dictionary <string, string> para = new Dictionary <string, string>();

            para.Add($"Numbering", "12369999995");
            for (int i = 1; i < 38; i++)
            {
                para.Add($"Numbering{i}", "12365");
            }
            foreach (KeyValuePair <string, string> parameter in para)
            {
                pdfStamper.AcroFields.SetField(parameter.Key, parameter.Value);
            }
            //pdfStamper.AcroFields.SetField("Names", "李朝强");
            //pdfStamper.AcroFields.SetField("chk", "yes", true);
            pdfStamper.Close();
            pdfReader.Close();
        }
Example #15
0
        public void ConvertToImage(string _rutaPDF, int width, int height)
        {
            iTextSharp.text.pdf.PdfReader reader = null;
            int currentPage = 1;
            int pageCount   = 0;

            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            reader = new iTextSharp.text.pdf.PdfReader(_rutaPDF);
            reader.RemoveUnusedObjects();
            pageCount = reader.NumberOfPages;
            string ext = System.IO.Path.GetExtension(_rutaPDF);

            for (int i = 1; i <= 1; i++)
            {
                iTextSharp.text.pdf.PdfReader reader1 = new iTextSharp.text.pdf.PdfReader(_rutaPDF);
                string outfile = _rutaPDF.Replace((System.IO.Path.GetFileName(_rutaPDF)), (System.IO.Path.GetFileName(_rutaPDF).Replace(".pdf", "") + "_" + i.ToString()) + ext);
                reader1.RemoveUnusedObjects();
                iTextSharp.text.Document    doc    = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(currentPage));
                iTextSharp.text.pdf.PdfCopy pdfCpy = new iTextSharp.text.pdf.PdfCopy(doc, new System.IO.FileStream(outfile, System.IO.FileMode.Create));
                doc.Open();
                for (int j = 1; j <= 1; j++)
                {
                    iTextSharp.text.pdf.PdfImportedPage page = pdfCpy.GetImportedPage(reader1, currentPage);
                    pdfCpy.SetFullCompression();
                    pdfCpy.AddPage(page);
                    currentPage += 1;
                }
                doc.Close();
                pdfCpy.Close();
                reader1.Close();
                reader.Close();
            }
        }
        // samples taken from
        // http://www.c-sharpcorner.com/uploadfile/scottlysle/pdfgenerator_cs06162007023347am/pdfgenerator_cs.aspx
        // http://blog.codecentric.de/en/2010/08/pdf-generation-with-itext/
        public string SetFields(string PathSource, string PathTarget, System.Object myFields)
        {
            try
            {
                GeneXus.Utils.GXProperties Fields = (GeneXus.Utils.GXProperties)myFields;
                // create a new PDF reader based on the PDF template document
                iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(PathSource);

                iTextSharp.text.pdf.PdfStamper pdfStamper = new iTextSharp.text.pdf.PdfStamper(pdfReader, new System.IO.FileStream(PathTarget, System.IO.FileMode.Create));

                GeneXus.Utils.GxKeyValuePair item = Fields.GetFirst();
                while (item != null)
                {
                    pdfStamper.AcroFields.SetField(item.Key, item.Value);
                    item = Fields.GetNext();
                }

                // flatten the form to remove editting options, set it to false to leave the form open to subsequent manual edits
                pdfStamper.FormFlattening = false;

                // close the pdf
                pdfStamper.Close();
                pdfReader.Close();
                return("");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Example #17
0
        public static void ReplaceCoverPDF(string InFile, string InCover, string OutFile)
        {
            if (CoverFunction == 0)
            {
                List <string> Files = new List <string>
                {
                    InFile,
                    InCover
                };
                Files.Sort();
                MergePDF(Files, OutFile);
                return;
            }

            LogHelper.Log("Replace the cover to the original file", LogType.Successful);

            FileStream stream = null;
            Document   doc    = null;
            PdfCopy    pdf    = null;

            try
            {
                stream = new FileStream(OutFile, FileMode.Create);
                doc    = new Document();
                pdf    = new PdfCopy(doc, stream);

                doc.Open();

                //Aggiungo la cover
                iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(InCover);
                int coverPage = reader.NumberOfPages;

                LogHelper.Log($"Add the cover: {InCover} of {coverPage} pages");
                pdf.AddDocument(reader);
                reader.Close();

                //Aggiungo il resto del documento
                reader = new iTextSharp.text.pdf.PdfReader(InFile);
                int count = reader.NumberOfPages;
                coverPage++;
                List <int> pages = Enumerable.Range(coverPage, count - coverPage + 1).ToList();

                LogHelper.Log($"Add the file: {InFile} from Page: {coverPage}");
                pdf.AddDocument(reader, pages);

                reader.Close();

                AddBookmarks(InFile, pdf);
            }
            catch (Exception e)
            {
                LogHelper.Log(e.ToString(), LogType.Error);
            }
            finally
            {
                pdf?.Dispose();
                doc?.Dispose();
                stream?.Dispose();
            }
        }
Example #18
0
        public static void Test_GetPdfText_04(string file)
        {
            string outputFile = zpath.PathSetFileNameWithExtension(file, Path.GetFileNameWithoutExtension(file) + "_text.txt");

            _tr.WriteLine("export pdf file \"{0}\" to \"{1}\"", file, outputFile);
            FileStream   fs = new FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.Read);
            StreamWriter sw = new StreamWriter(fs, Encoding.Default);

            sw.WriteLine("export pdf text of \"{0}\"", file);
            sw.WriteLine();
            iTextSharp.text.pdf.PdfReader  reader   = new iTextSharp.text.pdf.PdfReader(file);
            LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();

            for (int page = 1; page <= reader.NumberOfPages; page++)
            {
                sw.WriteLine("================ page {0} ================", page);
                //string s = GetTextFromPage(reader, 1, strategy);
                //GetTextFromPage(reader, page, strategy);
                Test_iTextSharp.PdfTools.ProcessContentPage(reader, page, strategy);
                string s = strategy.GetResultantText();
                sw.Write(s);
                sw.WriteLine();
            }
            //_tr.WriteLine("LocationTextExtractionStrategy()");
            //_tr.WriteLine(s);
            reader.Close();
            sw.Close();
        }
Example #19
0
        private void btn_OpenFile(object sender, RoutedEventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();

            fileDialog.InitialDirectory = "c:\\";
            fileDialog.Title            = "Windows Pdf Splitter";
            fileDialog.Filter           = "PDF Files (*.pdf*)|*.pdf*";
            fileDialog.FilterIndex      = 1;
            fileDialog.Multiselect      = false;

            string filePath = Path.GetDirectoryName(fileDialog.FileName);

            if (fileDialog.ShowDialog() == true)
            {
                PDFSelectorPath.Text = filePath + fileDialog.FileName;

                String filename = fileDialog.FileName;
                globalFile = filename;

                if (File.Exists(filename))
                {
                    byte[] pdfFile = File.ReadAllBytes(filename);
                    iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(pdfFile);
                    int numberOfPages = reader.NumberOfPages;
                    pdfCount.Text = numberOfPages.ToString();
                }
            }
        }
Example #20
0
        /*
         * Explodes a pdf
         * */
        public static List<string> explodePdf(String inFile, String extractor, String repair)
        {

            FileInfo f = new FileInfo(inFile);
            inFile = f.FullName;
            List<string> theParts = new List<string>();

            try
            {
                CMDUtil cmd = new CMDUtil();
                UtilManager.repairPDF(inFile, repair);
                PdfReader reader = new PdfReader(inFile);
                int n = reader.NumberOfPages;
                String str;
                cmd.explode(inFile, extractor, "1-" + n);
                for (int i = 0; i < n; i++)
                {
                    str = f.FullName.Replace(".pdf", "-x" + (i + 1) + ".pdf");
                    UtilManager.repairPDF(str, repair);
                    theParts.Add(str);
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.StackTrace);
            }
            System.Diagnostics.Debug.WriteLine("Exploded: " + theParts);
            return theParts;
        }
 public SignAndDatePDF(ByteBuffer myFilledPDF)
 {
     pdfreader = new PdfReader(myFilledPDF.Buffer);
     myPDF = new ByteBuffer();
     pdfStamper = new PdfStamper(pdfreader, myPDF);
     pdfFormFields = pdfStamper.AcroFields;
 }
Example #22
0
 /// <summary>
 /// Removes layers from a PDF document </summary>
 /// <param name="reader">	a PdfReader containing a PDF document </param>
 /// <param name="layers">	a sequence of names of OCG layers </param>
 /// <exception cref="IOException"> </exception>
 public virtual void RemoveLayers(PdfReader reader, params string[] layers)
 {
     int n = reader.NumberOfPages;
     ICollection<string> ocgs = new HashSet2<string>();
     for (int i = 0; i < layers.Length; i++)
     {
         ocgs.Add(layers[i]);
     }
     OCGParser parser = new OCGParser(ocgs);
     for (int i = 1; i <= n; i++)
     {
         PdfDictionary page = reader.GetPageN(i);
         Parse(parser, page);
         page.Remove(new PdfName("PieceInfo"));
         RemoveAnnots(page, ocgs);
         RemoveProperties(page, ocgs);
     }
     PdfDictionary root = reader.Catalog;
     PdfDictionary ocproperties = root.GetAsDict(PdfName.OCPROPERTIES);
     RemoveOCGsFromArray(ocproperties, PdfName.OCGS, ocgs);
     PdfDictionary d = ocproperties.GetAsDict(PdfName.D);
     if (d != null)
     {
         RemoveOCGsFromArray(d, PdfName.ON, ocgs);
         RemoveOCGsFromArray(d, PdfName.OFF, ocgs);
         RemoveOCGsFromArray(d, PdfName.LOCKED, ocgs);
         RemoveOCGsFromArray(d, PdfName.RBGROUPS, ocgs);
         RemoveOCGsFromArray(d, PdfName.ORDER, ocgs);
         RemoveOCGsFromArray(d, PdfName.AS, ocgs);
     }
     reader.RemoveUnusedObjects();
 }
 // ---------------------------------------------------------------------------
 public void Write(Stream stream)
 {
     // Use old example to create PDF
     MovieTemplates mt = new MovieTemplates();
     byte[] pdf = Utility.PdfBytes(mt);
     using (ZipFile zip = new ZipFile())
     {
         using (MemoryStream ms = new MemoryStream())
         {
             // step 1
             using (Document document = new Document())
             {
                 // step 2
                 PdfWriter writer = PdfWriter.GetInstance(document, ms);
                 // step 3
                 document.Open();
                 // step 4
                 PdfPTable table = new PdfPTable(2);
                 PdfReader reader = new PdfReader(pdf);
                 int n = reader.NumberOfPages;
                 PdfImportedPage page;
                 for (int i = 1; i <= n; i++)
                 {
                     page = writer.GetImportedPage(reader, i);
                     table.AddCell(Image.GetInstance(page));
                 }
                 document.Add(table);
             }
             zip.AddEntry(RESULT, ms.ToArray());
         }
         zip.AddEntry(Utility.ResultFileName(mt.ToString() + ".pdf"), pdf);
         zip.Save(stream);
     }
 }
Example #24
0
    public void setPDF()
    {
        string imgpath       = Server.MapPath("~/Sign/21.jpg");
        string pdfpath       = Server.MapPath("~/TemplateStore/Forms/Nf packet.pdf");
        string pdfpathourput = Server.MapPath("~/TemplateStore/Forms/Demo.pdf");

        using (Stream inputPdfStream = new FileStream(pdfpath, FileMode.Open, FileAccess.Read, FileShare.Read))
            using (Stream inputImageStream = new FileStream(imgpath, FileMode.Open, FileAccess.Read, FileShare.Read))
                using (Stream outputPdfStream = new FileStream(pdfpathourput, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    var reader = new iTextSharp.text.pdf.PdfReader(inputPdfStream);

                    int val = reader.NumberOfPages;

                    var stamper = new iTextSharp.text.pdf.PdfStamper(reader, outputPdfStream);

                    var pdfContentByte = stamper.GetOverContent(1);

                    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream);

                    image.SetAbsolutePosition(759f, 459f);

                    pdfContentByte.AddImage(image);
                    stamper.Close();
                }
    }
Example #25
0
        /// <summary>
        /// 根据文件名进行分类
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns>0:正常,1:加密,2:异常</returns>
        public static int ClassifyByWjm(string fileDir, string fileName)
        {
            if (fileName == null || "".Equals(fileName)) return 2; //文件名为空,不存在全文

            //文件原来所在目录
            string fullFileName = fileDir;

            fullFileName += ConstructFilePath(fileName, 1);
            fullFileName += fileName;

            if (!File.Exists(fullFileName)) return 2; //有文件名,但是文件不存在

            if (File.ReadAllBytes(fullFileName).Length == 0) return 2; //文件大小为0

            try
            {
                PdfReader reader = new PdfReader(fullFileName);
                if (reader.IsEncrypted()) return 1; //文件加密
            }
            catch
            {
                return 2;//PDF文件损坏
            }

            //正常
            return 0;
        }
Example #26
0
 virtual public void ClassMapConflict()
 {
     InitializeDocument("-cmc");
     PdfReader reader1 = new PdfReader(SOURCE11);
     try
     {
         copy.AddPage(copy.GetImportedPage(reader1, 76, true));
     }
     catch (BadPdfFormatException)
     {
     }
     reader1.Close();
     PdfReader reader2 = new PdfReader(SOURCE12);
     bool exceptionThrown = false;
     try
     {
         copy.AddPage(copy.GetImportedPage(reader2, 76, true));
     }
     catch (BadPdfFormatException)
     {
         exceptionThrown = true;
     }
     reader2.Close();
     if (!exceptionThrown)
         Assert.Fail("BadPdfFormatException expected!");
 }
Example #27
0
        public static void CropPdf()
        {
            var xll    = 200;
            var yll    = 170;
            var w      = 800;
            var h      = 800;
            var reader = new iTextSharp.text.pdf.PdfReader(@"C:\Projects\31g\trunk\temp\pdf\20140208110036_20.pdf");
            var n      = reader.NumberOfPages;

            iTextSharp.text.pdf.PdfDictionary pageDict;

            var pfgRect = new iTextSharp.text.pdf.PdfRectangle(xll, yll, w, h);

            for (var i = 1; i <= n; i++)
            {
                pageDict = reader.GetPageN(i);
                pageDict.Put(iTextSharp.text.pdf.PdfName.CROPBOX, pfgRect);
            }

            var stamper = new iTextSharp.text.pdf.PdfStamper(reader,
                                                             new System.IO.FileStream(string.Format(@"C:\Projects\31g\trunk\Notes\misc\Maps\Europe_565BCE.pdf", xll, yll, w, h), FileMode.Create));

            stamper.Close();
            reader.Close();
        }
Example #28
0
 public void Sign(String src, String dest,
                  ICollection<X509Certificate> chain, X509Certificate2 pk,
                  String digestAlgorithm, CryptoStandard subfilter,
                  String reason, String location,
                  ICollection<ICrlClient> crlList,
                  IOcspClient ocspClient,
                  ITSAClient tsaClient,
                  int estimatedSize) {
     // Creating the reader and the stamper
     PdfReader reader = null;
     PdfStamper stamper = null;
     FileStream os = null;
     try {
         reader = new PdfReader(src);
         os = new FileStream(dest, FileMode.Create);
         stamper = PdfStamper.CreateSignature(reader, os, '\0');
         // Creating the appearance
         PdfSignatureAppearance appearance = stamper.SignatureAppearance;
         appearance.Reason = reason;
         appearance.Location = location;
         appearance.SetVisibleSignature(new Rectangle(36, 748, 144, 780), 1, "sig");
         // Creating the signature
         IExternalSignature pks = new X509Certificate2Signature(pk, digestAlgorithm);
         MakeSignature.SignDetached(appearance, pks, chain, crlList, ocspClient, tsaClient, estimatedSize,
                                    subfilter);
     }
     finally {
         if (reader != null)
             reader.Close();
         if (stamper != null)
             stamper.Close();
         if (os != null)
             os.Close();
     }
 }
Example #29
0
        private String GetPdfText(String year, String servantID)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www1.fgmaiss.com.br/contabil/relflh/flhrel037pdf.php?prc=MjkuMTM4LjM3Ny8wMDAxLTkz&etd=MDE=&ser=" + servantID + "&ano=" + year + "&fv1=300&fv2=000&fv3=000&fv4=000&fv5=000&fv00=500&fv01=186&fv02=008&fv03=012&fv04=071&fv05=007&fv06=073&fv07=189&fv08=406&fv09=039&fv10=041&fv11=000&fv12=000&fv13=000&fv14=000&fv15=000");
            request.Host = "www1.fgmaiss.com.br";
            request.CookieContainer = new CookieContainer();
            request.CookieContainer.Add(new Cookie("8jpo2jrlp3005q3lj3qsbf5hq7PESQGRIDfindGrid", "") { Domain = request.Host });
            request.CookieContainer.Add(new Cookie("PHPSESSID", Cookie) { Domain = request.Host });
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

            ServicePointManager.Expect100Continue = true;

            //salva conteúdo da resposta (pdf) http em um arquivo
            var responseStream = request.GetResponse().GetResponseStream();
            String pdfFilePath = "c:/parsal/" + servantID +  year.ToString() + ".pdf";
            var pdfOut = File.Create(pdfFilePath);
            responseStream.CopyTo(pdfOut);
            pdfOut.Close();

            //resultado
            StringBuilder pdfText = new StringBuilder();
            PdfReader pdfReader = new PdfReader(pdfFilePath);
            for (int i = 1; i <= pdfReader.NumberOfPages; i++)
                pdfText.Append(PdfTextExtractor.GetTextFromPage(pdfReader, i));

            return pdfText.ToString();
        }
 // ---------------------------------------------------------------------------
 /**
  * Inspect a PDF file and write the info to a txt file
  * @param writer StringBuilder
  * @param pdf PDF file bytes
  * @param fileName PDF filename
  */
 public static void Inspect(StringBuilder sb, byte[] pdf, string fileName)
 {
     PdfReader reader = new PdfReader(pdf);
     sb.Append(fileName);
     sb.Append(Environment.NewLine);
     sb.Append("Number of pages: ");
     sb.Append(reader.NumberOfPages);
     sb.Append(Environment.NewLine);
     Rectangle mediabox = reader.GetPageSize(1);
     sb.Append("Size of page 1: [");
     sb.Append(mediabox.Left);
     sb.Append(',');
     sb.Append(mediabox.Bottom);
     sb.Append(',');
     sb.Append(mediabox.Right);
     sb.Append(',');
     sb.Append(mediabox.Top);
     sb.Append("]");
     sb.Append(Environment.NewLine);
     sb.Append("Rotation of page 1: ");
     sb.Append(reader.GetPageRotation(1));
     sb.Append(Environment.NewLine);
     sb.Append("Page size with rotation of page 1: ");
     sb.Append(reader.GetPageSizeWithRotation(1));
     sb.Append(Environment.NewLine);
     sb.Append("Is rebuilt? ");
     sb.Append(reader.IsRebuilt().ToString());
     sb.Append(Environment.NewLine);
     sb.Append("Is encrypted? ");
     sb.Append(reader.IsEncrypted().ToString());
     sb.Append(Environment.NewLine);
     sb.Append(Environment.NewLine);
 }
        public byte[] FillIRS941Form(ReportPayrollCompanyTotal payrollData)
        {
            string iRS941FormTemplate = HttpContext.Current.Server.MapPath("~/FormTemplates/IRS2015Form941.pdf");
            byte[] formResults;

            using (PdfReader pdfReader = new PdfReader(iRS941FormTemplate))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    using (PdfStamper pdfStamper = new PdfStamper(pdfReader, ms))
                    {
                        AcroFields pdfFormFields = pdfStamper.AcroFields;
                        var s = pdfFormFields.GetSignatureNames();
                        var e = pdfFormFields.GetBlankSignatureNames();

                        pdfFormFields.SetField("f1_10_0_", "Suitland Road Baptist Church");

                        pdfStamper.FormFlattening = false;
                        pdfStamper.Close();
                    }

                    formResults = ms.GetBuffer();
                }
            }

            return formResults;
        }
Example #32
0
// ---------------------------------------------------------------------------    
    public virtual void Write(Stream stream) {  
      using (ZipFile zip = new ZipFile()) { 
        // Get the movies
        IEnumerable<Movie> movies = PojoFactory.GetMovies();
        string datasheet = Path.Combine(Utility.ResourcePdf, DATASHEET); 
        string className = this.ToString();            
        // Fill out the data sheet form with data
        foreach (Movie movie in movies) {
          if (movie.Year < 2007) continue;
          PdfReader reader = new PdfReader(datasheet);          
          string dest = string.Format(RESULT, movie.Imdb);
          using (MemoryStream ms = new MemoryStream()) {
            using (PdfStamper stamper = new PdfStamper(reader, ms)) {
              AcroFields fields = stamper.AcroFields;
              fields.GenerateAppearances = true;
              Fill(fields, movie);
              if (movie.Year == 2007) stamper.FormFlattening = true;
            }
            zip.AddEntry(dest, ms.ToArray());
          }         
        }
        zip.AddFile(datasheet, "");
        zip.Save(stream);
      }              
    }
Example #33
0
        static void Main(string[] args)
        {
            List<SchoolTestResult> result = new List<SchoolTestResult>();

            string[] urls = ConfigurationManager.AppSettings["urls"].Split(',');
            Console.WriteLine("Reading " + urls.Length + " files");

            foreach (string url in urls)
            {
                Uri uri = new Uri(url);
                PdfReader reader = new PdfReader(uri);

                try
                {
                    String text = PdfTextExtractor.GetTextFromPage(reader, 1);
                    result.AddRange(new AssessmentReader().parse(text));
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error Reading " + url);
                    Console.WriteLine(e);
                }
            }

            string jsonOutput = JsonConvert.SerializeObject(result, Formatting.Indented);
            string csvOutput = new FileHelperEngine<SchoolTestResult>().WriteString( result );

            Console.WriteLine(jsonOutput);
            Console.WriteLine(csvOutput);

            //Console.WriteLine(text);
            Console.ReadLine();
        }
 internal PdfReaderInstance(PdfReader reader, PdfWriter writer)
 {
     this.reader = reader;
     this.writer = writer;
     file = reader.SafeFile;
     myXref = new int[reader.XrefSize];
 }
Example #35
0
 /// <summary>
 /// Sign
 /// </summary>
 /// <param name="input">The input.</param>
 /// <param name="output">The output.</param>
 /// <param name="certificate">The certificate.</param>
 public override void Sign(Stream input, Stream output, X509Certificate2 certificate)
 {
     CheckInputOutputAndCertificate(input, output, certificate);
     PdfReader reader = null;
     try
     {
         reader = new PdfReader(input);
         using (var stamper = PdfStamper.CreateSignature(reader, output, '\0', null, true))
         {
             var cp = new Org.BouncyCastle.X509.X509CertificateParser();
             var chain = new[] { cp.ReadCertificate(certificate.RawData) };
             var sig = stamper.SignatureAppearance;
             SetSigPosition(sig, reader.AcroFields.GetSignatureNames().Count);
             SetSigText(sig, chain);
             SetSigCryptoFromX509(sig, certificate, chain);
         }
     }
     finally
     {
         if (reader != null)
         {
             reader.Close();
         }
     }
 }
 // membervariables
 // constructors
 /**
  * Constructs a <CODE>PdfIndirectReference</CODE>.
  *
  * @param        reader            a <CODE>PdfReader</CODE>
  * @param        number            the object number.
  * @param        generation        the generation number.
  */
 internal PRIndirectReference(PdfReader reader, int number, int generation)
 {
     type = INDIRECT;
     this.number = number;
     this.generation = generation;
     this.reader = reader;
 }
Example #37
0
 private static void ApplyWaterMark(string filePath)
 {
     Logger.LogI("ApplyWatermark -> " + filePath);
     var watermarkedFile = Path.GetFileNameWithoutExtension(filePath) + "-w.pdf";
     using (var reader1 = new PdfReader(filePath))
     {
         using (var fs = new FileStream(watermarkedFile, FileMode.Create, FileAccess.Write, FileShare.None))
         using (var stamper = new PdfStamper(reader1, fs))
         {
             var pageCount = reader1.NumberOfPages;
             var layer = new PdfLayer("WatermarkLayer", stamper.Writer);
             for (var i = 1; i <= pageCount; i++)
             {
                 var rect = reader1.GetPageSize(i);
                 var cb = stamper.GetUnderContent(i);
                 cb.BeginLayer(layer);
                 cb.SetFontAndSize(BaseFont.CreateFont(
                     BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 50);
                 var gState = new PdfGState {FillOpacity = 0.25f};
                 cb.SetGState(gState);
                 cb.SetColorFill(BaseColor.BLACK);
                 cb.BeginText();
                 cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER,
                     "(c)2015 ScrapEra", rect.Width/2, rect.Height/2, 45f);
                 cb.EndText();
                 cb.EndLayer();
             }
         }
     }
     File.Delete(filePath);
 }
 /**
  * Creates new PdfStamperImp.
  * @param reader reads the PDF
  * @param os the output destination
  * @param pdfVersion the new pdf version or '\0' to keep the same version as the original document
  * @param append
  * @param conformanceLevel PDF/A conformance level of a new PDF document
  * @throws DocumentException on error
  * @throws IOException
  */
 internal PdfAStamperImp(PdfReader reader, Stream os, char pdfVersion, bool append, PdfAConformanceLevel conformanceLevel)
     : base(reader, os, pdfVersion, append)
 {
     ((IPdfAConformance)pdfIsoConformance).SetConformanceLevel(conformanceLevel);
     PdfAWriter.SetPdfVersion(this, conformanceLevel);
     ReadPdfAInfo();
 }
        public bool WatermarkPDF_SW(string SourcePdfPath, string OutputPdfPath, string WatermarkImageUrl, int positionX, int positionY, int WatermarkHeight, int WatermarkWidth, out string msg)
        {
            try
            {
                PdfReader reader = new PdfReader(SourcePdfPath);
                PdfStamper stamp = new PdfStamper(reader, new FileStream(OutputPdfPath, FileMode.Create));
                int n = reader.NumberOfPages;
                int i = 0;
                PdfContentByte under;
                WatermarkWidth = WatermarkWidth / n;
                //����ط�Ҫע�⣬�Ǹ���ҳ������̬����ͼƬ��ַ���м�ҳ�ͼ��ؼ�ҳ��ͼƬ
                string WatermarkPath = Server.MapPath(Request.ApplicationPath + "/HTProject/Pages/Images/��ͬ��������" + n + "/");
                string WatermarkPath2 = "";
                while (i < n)
                {
                    i++;
                    WatermarkPath2 = WatermarkPath + i + ".gif";
                    iTextSharp.text.Image im = iTextSharp.text.Image.GetInstance(WatermarkPath2);
                    im.SetAbsolutePosition(positionX, positionY);
                    im.ScaleAbsolute(WatermarkWidth, WatermarkHeight);

                    under = stamp.GetUnderContent(i);
                    under.AddImage(im, true);
                }
                stamp.Close();
                reader.Close();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
            msg = "��ˮӡ�ɹ���";
            return true;
        }
Example #40
0
// ---------------------------------------------------------------------------        
    public void Write(Stream stream) {
      using (ZipFile zip = new ZipFile()) { 
        byte[] pdf = new Superimposing().CreatePdf();
        // Create a reader
        PdfReader reader = new PdfReader(pdf);
        using (MemoryStream ms = new MemoryStream()) {     
          // step 1
          using (Document document = new Document(PageSize.POSTCARD)) {
            // step 2
            PdfWriter writer = PdfWriter.GetInstance(document, ms);
            // step 3
            document.Open();
            // step 4
            PdfContentByte canvas = writer.DirectContent;
            PdfImportedPage page;
            for (int i = 1; i <= reader.NumberOfPages; i++) {
              page = writer.GetImportedPage(reader, i);
              canvas.AddTemplate(page, 1f, 0, 0, 1, 0, 0);
            }
          } 
          zip.AddEntry(RESULT, ms.ToArray());
        }
        zip.AddEntry(SOURCE, pdf);
        zip.Save(stream);            
      }        
    }
Example #41
0
// ---------------------------------------------------------------------------
    public void Write(Stream stream) {
      // use one of the previous examples to create a PDF
      MovieTemplates mt = new MovieTemplates();
      // Create a reader
      byte[] pdf = Utility.PdfBytes(mt);
      PdfReader reader = new PdfReader(pdf);
      // loop over all the pages in the original PDF
      int n = reader.NumberOfPages;      
      using (ZipFile zip = new ZipFile()) {
        for (int i = 0; i < n; ) {
          string dest = string.Format(RESULT, ++i);
          using (MemoryStream ms = new MemoryStream()) {
// We'll create as many new PDFs as there are pages
            // step 1
            using (Document document = new Document()) {
              // step 2
              using (PdfCopy copy = new PdfCopy(document, ms)) {
                // step 3
                document.Open();
                // step 4
                copy.AddPage(copy.GetImportedPage(reader, i));
              }
            }
            zip.AddEntry(dest, ms.ToArray());
          }
        }
        zip.AddEntry(Utility.ResultFileName(mt.ToString() + ".pdf"), pdf);
        zip.Save(stream);       
      }
    }
 public bool WatermarkPDF_SN(string SourcePdfPath, string OutputPdfPath, string WatermarkPath, int positionX, int positionY, int WatermarkHeight, int WatermarkWidth, out string msg)
 {
     try
     {
         PdfReader reader = new PdfReader(SourcePdfPath);
         PdfStamper stamp = new PdfStamper(reader, new FileStream(OutputPdfPath, FileMode.Create));
         int n = reader.NumberOfPages;
         int i = 0;
         PdfContentByte under;
         iTextSharp.text.Image im = iTextSharp.text.Image.GetInstance(WatermarkPath);
         im.SetAbsolutePosition(positionX, positionY);
         im.ScaleAbsolute(WatermarkWidth, WatermarkHeight);
         while (i < n)
         {
             i++;
             under = stamp.GetUnderContent(i);
             under.AddImage(im, true);
         }
         stamp.Close();
         reader.Close();
     }
     catch (Exception ex)
     {
         msg = ex.Message;
         return false;
     }
     msg = "��ˮӡ�ɹ���";
     return true;
 }
Example #43
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        public Dictionary <String, String> RetrieveInfo(String filename)
        {
            Dictionary <String, String> pdfInfo = new Dictionary <string, string>();

            if (!String.IsNullOrEmpty(filename) && !String.IsNullOrWhiteSpace(filename))
            {
                var documentReader = new iTextSharpPDF.PdfReader(new iTextSharpPDF.RandomAccessFileOrArray(filename), null);
                IDictionaryEnumerator pdfInfoEnumerator = documentReader.Info.GetEnumerator();
                while (pdfInfoEnumerator.MoveNext())
                {
                    String         pdfInfoValue = null;
                    DateTimeOffset?pdfInfoDate;
                    if (pdfInfoEnumerator.Value != null && !String.IsNullOrWhiteSpace(pdfInfoEnumerator.Value.ToString()) &&
                        !String.IsNullOrEmpty(pdfInfoEnumerator.Value.ToString()))
                    {
                        pdfInfoDate = TryParsePDFDateTime(pdfInfoEnumerator.Value.ToString());
                        if (pdfInfoDate.HasValue)
                        {
                            pdfInfoValue = String.Format("{0:F}", ((DateTimeOffset)pdfInfoDate).DateTime);
                        }
                        else
                        {
                            pdfInfoValue = pdfInfoEnumerator.Value.ToString();
                        }
                    }
                    pdfInfo.Add(pdfInfoEnumerator.Key as String, pdfInfoValue);
                }
            }
            else
            {
                throw new ArgumentNullException("filename", exceptionArgumentNullOrEmptyString);
            }
            return(pdfInfo);
        }
Example #44
0
        public PlaylistItemFile GetTag(string filePath)
        {
            using (var reader = new PdfReader(filePath))
            {
                var title = reader.Info.ContainsKey("Title") && !string.IsNullOrEmpty(reader.Info["Title"])
                    ? reader.Info["Title"]
                    : Path.GetFileNameWithoutExtension(filePath);

                return new PlaylistItemFile
                {
                    FileName = filePath,
                    Type = PlayListItemType.Pdf,
                    Tag = new PlayListItemFileTag
                    {
                        Title = title,
                        Pictures = new List<PlayListItemFileTagImage>
                        {
                            new PlayListItemFileTagImage
                            {
                                MimeType = "image/png",
                                FilePath = PathHelper.GetApplicationPath() + "\\" + Settings.Default.ThumbnailLocation + "\\pdfimage.png"
                            }
                        }
                    }
                };
            }
        }
Example #45
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        public Dictionary <String, String> RetrieveAcroFieldsData(String filename)
        {
            Dictionary <String, String> fieldsData = new Dictionary <string, string>();

            if (!String.IsNullOrEmpty(filename) && !String.IsNullOrWhiteSpace(filename))
            {
                var documentReader = new iTextSharpPDF.PdfReader(new iTextSharpPDF.RandomAccessFileOrArray(filename), null);
                IDictionaryEnumerator fieldsEnumerator = documentReader.AcroFields.Fields.GetEnumerator();
                ICollection           fieldKeyValues   = documentReader.AcroFields.Fields.Keys;
                foreach (String keyValue in fieldKeyValues)
                {
                    String         pdfInfoValue = documentReader.AcroFields.GetField(keyValue.ToString());
                    DateTimeOffset?pdfInfoDate;
                    if (pdfInfoValue != null && !String.IsNullOrWhiteSpace(pdfInfoValue) &&
                        !String.IsNullOrEmpty(pdfInfoValue))
                    {
                        pdfInfoDate = TryParsePDFDateTime(pdfInfoValue);
                        if (pdfInfoDate.HasValue)
                        {
                            pdfInfoValue = String.Format("{0:F}", ((DateTimeOffset)pdfInfoDate).DateTime);
                        }
                    }
                    fieldsData.Add(keyValue, pdfInfoValue);
                }
            }
            return(fieldsData);
        }
Example #46
0
        static void MergePdfFiles(string foldernameInput, string folderNameOutput)
        {
            var files = Directory.GetFiles(foldernameInput, "*.pdf");
            int count = 0;

            foreach (var file in files)
            {
                var pdfReader = new iTextSharp.text.pdf.PdfReader(file);

                var pdfDoc = new iTextSharp.text.Document(pdfReader.GetPageSizeWithRotation(1));

                //            'Instantiate a PdfWriter that listens to the pdf document
                var outputfile = Path.Combine(folderNameOutput, Path.GetFileName(file));
                var writer     = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, new FileStream(outputfile, FileMode.Create));
                pdfDoc.Open();
                int pagenumber = 0;
                int pagecount  = pdfReader.NumberOfPages;
                var cb         = writer.DirectContent;
                while (pagenumber < pagecount)
                {
                    pdfDoc.NewPage();
                    var importedPage = writer.GetImportedPage(pdfReader, pagenumber + 1);
                    writer.DirectContentUnder.AddTemplate(importedPage, 0, 0);
                    if (pagenumber == 0)
                    {
                        CopyFormToText(pdfReader, cb);
                    }
                    pagenumber++;
                }
                writer.Flush();
                pdfDoc.Close();
                count++;
            }
        }
Example #47
0
        public void AddPdf(string sInFilePath, ref iTextSharp.text.Document oPdfDoc, ref PdfWriter oPdfWriter)
        {
            iTextSharp.text.pdf.PdfContentByte oDirectContent = oPdfWriter.DirectContent;
            iTextSharp.text.pdf.PdfReader      oPdfReader     = new iTextSharp.text.pdf.PdfReader(sInFilePath);
            int iNumberOfPages = oPdfReader.NumberOfPages;
            int iPage          = 0;

            while ((iPage < iNumberOfPages))
            {
                iPage += 1;

                int iRotation = oPdfReader.GetPageRotation(iPage);
                iTextSharp.text.pdf.PdfImportedPage oPdfImportedPage = oPdfWriter.GetImportedPage(oPdfReader, iPage);
                oPdfDoc.SetPageSize(oPdfReader.GetPageSizeWithRotation(iPage));
                oPdfDoc.NewPage();

                if ((iRotation == 90) | (iRotation == 270))
                {
                    oDirectContent.AddTemplate(oPdfImportedPage, 0, -1f, 1f, 0, 0, oPdfReader.GetPageSizeWithRotation(iPage).Height);
                }
                else
                {
                    oDirectContent.AddTemplate(oPdfImportedPage, 1f, 0, 0, 1f, 0, 0);
                }
            }
        }
Example #48
0
 private static void FillPDFForm(string spath, string destpath, SqlDataReader dr)
 {
     using (var fs = new FileStream(destpath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
     {
         var reader = new iTextSharp.text.pdf.PdfReader(new RandomAccessFileOrArray(spath), null);
         fillFormFields(reader, fs, dr);
     }
 }
Example #49
0
        private int GetPages(string ppath)
        {
            iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(ppath);
            int numberOfPages = pdfReader.NumberOfPages;

            Console.WriteLine(numberOfPages);
            //Console.ReadLine();
            return(numberOfPages);
        }
Example #50
0
 /// <summary>
 /// Concatenates two or more PDF files into one file.
 /// </summary>
 /// <param name="inputFiles">A string array containing the names of the pdf files to concatenate</param>
 /// <param name="outputFile">Name of the concatenated file.</param>
 public void ConcatenatePDFFiles(String[] inputFiles, String outputFile)
 {
     if (inputFiles != null && inputFiles.Length > 0)
     {
         if (!String.IsNullOrEmpty(outputFile) && !String.IsNullOrWhiteSpace(outputFile))
         {
             var concatDocument = new iTextSharpText.Document();
             var outputCopy     = new iTextSharpPDF.PdfCopy(concatDocument, new FileStream(outputFile, FileMode.Create, FileAccess.ReadWrite));
             concatDocument.Open();
             try
             {
                 for (int loop = 0; loop <= inputFiles.GetUpperBound(0); loop++)
                 {
                     var inputDocument = new iTextSharpPDF.PdfReader(inputFiles[loop]);
                     for (int pageLoop = 1; pageLoop <= inputDocument.NumberOfPages; pageLoop++)
                     {
                         concatDocument.SetPageSize(inputDocument.GetPageSizeWithRotation(pageLoop));
                         outputCopy.AddPage(outputCopy.GetImportedPage(inputDocument, pageLoop));
                     }
                     inputDocument.Close();
                     outputCopy.FreeReader(inputDocument);
                     inputDocument = null;
                 }
                 concatDocument.Close();
                 outputCopy.Close();
             }
             catch
             {
                 if (concatDocument != null && concatDocument.IsOpen())
                 {
                     concatDocument.Close();
                 }
                 if (outputCopy != null)
                 {
                     outputCopy.Close();
                 }
                 if (File.Exists(outputFile))
                 {
                     try
                     {
                         File.Delete(outputFile);
                     }
                     catch { }
                 }
                 throw;
             }
         }
         else
         {
             throw new ArgumentNullException("outputFile", exceptionArgumentNullOrEmptyString);
         }
     }
     else
     {
         throw new ArgumentNullException("inputFiles", exceptionArgumentNullOrEmptyString);
     }
 }
Example #51
0
        /// <summary>
        /// Extracts all images from a specified page of a PDF file.
        /// </summary>
        /// <param name="pdf">The PDF stream.</param>
        /// <param name="password">The password used to protect the document.</param>
        /// <returns>Returns an array of images
        /// where the key is a suggested file name, in the format: PDF filename without extension,
        /// page number and image index in the page.</returns>
        public Dictionary <string, System.Drawing.Image> ExtractImages(Stream pdf, string password = "")
        {
            byte[] pass = null;
            iTextSharp.text.pdf.PdfReader pdfReader = null;
            var images = new Dictionary <string, System.Drawing.Image>();

            try
            {
                // If no password.
                if (String.IsNullOrEmpty(password))
                {
                    pdfReader = new iTextSharp.text.pdf.PdfReader(pdf);
                }
                else
                {
                    pass      = Encoding.Default.GetBytes(password);
                    pdfReader = new iTextSharp.text.pdf.PdfReader(pdf, pass);
                }

                // Create the pdf parser.
                var parser = new PdfReaderContentParser(pdfReader);
                ImageRenderListener listener = null;

                for (var i = 1; i <= pdfReader.NumberOfPages; i++)
                {
                    // Parse the pdf stream.
                    parser.ProcessContent(i, (listener = new ImageRenderListener()));
                    var index = 1;

                    // If images exist.
                    if (listener.Images.Count > 0)
                    {
                        // For each image extracted.
                        foreach (var pair in listener.Images)
                        {
                            // Add the image.
                            images.Add(string.Format("Page_{ 1} Image_{ 2} { 3}", i.ToString("D4"), index.ToString("D4"), pair.Value), pair.Key);
                            index++;
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (pdfReader != null)
                {
                    pdfReader.Close();
                }
            }

            // Return the images.
            return(images);
        }
        protected void AddDataTableToPDF()
        {
            string taskid = HttpContext.Current.Session["Name"].ToString();

            HttpContext.Current.Session.Timeout = 60;
            String pathin  = System.Web.HttpContext.Current.Server.MapPath("~/storepdf/" + taskid + ".pdf");
            String pathout = System.Web.HttpContext.Current.Server.MapPath("~/editorpdf/" + taskid + ".pdf");

            iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(pathin);
            PdfStamper stamper  = new PdfStamper(reader, new FileStream(pathout, FileMode.Create));
            int        n        = reader.NumberOfPages;
            string     imageURL = System.Web.HttpContext.Current.Server.MapPath(".") + "/img/caslab.jpg";

            iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imageURL);
            img.SetAbsolutePosition(60f, 790f);

            for (var i = 1; i <= n; i++)
            {
                PdfContentByte over = null;


                over = stamper.GetOverContent(i);
                BaseFont bf_times = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, "Cp1252", false);
                over.SetFontAndSize(bf_times, 10);
                over.AddImage(img);
                over.BeginText();
                over.ShowTextAligned(PdfContentByte.ALIGN_CENTER, taskid, 500, 800, 0);
                over.EndText();
                over.BeginText();
                string pagenumber = "Page  " + i + "  of  " + n + "";
                over.ShowTextAligned(1, pagenumber, 500, 790, 0);
                over.EndText();
                over.BeginText();
                string headerline = "_______________________________________________________________________________________";
                // put the alignment and coordinates here
                over.ShowTextAligned(1, headerline, 295, 780, 0);
                over.EndText();

                over.BeginText();
                string footerline = "________________________________________________________________________________________";
                // put the alignment and coordinates here
                over.ShowTextAligned(1, footerline, 295, 60, 0);
                over.EndText();

                over.BeginText();
                string footer = "This document and all the information contained here are confidential and exclusive  property of CASLAB.";
                over.ShowTextAligned(PdfContentByte.ALIGN_CENTER, footer, 300, 40, 0);
                over.EndText();

                over.BeginText();
                string footer1 = "and maynot be reproduced,disclosed,or made public in any manner prior to express written authorization by CASLAB.";
                over.ShowTextAligned(PdfContentByte.ALIGN_CENTER, footer1, 300, 30, 0);
                over.EndText();
            }
            stamper.Close();
            reader.Close();
        }
        public string AddSignature(string PathSource, string PathTarget, string CertPath, string CertPass, int lx = 100, int ly = 100, int ux = 250, int uy = 150, int page = 1, bool Visible = true)
        {
            try
            {
                Org.BouncyCastle.Crypto.AsymmetricKeyParameter Akp   = null;
                Org.BouncyCastle.X509.X509Certificate[]        Chain = null;

                string alias = null;
                Org.BouncyCastle.Pkcs.Pkcs12Store pk12;


                pk12 = new Org.BouncyCastle.Pkcs.Pkcs12Store(new System.IO.FileStream(CertPath, System.IO.FileMode.Open, System.IO.FileAccess.Read), CertPass.ToCharArray());

                IEnumerable aliases = pk12.Aliases;
                foreach (string aliasTemp in aliases)
                {
                    alias = aliasTemp;
                    if (pk12.IsKeyEntry(alias))
                    {
                        break;
                    }
                }

                Akp = pk12.GetKey(alias).Key;
                Org.BouncyCastle.Pkcs.X509CertificateEntry[] ce = pk12.GetCertificateChain(alias);
                Chain = new Org.BouncyCastle.X509.X509Certificate[ce.Length];
                for (int k = 0; k < ce.Length; ++k)
                {
                    Chain[k] = ce[k].Certificate;
                }

                iTextSharp.text.pdf.PdfReader              reader = new iTextSharp.text.pdf.PdfReader(PathSource);
                iTextSharp.text.pdf.PdfStamper             st     = iTextSharp.text.pdf.PdfStamper.CreateSignature(reader, new System.IO.FileStream(PathTarget, System.IO.FileMode.Create, System.IO.FileAccess.Write), '\0', null, true);
                iTextSharp.text.pdf.PdfSignatureAppearance sap    = st.SignatureAppearance;

                if (Visible == true)
                {
                    page = (page <1 || page> reader.NumberOfPages) ? 1 : page;
                    sap.SetVisibleSignature(new iTextSharp.text.Rectangle(lx, ly, ux, uy), page, null);
                }

                sap.CertificationLevel = iTextSharp.text.pdf.PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED;

                // digital signature - http://itextpdf.com/examples/iia.php?id=222

                IExternalSignature es = new PrivateKeySignature(Akp, "SHA-256"); // "BC"
                MakeSignature.SignDetached(sap, es, new X509Certificate[] { pk12.GetCertificate(alias).Certificate }, null, null, null, 0, CryptoStandard.CMS);

                st.Close();
                return("");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
    // ========================== ADDITIONAL METHODS ==========================

    // This method uses iTextSharp library to extract the whole text from a PDF.
    public static string GetAllText(String pdfPath)
    {
        iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(pdfPath);
        System.IO.StringWriter        output = new System.IO.StringWriter();
        for (int i = 1; i <= reader.NumberOfPages; i++)
        {
            output.WriteLine(iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy()));
        }
        return(output.ToString());
    }
Example #55
0
        private void CreateOutput(string PDFInput)
        {
            try
            {
                iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(@PDFInput);
                FileStream fs    = new FileStream(@PDFInput.Replace("Input", "Output"), FileMode.Create, FileAccess.Write);
                PdfStamper stamp = new PdfStamper(reader, fs);
                //Loop from here

                //MessageBox.Show(dataGridView1.RowCount.ToString());
                for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                {
                    string comptype = dataGridView1.Rows[i].Cells[3].Value.ToString();

                    string complocation = dataGridView1.Rows[i].Cells[1].Value.ToString();

                    float llx = float.Parse(complocation.Split(' ')[0]);
                    float lly = float.Parse(complocation.Split(' ')[1]);
                    float urx = float.Parse(complocation.Split(' ')[2]);
                    float ury = float.Parse(complocation.Split(' ')[3]);


                    if (comptype == "TE")
                    {
                        int          x  = Int32.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
                        PdfFormField ff = PdfFormField.CreateTextField(stamp.Writer, false, false, 50);
                        ff.SetWidget(new iTextSharp.text.Rectangle(llx, lly, urx, ury), PdfAnnotation.HIGHLIGHT_INVERT);
                        ff.SetFieldFlags(PdfAnnotation.FLAGS_PRINT);
                        ff.FieldName = dataGridView1.Rows[i].Cells[0].Value.ToString();
                        stamp.AddAnnotation(ff, x);
                    }
                    else if (comptype == "CB")
                    {
                        int             x     = Int32.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
                        RadioCheckField fCell = new RadioCheckField(stamp.Writer, new iTextSharp.text.Rectangle(llx, lly, urx, ury), dataGridView1.Rows[i].Cells[0].Value.ToString(), "Yes");
                        fCell.CheckType = RadioCheckField.TYPE_CROSS;
                        PdfFormField footerCheck = null;
                        footerCheck = fCell.CheckField;
                        stamp.AddAnnotation(footerCheck, x);
                    }
                    else
                    {
                    }
                }
                //Loop Ends here

                stamp.Close();
                fs.Close();
                reader.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        public Dictionary <int, int> GetBookmarkList(string fileName)
        {
            Dictionary <int, int> bookmarks = new Dictionary <int, int>();
            string sInFile = fileName;

            iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(sInFile);
            try
            {
                StringWriter firstPageOutput = new StringWriter();

                firstPageOutput.WriteLine(PdfTextExtractor.GetTextFromPage(pdfReader, 1, new SimpleTextExtractionStrategy()));

                string stringout = firstPageOutput.ToString();

                int    hitsPos = stringout.IndexOf("\n1/");
                string substr  = stringout.Substring(hitsPos + 1, 5);
                substr = substr.TrimEnd(' ');
                short numberOfHits;
                Int16.TryParse(substr.Substring(2, substr.Length - 2), out numberOfHits);


                for (int hit = 1; hit <= numberOfHits; hit++)
                {
                    string searchstring = hit.ToString() + "/" + numberOfHits.ToString() + " ";
                    for (int page = hit; page <= pdfReader.NumberOfPages; page++)
                    {
                        ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
                        string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
                        currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(
                                                                  Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                        if (currentText.Contains(searchstring))
                        {
                            bookmarks.Add(hit, page);
                            break;
                        }
                    }
                }
            }

            catch (DocumentException dex)
            {
                throw dex;
            }

            catch (IOException ioex)
            {
                throw ioex;
            }

            finally
            {
            }
            return(bookmarks);
        }
Example #57
0
        /// <summary>
        /// Extracts all images from a specified page of a PDF file.
        /// </summary>
        /// <param name="pdf">The PDF stream.</param>
        /// <param name="pageNumber">The page number to look for images.</param>
        /// <param name="password">The password used to protect the document.</param>
        /// <returns>Returns an array of images
        /// where the key is a suggested file name, in the format: PDF filename without extension,
        /// page number and image index in the page.</returns>
        public Dictionary <string, System.Drawing.Image> ExtractImages(Stream pdf, int pageNumber, string password = "")
        {
            byte[] pass = null;
            iTextSharp.text.pdf.PdfReader             pdfReader = null;
            Dictionary <string, System.Drawing.Image> images    = new Dictionary <string, System.Drawing.Image>();

            try
            {
                // If no password.
                if (String.IsNullOrEmpty(password))
                {
                    pdfReader = new iTextSharp.text.pdf.PdfReader(pdf);
                }
                else
                {
                    pass      = Encoding.Default.GetBytes(password);
                    pdfReader = new iTextSharp.text.pdf.PdfReader(pdf, pass);
                }

                // Create the content reader.
                PdfReaderContentParser parser   = new PdfReaderContentParser(pdfReader);
                ImageRenderListener    listener = null;

                // Parse the content.
                parser.ProcessContent(pageNumber, (listener = new ImageRenderListener()));
                int index = 1;

                // If images have been found.
                if (listener.Images.Count > 0)
                {
                    // Add each image to the list.
                    foreach (KeyValuePair <System.Drawing.Image, string> pair in listener.Images)
                    {
                        // Add the image.
                        images.Add(string.Format("Page_{ 1} Image_{ 2} { 3}", pageNumber.ToString("D4"), index.ToString("D4"), pair.Value), pair.Key);
                        index++;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (pdfReader != null)
                {
                    pdfReader.Close();
                }
            }

            // Return the images.
            return(images);
        }
Example #58
0
        public string ParsePdf(string filePath)
        {
            string text = string.Empty;

            PdfReader reader = new iTextSharp.text.pdf.PdfReader(filePath);

            byte[] streamBytes = reader.GetPageContent(1);

            FileStream fStream = File.OpenRead(filePath);

            byte[] contents = new byte[fStream.Length];

            fStream.Read(contents, 0, (int)fStream.Length);

            fStream.Close();

            string s     = Encoding.UTF8.GetString(contents, 0, contents.Length);
            var    table = (Encoding.Default.GetString(streamBytes, 0, streamBytes.Length - 1)).Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);

            byte[]      buf        = Encoding.Convert(Encoding.GetEncoding("iso-8859-1"), Encoding.UTF8, streamBytes);
            string      tempString = Encoding.UTF8.GetString(buf, 0, buf.Count());
            PRTokeniser tokenizer  = new PRTokeniser(streamBytes);

            while (tokenizer.NextToken())
            {
                if (tokenizer.TokenType == PRTokeniser.TK_STRING)
                {
                    text += tokenizer.StringValue;
                }
            }

            // create a reader (constructor overloaded for path to local file or URL)
            //PdfReader reader
            //    = new PdfReader("http://www.chinehamchat.com/Chineham_Chat_Advertisements.pdf");
            // total number of pages
            int n = reader.NumberOfPages;
            // size of the first page
            Rectangle psize = reader.GetPageSize(1);
            //float width = psize.Width;
            //float height = psize.Height;
            //Console.WriteLine("Size of page 1 of {0} => {1} × {2}", n, width, height);
            // file properties
            Hashtable   infoHash = reader.Info;
            ICollection keys     = infoHash.Keys;

            // Dictionary<string, string> infodict = (Dictionary<string,string>)reader.Info;
            foreach (string key in keys)
            {
                text += key + " => " + infoHash[key];
            }
            // Console.WriteLine(key+ " => " + infoHash[key]);
            return(text);
        }
Example #59
-1
        private string addCompanyLogo(string pdfPath)
        {
            string outputPDFPath = null;
            int clientID = Core.SessionHelper.getClientId();

            string logoPath = string.Format("{0}/ClientLogo/{1}.jpg", ConfigurationManager.AppSettings["appPath"].ToString(), clientID);
            if (File.Exists(logoPath)) {
                outputPDFPath = string.Format("{0}/Temp/{1}.pdf", appPath, Guid.NewGuid());

                using (var inputPdfStream = new FileStream(pdfPath, FileMode.Open))

                using (var outputPdfStream = new FileStream(outputPDFPath, FileMode.Create)) {
                    PdfReader reader = new PdfReader(inputPdfStream);

                    PdfStamper stamper = new PdfStamper(reader, outputPdfStream);

                    PdfContentByte pdfContentByte = stamper.GetOverContent(1);

                    //var image = iTextSharp.text.Image.GetInstance(inputImageStream);
                    var image = iTextSharp.text.Image.GetInstance(logoPath);
                    image.ScaleToFit(100f, 100f);

                    PdfDocument doc = pdfContentByte.PdfDocument;

                    image.SetAbsolutePosition(40f, doc.PageSize.Height - 150f);
                    pdfContentByte.AddImage(image);
                    stamper.Close();
                }
            }
            else {
                outputPDFPath = pdfPath;
            }

            return outputPDFPath;
        }
Example #60
-3
// ---------------------------------------------------------------------------
    /**
     * Creates a new PDF based on the one in the reader
     * @param reader a reader with a PDF file
     */
    private byte[] ManipulateWithStamper(PdfReader reader) {
      using (MemoryStream ms = new MemoryStream()) {
        using ( PdfStamper stamper = new PdfStamper(reader, ms) ) {
        }
        return ms.ToArray();
      }    
    }