A.ALMUSBAHI Ответов: 1

Как настроить таблицу iTextsharp "ячейки" с помощью элементов управления winform


Я немного застрял, и это мой первый раз, когда я использую iTextsharp, я пытаюсь создать приложение C#, которое генерирует случайные числа, а затем печатает его в PDF-файл в виде отчета о метке, пользователь будет иметь панель и метку в Ведьме, которую он может переместить в любое место на панели и может изменить размер панели, а также добавить изображение в качестве фонового изображения .

Теперь после того, как пользователь введет указанный размер и "перетащит" метку в нужное место внутри панели и выберет изображение в качестве фонового изображения, мой код начнет создавать таблицу iTextsharp с количеством столбцов и строк в зависимости от ввода пользователя, и каждая ячейка должна быть такого же размера, как панель из формы, и иметь такое же фоновое изображение, а текст должен быть в том же месте, что и у пользователя.,

То, что работает:
1-перетаскивание работает нормально.
2 - я могу распечатать ячейки таблицы с точным размером в качестве пользовательского ввода.

Вещи, которые не работают:
1 - я могу добавить изображение, но не могу растянуть его до размера ячейки при печати в PDF
2 - я не могу выровнять текст в точном положении, только (CENTER, TOP_LEFT, ..etc)
3 - я не могу добавить текст поверх изображения

Это скриншот формы :http://imgur.com/a/LAnSX

Это код для создания таблицы и добавления изображения и текста

private iTextSharp.text.Image myImage; 
private ImagePath = "path";

private void ExportToPDF_Click(object sender, EventArgs e)
        {
            try
            {
                saveFileDialog1.Filter = "pdf File |*.pdf";
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    FilePath = saveFileDialog1.FileName.ToString();   
                    //create the pdf file and open it 
                    FileStream fs = new FileStream(FilePath, FileMode.Create,            FileAccess.Write, FileShare.None);
                    Document document = new Document(PageSize.A4, pageLeftMargen, pageRightMargen, pageTopMargen, pageBottomMargen);
                    PdfWriter writer = PdfWriter.GetInstance(document, fs);
                    document.Open();

                    //create the table and set width and height
                    PdfPTable table = new PdfPTable(Get_Columens_Count());
                    table.LockedWidth = true;
                    table.TotalWidth = Get_Tabel_Width();

                    //set the size for evey Cell 
                    float[] a = new float[Get_Columens_Count()];
                    for (int i = 0; i < Get_Columens_Count(); i++)
                    {
                        a[i] = Convert.ToInt32(Get_CellsWidth());
                    }
                    table.SetWidths(a);

                    //Add new cell
                    PdfPCell cell = new PdfPCell();
                    cell.BorderWidth = CellBorderWidth;
                    cell.Padding = CellsPadding;
                    cell.FixedHeight = Convert.ToInt32(Get_Cells_Height());

                    if (checkBox1.Checked == true && File.Exists(ImagePath) == true)
                    {
                        //set the image
                        myImage = iTextSharp.text.Image.GetInstance(ImagePath);
                        cell.AddElement(myImage);
                        
                    }
                       //start creating the cells 
                    for (int i = 0; i < Convert.ToInt32(Get_Records_Count()); i++)
                    {
                        table.AddCell(cell);
                    }

                    document.Add(table);

                    document.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw;
            }
        }


Что я уже пробовал:

Что я пробовал :

Почти все, что я мог бы попытаться найти, погуглив и поискав формы, кажется, ничего не работает как разыскиваемое.

ScaleAbsolute
ScaleToFit

и еще много чего, чего я сейчас не могу вспомнить .

есть ли лучшая протяжка, чем та, которую я использую ?

заранее спасибо :)

1 Ответов

Рейтинг:
0

A.ALMUSBAHI

Нашел решение по stackOverFlow.com

Я использовал

PdfContentByte 
вместо таблиц и это решило мою проблему :)

Спасибо,