如何使用itextsharp在pdf文件的文本框控件中底部对齐文本

时间:2015-03-30 05:35:59

标签: c# .net itextsharp itext

我需要在PDF文件中找到我从 TextBox 获取的文字。

我使用以下代码从pdf中的 TextBox 获取文字。

 for (int i = 1; i <= reader.NumberOfPages; i++)
        {

            iTextSharp.text.pdf.PdfArray array = reader.GetPageN(i).GetAsArray(iTextSharp.text.pdf.PdfName.ANNOTS);
            if (array == null) continue;
            for (int j = 0; j < array.Size; j++)
            {
                iTextSharp.text.pdf.PdfDictionary annot = array.GetAsDict(j);

                iTextSharp.text.pdf.PdfString text = annot.GetAsString(iTextSharp.text.pdf.PdfName.CONTENTS);

            }
        }

我正在使用 ItextSharp 库。错误截图

enter image description here

1 个答案:

答案 0 :(得分:1)

PdfReader reader = new PdfReader(SOURCE); 
PdfStamper stamper = new PdfStamper(reader, TARGET); 

TextField tf = new TextField(stamper.getWriter(), new Rectangle(300, 400, 
500, 420), text);
stamper.addAnnotation(tf.getTextField(), 1);

PdfContentByte overContent = stamper.getOverContent(1);
BaseFont baseFont = BaseFont.createFont();
overContent.setFontAndSize(baseFont, 12);
overContent.beginText();
overContent.showTextAligned(PdfContentByte.ALIGN_BOTTOM, text, 300,
405, 0);
overContent.endText();
stamper.close ();

或尝试这个

using (PdfStamper stamper = new PdfStamper(new PdfReader(inputFile), File.Create(outputFile)))
{
TextField tf = new TextField(stamper.Writer, new iTextSharp.text.Rectangle(0, 0, 100, 300), "Vertical");
stamper.AddAnnotation(tf.GetTextField(), 1);
stamper.Close();
}
相关问题