C#,Winform - 创建PDF

时间:2011-09-29 17:34:14

标签: c# winforms visual-studio pdf

我在编程方面仍然有点新鲜,但我想创建一个可以创建PDF的程序,其中包含一些信息。

有人可以推荐一种巧妙的方式,我需要创建一个带有桌子的常规A4页面......以及其他一些信息。

是否可以在Visual Studio 2010中创建它 - 或者我是否需要某种类似的加载项?

4 个答案:

答案 0 :(得分:8)

正如@Jon Skeet所说,你可以使用iTextSharp(它是Java iText的C#端口)。

首先,download 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();
        }
    }
}

答案 1 :(得分:4)

您可能希望使用iText等库,这样可以编程方式构建PDF文档。

“在Visual Studio 2010中创建它”并不清楚你的意思 - 如果你期待一个视觉设计师,我想你会感到失望;我不知道任何可以让你轻松做到的事情。但是,听起来并不是特别棘手的要求,所以只要编写代码就不会太难。

答案 2 :(得分:3)

有几个库可用于此目的。以下是一些:

答案 3 :(得分:0)

我曾经使用iTextSharp一次合并和分割pdf,但丢失了这些文件。但iTextSharp很好。关于创建表和所有表的需要,我认为你必须编写常规代码,然后你必须将它们转换成字节,然后从中创建一个pdf文件。我记得,iTextSharp以这种方式工作。 希望它有所帮助。