C #, Winform - создание PDF - PullRequest
       4

C #, Winform - создание PDF

2 голосов
/ 29 сентября 2011

Я все еще немного новичок в программировании, но я хотел бы создать программу, которая могла бы создавать PDF-файлы с некоторой информацией в них.

Кто-нибудь может порекомендовать хороший способ сделать это, я вроденужно создать обычную страницу формата А4 с таблицей на ней ... и другой информацией.

Возможно ли создать ее из Visual Studio 2010 - или мне нужна какая-то надстройка, подобная этой?

Ответы [ 4 ]

8 голосов
/ 29 сентября 2011

Как сказал @Jon Skeet, вы можете использовать iTextSharp (который является портом C # Java iText).

Сначала загрузите iTextSharp (в настоящее время 5.1.2), извлеките itextsharp.dll в какое-то место и добавьте ссылку на него в Visual Studio. Затем используйте следующий код, который представляет собой полнофункциональное приложение WinForms, которое создает очень простую таблицу в документе A4. См. Комментарии в коде для более подробного объяснения.

using System;
using System.Text;
using System.Windows.Forms;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace Full_Profile1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            //This is the absolute path to the PDF that we will create
            string outputFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Sample.pdf");

            //Create a standard .Net FileStream for the file, setting various flags
            using (FileStream fs = new FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                //Create a new PDF document setting the size to A4
                using (Document doc = new Document(PageSize.A4))
                {
                    //Bind the PDF document to the FileStream using an iTextSharp PdfWriter
                    using (PdfWriter w = PdfWriter.GetInstance(doc, fs))
                    {
                        //Open the document for writing
                        doc.Open();

                        //Create a table with two columns
                        PdfPTable t = new PdfPTable(2);

                        //Borders are drawn by the individual cells, not the table itself.
                        //Tell the default cell that we do not want a border drawn
                        t.DefaultCell.Border = 0;

                        //Add four cells. Cells are added starting at the top left of the table working left to right first, then down
                        t.AddCell("R1C1");
                        t.AddCell("R1C2");
                        t.AddCell("R2C1");
                        t.AddCell("R2C2");

                        //Add the table to our document
                        doc.Add(t);

                        //Close our document
                        doc.Close();
                    }
                }
            }

            this.Close();
        }
    }
}
4 голосов
/ 29 сентября 2011

Возможно, вы захотите использовать библиотеку, такую ​​как iText , которая позволит вам создавать PDF документ программно.

Непонятно, что вы подразумеваете под «созданием этого из Visual Studio 2010» - если вы ожидаете визуального дизайнера, я думаю, вы будете разочарованы; Я не знаю ничего, что позволило бы вам сделать это легко. Тем не менее, это не звучит так, как будто у вас есть особенно сложные требования, так что просто написать код, чтобы сделать это, не должно быть слишком сложно.

3 голосов
/ 29 сентября 2011

Для этой цели доступно несколько библиотек. Вот некоторые из них:

0 голосов
/ 29 сентября 2011

Я использовал iTextSharp один раз для объединения и разделения pdf, но потерял эти файлы.Но iTextSharp это хорошо.Что касается вашей необходимости создавать таблицы и все такое, я думаю, вам придется написать обычный код, а затем вам придется преобразовать их в байты, а затем создать из него файл PDF.Насколько я помню, iTextSharp работает именно так.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...