示例#1
0
// ===========================================================================
        public void Write(Stream stream)
        {
            // step 1
            using (Document document = new Document()) {
                // step 2
                PdfWriter writer = PdfWriter.GetInstance(document, stream);
                writer.SetTagged();
                // step 3
                document.Open();
                // step 4
                PdfContentByte cb = writer.DirectContent;
                BaseFont       bf = BaseFont.CreateFont(
                    BaseFont.HELVETICA,
                    BaseFont.CP1252, BaseFont.NOT_EMBEDDED
                    );
                BaseFont bf2 = BaseFont.CreateFont(
                    "c:/windows/fonts/msgothic.ttc,1",
                    BaseFont.IDENTITY_H, BaseFont.EMBEDDED
                    );

                PdfStructureTreeRoot root = writer.StructureTreeRoot;
                PdfStructureElement  div  = new PdfStructureElement(
                    root, new PdfName("Div")
                    );
                PdfDictionary dict;

                cb.BeginMarkedContentSequence(div);

                cb.BeginText();
                cb.MoveText(36, 788);
                cb.SetFontAndSize(bf, 12);
                cb.SetLeading(18);
                cb.ShowText("These are some famous movies by Stanley Kubrick: ");
                dict = new PdfDictionary();
                dict.Put(PdfName.E, new PdfString("Doctor"));
                cb.BeginMarkedContentSequence(new PdfName("Span"), dict, true);
                cb.NewlineShowText("Dr.");
                cb.EndMarkedContentSequence();
                cb.ShowText(
                    " Strangelove or: How I Learned to Stop Worrying and Love the Bomb."
                    );
                dict = new PdfDictionary();
                dict.Put(PdfName.E, new PdfString("Eyes Wide Shut."));
                cb.BeginMarkedContentSequence(new PdfName("Span"), dict, true);
                cb.NewlineShowText("EWS");
                cb.EndMarkedContentSequence();
                cb.EndText();
                dict = new PdfDictionary();
                dict.Put(PdfName.LANG, new PdfString("en-us"));
                dict.Put(new PdfName("Alt"), new PdfString("2001: A Space Odyssey."));
                cb.BeginMarkedContentSequence(new PdfName("Span"), dict, true);
                Image img = Image.GetInstance(Path.Combine(
                                                  Utility.ResourcePosters, "0062622.jpg"
                                                  ));
                img.ScaleToFit(1000, 100);
                img.SetAbsolutePosition(36, 640);
                cb.AddImage(img);
                cb.EndMarkedContentSequence();

                cb.BeginText();
                cb.MoveText(36, 620);
                cb.SetFontAndSize(bf, 12);
                cb.ShowText("This is a movie by Akira Kurosawa: ");
                dict = new PdfDictionary();
                dict.Put(PdfName.ACTUALTEXT, new PdfString("Seven Samurai."));
                cb.BeginMarkedContentSequence(new PdfName("Span"), dict, true);
                cb.SetFontAndSize(bf2, 12);
                cb.ShowText("\u4e03\u4eba\u306e\u4f8d");
                cb.EndMarkedContentSequence();
                cb.EndText();

                cb.EndMarkedContentSequence();
            }
        }
示例#2
0
// ===========================================================================
        public void Write(Stream stream)
        {
            // step 1
            using (Document document = new Document()) {
                // step 2
                PdfWriter writer = PdfWriter.GetInstance(document, stream);
                // step 3
                document.Open();
                // step 4
                PdfContentByte canvas = writer.DirectContent;
                String         text   = "AWAY again";
                BaseFont       bf     = BaseFont.CreateFont();
                canvas.BeginText();
                // line 1
                canvas.SetFontAndSize(bf, 16);
                canvas.MoveText(36, 806);
                canvas.MoveTextWithLeading(0, -24);
                canvas.ShowText(text);
                // line 2
                canvas.SetWordSpacing(20);
                canvas.NewlineShowText(text);
                // line 3
                canvas.SetCharacterSpacing(10);
                canvas.NewlineShowText(text);
                canvas.SetWordSpacing(0);
                canvas.SetCharacterSpacing(0);
                // line 4
                canvas.SetHorizontalScaling(50);
                canvas.NewlineShowText(text);
                canvas.SetHorizontalScaling(100);
                // line 5
                canvas.NewlineShowText(text);
                canvas.SetTextRise(15);
                canvas.SetFontAndSize(bf, 12);
                canvas.SetColorFill(BaseColor.RED);
                canvas.ShowText("2");
                canvas.SetColorFill(GrayColor.GRAYBLACK);
                // line 6
                canvas.SetLeading(56);
                canvas.NewlineShowText("Changing the leading: " + text);
                canvas.SetLeading(24);
                canvas.NewlineText();
                // line 7
                PdfTextArray array = new PdfTextArray("A");
                array.Add(120);
                array.Add("W");
                array.Add(120);
                array.Add("A");
                array.Add(95);
                array.Add("Y again");
                canvas.ShowText(array);
                canvas.EndText();

                canvas.SetColorFill(BaseColor.BLUE);
                canvas.BeginText();
                canvas.SetTextMatrix(360, 770);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();

                canvas.BeginText();
                canvas.SetTextMatrix(360, 730);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_STROKE);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();

                canvas.BeginText();
                canvas.SetTextMatrix(360, 690);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();

                canvas.BeginText();
                canvas.SetTextMatrix(360, 650);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();

                PdfTemplate template = canvas.CreateTemplate(200, 36);
                template.SetLineWidth(2);
                for (int i = 0; i < 6; i++)
                {
                    template.MoveTo(0, i * 6);
                    template.LineTo(200, i * 6);
                }
                template.Stroke();

                canvas.SaveState();
                canvas.BeginText();
                canvas.SetTextMatrix(360, 610);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_CLIP);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();
                canvas.AddTemplate(template, 360, 610);
                canvas.RestoreState();

                canvas.SaveState();
                canvas.BeginText();
                canvas.SetTextMatrix(360, 570);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_STROKE_CLIP);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();
                canvas.AddTemplate(template, 360, 570);
                canvas.RestoreState();

                canvas.SaveState();
                canvas.BeginText();
                canvas.SetTextMatrix(360, 530);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE_CLIP);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();
                canvas.AddTemplate(template, 360, 530);
                canvas.RestoreState();

                canvas.SaveState();
                canvas.BeginText();
                canvas.SetTextMatrix(360, 490);
                canvas.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_CLIP);
                canvas.SetFontAndSize(bf, 24);
                canvas.ShowText(text);
                canvas.EndText();
                canvas.AddTemplate(template, 360, 490);
                canvas.RestoreState();
            }
        }