GetCropBox() публичный Метод

public GetCropBox ( int index ) : Rectangle
index int
Результат iTextSharp.text.Rectangle
Пример #1
0
        static void ManipulatePdf()
        {
            using (var ms = new MemoryStream()) {
                var pdf     = "resources/Project.pdf";
                var reader  = new iTextSharp.text.pdf.PdfReader(pdf);
                var stamper = new iTextSharp.text.pdf.PdfStamper(reader, ms);

                var box  = reader.GetCropBox(1);
                var left = box.Left;
                var top  = box.Top;

                // var newRectangle = new iTextSharp.text.Rectangle(left + 20, top - 20, left + 250, top - 40);
                var newRectangle = new iTextSharp.text.Rectangle(left, top, left + 250, top - 40);
                newRectangle.UseVariableBorders = false;

                var pcb = new iTextSharp.text.pdf.PdfContentByte(stamper.Writer);
                pcb.SetColorFill(iTextSharp.text.BaseColor.RED);


                var text = "Hello, world!";

                var annot = iTextSharp.text.pdf.PdfAnnotation.CreateFreeText(stamper.Writer, newRectangle, text, pcb);
                annot.Flags = iTextSharp.text.pdf.PdfAnnotation.FLAGS_PRINT;

                // annot.BorderStyle = new iTextSharp.text.pdf.PdfBorderDictionary(0, 0);
                // annot.Color = GetBaseColor(Color.Yellow);
                // annot.Put(PdfName.DS, new PdfString("font: " + "Tohama" + " " +
                //           (10 * 0.75f) + "pt; text-align: left; color: " +
                //           GetBaseColor(Color.Blue)));
                // annot.Put(PdfName.RC, new PdfString(text.Replace("(?i)<br */?> ", "\n").Replace(" & nbsp; ", " ")));
                // annot.Put(PdfName.ROTATE, new PdfNumber(0));

                stamper.AddAnnotation(annot, 1);
                stamper.Close();

                var output = ms.ToArray();
                System.IO.File.WriteAllBytes(".output/Hello.pdf", output);
            }
        }
Пример #2
0
        private static PdfSignatureAppearance GetPdfSignatureAppearance(SigningCertificates signingCertificates, PdfStamper stamper, PdfReader reader, PdfSignatureParameters parameters)
        {
            PdfSignatureAppearance appearance = stamper.SignatureAppearance;

            appearance.Reason = "";
            appearance.LocationCaption = "";
            appearance.Location = "";
            appearance.Layer4Text = "";
            appearance.Layer2Text = GetSignatureText(signingCertificates.X509Certificate, parameters);
            appearance.Acro6Layers = true;

            Rectangle cropBox = reader.GetCropBox(parameters.SignaturePageNumber);

            Rectangle rectangle = GetSignatureLocation(cropBox, parameters);
            appearance.SetVisibleSignature(rectangle, parameters.SignaturePageNumber, parameters.SignatureName);

            return appearance;
        }
        // This class uses an open-source PDF engine to concatenate multiple PDFs into one organized by bookmarks
        public static bool ConcatenateEvaluations(string destination, String[] args)
        {
            try
            {
                int f = 0;  // index of current document
                int i = 0;  // current page of the current document
                int n = 0; // total pages for current document
                int j = 0; // counter used to display two portrait pages on one landscape page
                float width = PageSize.LETTER.Width; //PageSize.LETTER.Height;
                float height = PageSize.LETTER.Height; //PageSize.LETTER.Width;

                // we create a reader for a certain document
                PdfReader reader;

                // step 1: creation of a document-object with portrait orientation
                Document document = new Document(PageSize.LETTER, 0, 0, 0, 0);

                // step 2: we create a writer that listens to the document
                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(destination, FileMode.Create));
                writer.ViewerPreferences = PdfWriter.PageModeUseOutlines;

                // step 3: we open the document
                document.Open();
                PdfContentByte cb = writer.DirectContent;
                PdfImportedPage page;
                int rotation;

                // step 4: we add the content
                while (f < args.Length)
                {
                    i = 0;
                    if (args[f] != "")
                    {
                        reader = new PdfReader(args[f]);
                        // we retrieve the total number of pages
                        n = reader.NumberOfPages;

                        while (i < n)
                        {
                            i++;
                            page = writer.GetImportedPage(reader, i);
                            rotation = reader.GetPageRotation(i);

                            //portrait - default
                            document.SetPageSize(PageSize.LETTER);
                            float pageHeight = reader.GetCropBox(i).Height;
                            float bottom = reader.GetCropBox(i).Bottom;

                            document.NewPage();
                            cb.AddTemplate(page, 0, 0);
                        }
                        // free up memory
                        writer.FreeReader(reader);
                    }
                    f++;

                }
                // step 5: we close the document
                document.Close();

            }
            catch (Exception e)
            {
                return false;
            }
            return true;
        }