[PDF][1] (Portable Document Format) is een van de meest gebruikte formaten geworden in de wereld van digitale documenten. Verschillende industrieën gebruiken het PDF-formaat om hun rapporten, facturen, rekeningen en andere soorten zakelijke documenten te genereren. De streepjescode daarentegen is een essentieel onderdeel geworden van het bedrijf dat informatie bevat in een machineleesbare vorm. Tegenwoordig vindt u misschien zelfs een streepjescode op uw rekeningen en facturen. In dit artikel presenteer ik een use-case waarbij u een PDF-bestand moet maken en er een barcode op moet insluiten, bijvoorbeeld bij het genereren van een factuur. Voor de demonstratie maak ik een ASP.NET PDF-editor waarmee u de PDF-bestanden en streepjescodes kunt genereren met behulp van C# binnen de ASP.NET Core-webtoepassing. Deze ASP.NET-webtoepassing heeft de volgende kenmerken:

  • Een WYSIWYG-editor om de inhoud van het PDF-document te schrijven.
  • Optie om een streepjescode te genereren op basis van de verstrekte tekst.
  • Optie om de gewenste symbologie van de streepjescode in te stellen.

Vereisten voor het genereren van PDF’s met streepjescode in ASP.NET

Hieronder volgen de tools en API’s die u nodig zou hebben om de ASP.NET PDF Editor met streepjescodefuncties te maken.

  • Visual Studio 2017 of later.
  • [Aspose.PDF voor .NET][2] – Een .NET PDF-API.
  • [Aspose.BarCode voor .NET][3] – .NET Barcode Generator en Scanner API.

Maak een ASP.NET PDF-editor met streepjescodefuncties

Laten we onze reis beginnen en kijken hoe we onze ASP.NET PDF-editor kunnen maken waarmee we PDF kunnen genereren en streepjescodes kunnen insluiten met een enkele klik.

  • Maak een nieuwe ASP.NET Core-webtoepassing in Visual Studio.

    Maak een ASP.NET Core-webtoepassing

  • Selecteer Webtoepassing (Model-View-Controller) uit de sjablonen.

    ASP.NET MVC

  • Installeer de pakketten van Aspose.PDF, Aspose.BarCode en CKEditor.

    Aspose .NET PDF- en barcode-API's toevoegen

  • Download het [pakket][4] van CKEditor, pak het uit en kopieer/plak de map in de wwwroot-directory. U kunt ook al uw favoriete WYSIWYG HTML-editors integreren op basis van uw vereisten.

  • Voeg het volgende script toe in de weergave 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>
  • Voeg de volgende methoden toe 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;
}
  • Bouw de applicatie en voer deze uit in uw favoriete browser.
    ASP.NET PDF-editor met streepjescodefuncties

Een PDF genereren met ASP.NET PDF Editor

Hieronder volgen de stappen en de demonstratie van het genereren van een PDF-bestand en het insluiten van een streepjescode met een enkele klik.

  • Schrijf of kopieer/plak de inhoud van het PDF-document in het editorgebied.
  • Stel de codetekst in om de streepjescode te genereren.
  • Selecteer de gewenste barcodesymboliek (bekijk alle [ondersteunde barcodesymbolen][5]).
  • Klik op de knop PDF genereren om de PDF te maken met een streepjescode erop.