0

PDFの右下隅にテキストを追加する必要があります。注釈を使用してこれを正常に行うことができましたが、平坦化できなかったため、代わりに段落を介してテキストを追加しようとしました。今、私のテキストは何も表示されていません。以下のコードのどこが間違っているのか、誰か指摘してもらえますか? (または、注釈を平坦化する方法を教えてください...コメントアウトされた部分は正常に機能します。平坦化する必要があるだけです)

private MemoryStream AddPageNumbers(MemoryStream stream)
    {
        MemoryStream ms = new MemoryStream();
        PdfStamper Stamper = null;            
        PdfReader Reader = new PdfReader(stream);
        try
        {
            PdfCopyFields Copier = new PdfCopyFields(ms);
            Copier.AddDocument(Reader);
            Copier.Close();

            PdfReader docReader = new PdfReader(ms.ToArray());
            ms = new MemoryStream();
            Stamper = new PdfStamper(docReader, ms);                

            for (int i = 1; i <= Reader.NumberOfPages; i++)
            {                    
                //iTextSharp.text.Rectangle newRectangle = new iTextSharp.text.Rectangle(315, 19, 560, 33);
                //var pcb = new iTextSharp.text.pdf.PdfContentByte(Stamper.Writer);                                       

                //string PageNumber = "Confirmation of Completion Report " + i.ToString() + " of " + Reader.NumberOfPages.ToString();

                //FontFactory.RegisterDirectories();
                //Font fontNormalArial = new Font(FontFactory.GetFont("Arial", 8f, Font.NORMAL));                                      
                //Paragraph para = new Paragraph(PageNumber, fontNormalArial);

                //var annot = iTextSharp.text.pdf.PdfAnnotation.CreateFreeText(Stamper.Writer, newRectangle, para.Content, pcb);
                //annot.Flags = iTextSharp.text.pdf.PdfAnnotation.FLAGS_PRINT;                    
                //annot.BorderStyle = new iTextSharp.text.pdf.PdfBorderDictionary(0, 0);                                                         
                //Stamper.AddAnnotation(annot, i);

                //Stamper.FreeTextFlattening = true;
                //Stamper.FormFlattening = true;

                PdfContentByte cb = new PdfContentByte(Stamper.Writer);
                string PageNumber = "Confirmation of Completion Report " + i.ToString() + " of " + Reader.NumberOfPages.ToString();

                FontFactory.RegisterDirectories();
                Font fontNormalArial = new Font(FontFactory.GetFont("Arial", 10, Font.NORMAL));                    
                Paragraph para = new Paragraph(PageNumber, fontNormalArial);                    
                para.Alignment = Element.ALIGN_RIGHT;
                ColumnText ct = new ColumnText(cb);
                ct.AddText(para);
                ct.SetSimpleColumn(315, 19, 560 , 38);
                ct.SetIndent(316, false);
                ct.Go();                   

            }

        }
        catch (Exception ex)
        {
            string querystring = "?error=" + ex.Message.ToString();
            Response.Redirect("~/ErrorPage.aspx" + querystring);
        }
        finally
        {
            if (Stamper != null)
            {
                Stamper.Close();
            }
        }

        return ms;
    }
4

0 に答える 0