Il PDF (Portable Document Format) è diventato uno dei formati più utilizzati nel mondo dei documenti digitali. Vari settori utilizzano il formato PDF per generare report, fatture, fatture e altri tipi di documenti aziendali. Il codice a barre, d’altra parte, è diventato una parte essenziale del business che contiene informazioni in un formato leggibile dalla macchina. In questi giorni, potresti persino trovare un codice a barre su fatture e fatture. In questo articolo presenterò un caso d’uso in cui è necessario creare un file PDF e incorporarvi un codice a barre, ad esempio durante la generazione di una fattura. Per la dimostrazione, creerò un editor PDF ASP.NET utilizzando il quale sarai in grado di generare i file PDF e i codici a barre utilizzando C# all’interno dell’applicazione Web ASP.NET Core.

Questa applicazione web ASP.NET avrà le seguenti caratteristiche:

  • Un editor WYSIWYG per scrivere il contenuto del documento PDF.
  • Opzione per generare un codice a barre in base al testo fornito.
  • Possibilità di impostare la simbologia desiderata del codice a barre.

Prerequisiti per la generazione di PDF con codice a barre in ASP.NET

Di seguito sono riportati gli strumenti e le API necessari per creare l’editor PDF ASP.NET con funzionalità di codici a barre.

Crea un editor PDF ASP.NET con funzionalità di codici a barre

Iniziamo il nostro viaggio e vediamo come creare il nostro editor PDF ASP.NET che consentirà di generare PDF e incorporare codici a barre con un solo clic.

  • Creare una nuova applicazione Web ASP.NET Core in Visual Studio.
Crea un'applicazione Web ASP.NET Core
  • Seleziona Applicazione Web (Model-View-Controller) dai modelli.
ASP.NET MVC
  • Installa i pacchetti di Aspose.PDF, Aspose.BarCode e CKEditor.
Aggiungi Aspose .NET PDF e API di codici a barre
  • Scarica il pacchetto di CKEditor, estrailo e copia/incolla la cartella nella directory wwwroot. Puoi anche integrare uno qualsiasi dei tuoi editor HTML WYSIWYG preferiti in base alle tue esigenze.

  • Aggiungi il seguente script nella 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>
  • Aggiungi i seguenti metodi in 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;
}
  • Crea l’applicazione ed eseguila nel tuo browser preferito.
Editor PDF ASP.NET con funzionalità di codici a barre

Generazione di un PDF con ASP.NET PDF Editor

Di seguito sono riportati i passaggi e la dimostrazione di come generare un file PDF e incorporare un codice a barre con un solo clic.

  • Scrivi o copia/incolla il contenuto del documento PDF nell’area dell’editor.
  • Imposta il testo del codice per generare il codice a barre.
  • Seleziona la simbologia del codice a barre desiderata (vedi tutte le simbole dei codici a barre supportate).
  • Fare clic sul pulsante Genera PDF per creare il PDF con un codice a barre.

Scarica il codice sorgente

È possibile scaricare il codice sorgente completo di questo editor PDF ASP.NET da qui.

Prova gratuitamente le API di Aspose

Ottieni la tua licenza temporanea e prova le nostre API gratuitamente per un mese.

Guarda anche