user1180170
user1180170

Reputation: 37

How to create PDF file in C#.Net

I want to create pdf file in c#. Pdf file contains text files and images. I want to arrange that text files and images at runtime and after arranging I want to save it as .pdf file. Please help me.

Thanks in advance.

Upvotes: 2

Views: 12133

Answers (8)

Amine Moh
Amine Moh

Reputation: 1

Try to download and add the reference of bytescout then use this code :

using System.Diagnostics;
using Bytescout.PDF;

namespace WordSpacing
{
    /// <summary>
    /// This example demonstrates how to change the word spacing.
    /// </summary>
    class Program
    {
        static void Main()
        {
            // Create new document
            Document pdfDocument = new Document();
            pdfDocument.RegistrationName = "demo";
            pdfDocument.RegistrationKey = "demo";
            // Add page
            Page page = new Page(PaperFormat.A4);
            pdfDocument.Pages.Add(page);

            Canvas canvas = page.Canvas;

            Font font = new Font("Arial", 16);
            Brush brush = new SolidBrush();
            StringFormat stringFormat = new StringFormat();

            // Standard word spacing
            stringFormat.WordSpacing = 0.0f;
            canvas.DrawString("Standard word spacing 0.0", font, brush, 20, 20, stringFormat);

            // Increased word spacing
            stringFormat.WordSpacing = 5.0f;
            canvas.DrawString("Increased word spacing 5.0", font, brush, 20, 50, stringFormat);

            // Reduced word spacing
            stringFormat.WordSpacing = -2.5f;
            canvas.DrawString("Reduced word spacing -2.5", font, brush, 20, 80, stringFormat);


            // Save document to file
            pdfDocument.Save("result.pdf");

            // Cleanup 
            pdfDocument.Dispose();

            // Open document in default PDF viewer app
            Process.Start("result.pdf");
        }
    }
}

Upvotes: 0

Dhiraj Shejale
Dhiraj Shejale

Reputation: 1

// paste on button click

Document pdfDoc = new Document(PageSize.A4, 25, 10, 25, 10);

            PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);

            pdfDoc.Open();

            Paragraph Text = new Paragraph("This is test file"); // hardcode text

            pdfDoc.Add(new Phrase(this.lbl1.Text.Trim())); //from label

            pdfDoc.Add(new Phrase(this.txt1.Text.Trim())); //from textbox

            pdfDoc.Add(Text);

            pdfWriter.CloseStream = false;

            pdfDoc.Close();

            Response.Buffer = true;

            Response.ContentType = "application/pdf";

            Response.AddHeader("content-disposition", "attachment;filename=Example.pdf");
            Response.Cache.SetCacheability(HttpCacheability.NoCache);

            Response.Write(pdfDoc);

            Response.End();

Upvotes: 0

Finisher001
Finisher001

Reputation: 455

Try This,

you need to download wnvhtmlconvert.dll to use pdfconverter class

--html side

  <table id="tbl" runat="server"  style="width: 940px;" cellpadding="0" cellspacing="0" border="0">
                <tr id="tr" runat="server">
                    <td id="td" runat="server" align="center" valign="top"></td>
                </tr>
            </table>

--code side

 Imports System.Web.UI.WebControls
    Imports System.Web.UI.WebControls.WebParts
    Imports System.Web.UI.HtmlControls
    Imports System.IO
    Imports System.Collections.Generic
    Imports System.Drawing

    Public Sub ExportQuickScToPDF()
        Dim stringWrite As New System.IO.StringWriter()
        Dim htmlWrite As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(stringWrite)
        Dim pdfByte As [Byte]() = Nothing
        Dim strPageBreak As String = "<br style=""page-break-before: always"" />"
        Dim lblPageBreak As New Label
        Dim lbltext As New Label
        lblPageBreak.Text = strPageBreak

        'add image 
        Dim imgqsc As New System.Web.UI.WebControls.Image
        imgqsc.ImageUrl = "path"
        td.Controls.Add(imgqsc)
        tbl.RenderControl(htmlWrite)
        'add text
        lbltext.Text = "text"
        lbltext.RenderControl(htmlWrite)
        'add page break
        lblPageBreak.Text = "text"
        lblPageBreak.RenderControl(htmlWrite)

        Dim objPdf As New PdfConverter()
objPdf.LicenseKey = "license key with dll"
        objPdf.PdfFooterOptions.ShowPageNumber = False
        objPdf.PdfFooterOptions.FooterTextFontSize = 10
        objPdf.PdfDocumentOptions.ShowHeader = True
        objPdf.PdfDocumentOptions.ShowFooter = False
        objPdf.PdfDocumentOptions.EmbedFonts = True
        objPdf.PdfDocumentOptions.LiveUrlsEnabled = True
        objPdf.RightToLeftEnabled = False
        objPdf.PdfSecurityOptions.CanPrint = True
        objPdf.PdfSecurityOptions.CanEditContent = True
        objPdf.PdfSecurityOptions.UserPassword = ""
        objPdf.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Landscape
        objPdf.PdfDocumentInfo.CreatedDate = DateTime.Now
        objPdf.PdfDocumentInfo.AuthorName = ""

        pdfByte = objPdf.GetPdfBytesFromHtmlString(stringWrite.ToString())

        Session("pdfByte") = pdfByte
    End Sub

you need to add reference of that dll and also import it in code

Imports Winnovative.WnvHtmlConvert

Upvotes: 1

Aleksej Vasinov
Aleksej Vasinov

Reputation: 2797

Me votes for iText too :) Rather easy and comfortable to start with:

    string pdfFilename = @"c:\temp\test.pdf";
    string imageFilename = @"C:\map.jpg";

    // Create PDF writer, document and image to put
    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(imageFilename);
    Document doc = new Document();
    PdfWriter pdfW = PdfWriter.GetInstance(doc, new FileStream(pdfFilename, FileMode.Create));

    // Open created PDF and insert image to it
    doc.Open();
    doc.Add(image);
    doc.Close();

Upvotes: 0

Likurg
Likurg

Reputation: 2760

At first get reference, then try to use this code

using System.Runtime.InteropServices;
[DllImport("shell32.dll")]
public static extern int ShellExecute(int hWnd,
string lpszOp, string lpszFile, string lpszParams, string lpszDir,int FsShowCmd);
ShellExecute(0, "OPEN", args[0] + ".pdf", null, null, 0);

Or use this sharppdf or this itextsharp

Upvotes: -2

Matteo Codogno
Matteo Codogno

Reputation: 1579

To create PDF i use 'iText' library, is open and it's really easy to use. You can download iText here.

Upvotes: 0

ABH
ABH

Reputation: 3439

You can use iTextSharp. There are some other libraries as well. Click here.

Upvotes: 0

Kamil Lach
Kamil Lach

Reputation: 4629

You should try: http://itextpdf.com/

I net there is a lot examples how to use it for purpose you described.

Upvotes: 2

Related Questions