ITextSharp - текстовое поле в PdfPCell

Я использую iTextSharp для создания PDF, как я могу добавить текстовое поле в PdfPCell?

7
задан studiohack 16 November 2011 в 03:45
поделиться

2 ответа

На самом деле вы не стали бы добавлять «текстовое поле» в PdfPCell, вы бы создали PdfPCell и добавили к нему текст (или другой материал).

mikesdotnetting.com может иметь самый ясный пример , и всегда есть учебник iTextSharp .

7
ответ дан 6 December 2019 в 12:47
поделиться

Попробуйте. Меня устраивает.

Document doc = new Document(PageSize.LETTER, 18f, 18f, 18f, 18f);
MemoryStream ms = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();

// Create your PDFPTable here....

TextField tf = new TextField(writer, new iTextSharp.text.Rectangle(67, 585, 140, 800), "cellTextBox");
PdfPCell tbCell = new PdfPCell();
iTextSharp.text.pdf.events.FieldPositioningEvents events = new iTextSharp.text.pdf.events.FieldPositioningEvents(writer, tf.GetTextField());
tbCell.CellEvent = events; 

myTable.AddCell(tbCell);

// More code...

Я адаптировал этот код из этого сообщения.

Изменить:

Вот полное рабочее консольное приложение, которое помещает TextBox в ячейку таблицы. Я старался свести код к минимуму.

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace iTextSharpTextBoxInTableCell
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PDF with a TextBox in a table cell
            BaseFont bfHelvetica = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1250, false);
            Font helvetica12 = new Font(bfHelvetica, 12, Font.NORMAL, Color.BLACK);

            Document doc = new Document(PageSize.LETTER, 18f, 18f, 18f, 18f);
            FileStream fs = new FileStream("TextBoxInTableCell.pdf", FileMode.Create);
            PdfWriter writer = PdfWriter.GetInstance(doc, fs);

            doc.Open();
            PdfPTable myTable = new PdfPTable(1);
            myTable.TotalWidth = 568f;
            myTable.LockedWidth = true;
            myTable.HorizontalAlignment = 0;

            TextField tf = new TextField(writer, new iTextSharp.text.Rectangle(67, 585, 140, 800), "cellTextBox");
            PdfPCell tbCell = new PdfPCell(new Phrase(" ", helvetica12));
            iTextSharp.text.pdf.events.FieldPositioningEvents events = 
                new iTextSharp.text.pdf.events.FieldPositioningEvents(writer, tf.GetTextField());
            tbCell.CellEvent = events;

            myTable.AddCell(tbCell); 

            doc.Add(myTable);

            doc.Close();

            fs.Close();

            Console.WriteLine("End Of Program Execution");
            Console.ReadLine();
        }
    }
}

Хороший шанс

7
ответ дан 6 December 2019 в 12:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: