El PDF (Portable Document Format) se ha convertido en uno de los formatos más utilizados en el mundo de los documentos digitales. Varias industrias están utilizando el formato PDF para generar sus informes, facturas, facturas y otros tipos de documentos comerciales. El código de barras, por otro lado, se ha convertido en una parte esencial del negocio que contiene información en forma legible por máquina. En estos días, es posible que incluso encuentre un código de barras en sus recibos y facturas. En este artículo, presentaré un caso de uso en el que necesita crear un archivo PDF e incrustar un código de barras en él, por ejemplo, al generar una factura. Para la demostración, crearé un editor de PDF de ASP.NET mediante el cual podrá generar archivos PDF y códigos de barras mediante C# dentro de la aplicación web ASP.NET Core.

Esta aplicación web ASP.NET tendrá las siguientes características:

  • Un editor WYSIWYG para escribir el contenido del documento PDF.
  • Opción para generar un código de barras basado en el texto proporcionado.
  • Opción para establecer la simbología deseada del código de barras.

Requisitos previos para generar archivos PDF con código de barras en ASP.NET

Las siguientes son las herramientas y las API que necesitaría para crear el editor de PDF ASP.NET con funciones de código de barras.

Cree un editor de PDF ASP.NET con funciones de código de barras

Comencemos nuestro viaje y veamos cómo crear nuestro editor de PDF ASP.NET que permitirá generar PDF e incrustar código de barras con un solo clic.

  • Cree una nueva aplicación web ASP.NET Core en Visual Studio.
Crear una aplicación web ASP.NET Core
  • Seleccione Aplicación web (Modelo-Vista-Controlador) de las plantillas.
ASP.NET MVC
  • Instale los paquetes de Aspose.PDF, Aspose.BarCode y CKEditor.
Agregue Aspose .NET PDF y API de código de barras
  • Descargue el paquete de CKEditor, extráigalo y copie/pegue la carpeta en el directorio wwwroot. También puede integrar cualquiera de sus editores HTML WYSIWYG favoritos según sus requisitos.

  • Agregue el siguiente script en la vista Views/Home/index.cshtml.

@{
    ViewData["Title"] = "PDF Creator";
}
<script src="~/ckeditor/ckeditor.js"></script>
<br />
<form method="post">
    <div class="row">
        <div class="col-md-12">
            <textarea name="editor1" id="editor1" rows="80" cols="80">
                Start creating your PDF document.
            </textarea>
            <br />
            <script>
                // Replace the <textarea id="editor1"> with a CKEditor
                // instance, using default configuration.
                CKEDITOR.replace('editor1');
            </script>
        </div>
        <hr />
    </div>
    <div class="row">
        <div class="col-md-12">
            <h3>Create a Barcode</h3>
        </div>
    </div>
    <hr />
    <div class="row">
        <div class="col-md-9 form-horizontal" align="center">
            <div class="form-group">
                <label class="control-label col-sm-2" for="CodeText">Code Text</label>
                <div class="col-sm-10">
                    <input class="form-control" type="text" name="codeText" id="codeText" placeholder="Code text" />
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-sm-2" for="barcodeType">Symbology</label>
                <div class="col-sm-10">
                    <select name="barcodeType" class="form-control">
                        <option value="Code128">Code128</option>
                        <option value="Code11">Code11</option>
                        <option value="QR">QR</option>
                        <option value="Pdf417">Pdf417</option>
                        <option value="Datamatrix">Datamatrix</option>
                    </select>
                </div>
            </div>
        </div>
    </div>
    <hr />
    <div class="row">
        <div class="col-md-12" align="center">
            <input type="submit" class="btn btn-lg btn-success" value="Generate PDF" />
        </div>
    </div>
</form>
  • Agregue los siguientes métodos en Controllers/HomeController.cs.
[HttpPost]
public FileResult Index(string editor1, string codeText, string barcodeType)
{
	// generate a barcode
	string barcodeImagePath = Path.Combine("wwwroot/barcodes/", Guid.NewGuid() + ".png");
	SymbologyEncodeType type = GetBarcodeSymbology(barcodeType);
	BarcodeGenerator generator = new BarcodeGenerator(type, codeText);
	generator.Parameters.BackColor = System.Drawing.Color.Transparent;
	// set resolution of the barcode image
	generator.Parameters.Resolution = 200;
	// generate barcode
	generator.Save(barcodeImagePath, BarCodeImageFormat.Png);

	// create a unique file name for PDF
	string fileName = Guid.NewGuid() + ".pdf";
	// convert HTML text to stream
	byte[] byteArray = Encoding.UTF8.GetBytes(editor1);
	// generate PDF from the HTML
	MemoryStream stream = new MemoryStream(byteArray);
	HtmlLoadOptions options = new HtmlLoadOptions();
	Document pdfDocument = new Document(stream, options);

	// add barcode image to the generated PDF 
	pdfDocument = InsertImage(pdfDocument, barcodeImagePath);

	// create memory stream for the PDF file
	Stream outputStream = new MemoryStream();
	// save PDF to output stream
	pdfDocument.Save(outputStream);

	// return generated PDF file
	return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
}
private SymbologyEncodeType GetBarcodeSymbology(string symbology)
{
	if (symbology.ToLower() == "qr")
		return EncodeTypes.QR;
	else if (symbology.ToLower() == "code128")
		return EncodeTypes.Code128;
	else if (symbology.ToLower() == "code11")
		return EncodeTypes.Code11;
	else if (symbology.ToLower() == "pdf417")
		return EncodeTypes.Pdf417;
	else if (symbology.ToLower() == "datamatrix")
		return EncodeTypes.DataMatrix;
	else
		return EncodeTypes.Code128; // default barcode type
}
private Document InsertImage(Document document, string barcodeImagePath)
{
	// get page from Pages collection of PDF file
	Aspose.Pdf.Page page = document.Pages[1];
	// create an image instance
	Aspose.Pdf.Image img = new Aspose.Pdf.Image();
	img.IsInLineParagraph = true;
	// set Image Width and Height in Points
	img.FixWidth = 100;
	img.FixHeight = 100;
	img.HorizontalAlignment = HorizontalAlignment.Right;
	img.VerticalAlignment = VerticalAlignment.Top;
	// set image type as SVG
	img.FileType = Aspose.Pdf.ImageFileType.Unknown;
	// path for source barcode image file
	img.File = barcodeImagePath;
	page.Paragraphs.Add(img);
	// return updated PDF document
	return document;
}
  • Cree la aplicación y ejecútela en su navegador favorito.
Editor PDF ASP.NET con funciones de código de barras

Generación de un PDF con ASP.NET PDF Editor

Los siguientes son los pasos, así como la demostración de cómo generar un archivo PDF e incrustar un código de barras con un solo clic.

  • Escriba o copie/pegue el contenido del documento PDF en el área del editor.
  • Configure el texto del código para generar el código de barras.
  • Seleccione la simbología de código de barras que desee (consulte todas las simbologías de códigos de barras admitidas).
  • Haga clic en el botón Generar PDF para crear el PDF con un código de barras.

Descargar código fuente

Puede descargar el código fuente completo de este editor PDF ASP.NET desde aquí.

Pruebe las API de Aspose de forma gratuita

Obtenga su licencia temporal y pruebe nuestras API gratis durante un mes.

Ver también