private byte[] CreatePdfWithRotatedXObject(String xobjectText)
        {
            MemoryStream baos   = new MemoryStream();
            Document     doc    = new Document();
            PdfWriter    writer = PdfWriter.GetInstance(doc, baos);

            writer.CompressionLevel = 0;
            doc.Open();

            doc.Add(new Paragraph("A"));
            doc.Add(new Paragraph("B"));

            bool rotate = true;

            PdfTemplate template = writer.DirectContent.CreateTemplate(20, 100);

            template.SetColorStroke(BaseColor.GREEN);
            template.Rectangle(0, 0, template.Width, template.Height);
            template.Stroke();
            Matrix matrix = new Matrix();

            if (rotate)
            {
                matrix.Translate(0, template.Height);
                matrix.Rotate(-90);
            }
            template.Transform(matrix);
            template.BeginText();
            template.SetFontAndSize(BaseFont.CreateFont(), 12);
            if (rotate)
            {
                template.MoveText(0, template.Width - 12);
            }
            else
            {
                template.MoveText(0, template.Height - 12);
            }
            template.ShowText(xobjectText);

            template.EndText();

            Image xobjectImage = Image.GetInstance(template);

            if (rotate)
            {
                xobjectImage.RotationDegrees = 90;
            }
            doc.Add(xobjectImage);

            doc.Add(new Paragraph("C"));

            doc.Close();

            return(baos.ToArray());
        }
Ejemplo n.º 2
0
// ---------------------------------------------------------------------------

        /**
         * Generates a PDF file with the text 'Hello World'
         */
        public byte[] CreatePdf()
        {
            using (MemoryStream ms = new MemoryStream()) {
                using (Document document = new Document()) {
                    // step 2
                    PdfWriter writer = PdfWriter.GetInstance(document, ms);
                    // step 3
                    document.Open();
                    // step 4
                    // we add the text to the direct content, but not in the right order
                    PdfContentByte cb = writer.DirectContent;
                    BaseFont       bf = BaseFont.CreateFont();
                    cb.BeginText();
                    cb.SetFontAndSize(bf, 12);
                    cb.MoveText(88.66f, 367);
                    cb.ShowText("ld");
                    cb.MoveText(-22f, 0);
                    cb.ShowText("Wor");
                    cb.MoveText(-15.33f, 0);
                    cb.ShowText("llo");
                    cb.MoveText(-15.33f, 0);
                    cb.ShowText("He");
                    cb.EndText();
                    // we also add text in a form XObject
                    PdfTemplate tmp = cb.CreateTemplate(250, 25);
                    tmp.BeginText();
                    tmp.SetFontAndSize(bf, 12);
                    tmp.MoveText(0, 7);
                    tmp.ShowText("Hello People");
                    tmp.EndText();
                    cb.AddTemplate(tmp, 36, 343);
                }
                return(ms.ToArray());
            }
        }
        private byte[] CreatePdfWithXObject(String xobjectText)
        {
            MemoryStream baos   = new MemoryStream();
            Document     doc    = new Document();
            PdfWriter    writer = PdfWriter.GetInstance(doc, baos);

            writer.CompressionLevel = 0;
            doc.Open();

            doc.Add(new Paragraph("A"));
            doc.Add(new Paragraph("B"));

            PdfTemplate template = writer.DirectContent.CreateTemplate(100, 100);

            template.BeginText();
            template.SetFontAndSize(BaseFont.CreateFont(), 12);
            template.MoveText(5, template.Height - 5);
            template.ShowText(xobjectText);
            template.EndText();

            Image xobjectImage = Image.GetInstance(template);

            doc.Add(xobjectImage);

            doc.Add(new Paragraph("C"));

            doc.Close();

            return(baos.ToArray());
        }
        public void Test_Draw_Text()
        {
            var pdfFilePath = TestUtils.GetOutputFileName();
            var fileStream  = new FileStream(pdfFilePath, FileMode.Create);
            var pdfDoc      = new Document(PageSize.A4);
            var pdfWriter   = PdfWriter.GetInstance(pdfDoc, fileStream);

            pdfDoc.AddAuthor(TestUtils.Author);
            pdfDoc.Open();

            pdfDoc.Add(new Paragraph("Test"));

            PdfContentByte cb = pdfWriter.DirectContent;
            BaseFont       bf = BaseFont.CreateFont();

            cb.BeginText();
            cb.SetFontAndSize(bf, 12);
            cb.MoveText(88.66f, 367);
            cb.ShowText("ld");
            cb.MoveText(-22f, 0);
            cb.ShowText("Wor");
            cb.MoveText(-15.33f, 0);
            cb.ShowText("llo");
            cb.MoveText(-15.33f, 0);
            cb.ShowText("He");
            cb.EndText();

            PdfTemplate tmp = cb.CreateTemplate(250, 25);

            tmp.BeginText();
            tmp.SetFontAndSize(bf, 12);
            tmp.MoveText(0, 7);
            tmp.ShowText("Hello People");
            tmp.EndText();
            cb.AddTemplate(tmp, 36, 343);

            pdfDoc.Close();
            fileStream.Dispose();

            TestUtils.VerifyPdfFileIsReadable(pdfFilePath);
        }