فرمت PDF(فرمت سند قابل حمل) به یکی از فرمت‌های پر استفاده در دنیای مستندات دیجیتال تبدیل شده است. صنایع مختلف از فرمت PDF برای تولید گزارش‌ها، فاکتورها، صورتحساب‌ها و سایر انواع مستندات تجاری استفاده می‌کنند. از سوی دیگر، بارکد به بخشی اساسی از کسب و کار تبدیل شده است که اطلاعات را به شکل قابل خواندن توسط ماشین در بر دارد. این روزها، حتی ممکن است بارکدی را بر روی صورتحساب‌ها و فاکتورهایتان پیدا کنید. در این مقاله، من یک مورد استفاده را ارائه می‌دهم که در آن نیاز دارید یک فایل PDF ایجاد کنید و یک بارکد بر روی آن درج کنید، به عنوان مثال، هنگام تولید یک فاکتور. برای نمایش، من یک ویرایشگر PDF ASP.NET ایجاد خواهم کرد که با استفاده از آن می‌توانید فایل‌های PDF و بارکدها را با استفاده از C# در یک برنامه وب ASP.NET Core تولید کنید.

این برنامه وب ASP.NET دارای ویژگی‌های زیر خواهد بود:

  • ویرایشگر WYSIWYG برای نوشتن محتوای سند PDF.
  • گزینه‌ای برای ایجاد بارکد بر اساس متن ارائه شده.
  • گزینه‌ای برای تنظیم نمادشناسی مورد نظر بارکد.

Prerequisites for Generating PDFs having Barcode in ASP.NET

ابزارها و API های زیر برای ایجاد ویرایشگر PDF ASP.NET با ویژگی‌های بارکد مورد نیاز است.

ایجاد ویرایشگر PDF ASP.NET با ویژگی‌های بارکد

ما بیایید سفر خود را آغاز کنیم و ببینیم چگونه می‌توانیم ویرایشگر PDF ASP.NET خود را ایجاد کنیم که به ما اجازه می‌دهد با یک کلیک PDF تولید کرده و بارکد را وارد کنیم.

  • یک برنامه وب جدید ASP.NET Core در ویژوال استودیو ایجاد کنید.
ایجاد برنامه وب ASP.NET Core
  • از الگوها، برنامه وب (مدل-نمای-کنترلر) را انتخاب کنید.
ASP.NET MVC
  • نصب پکیج‌های Aspose.PDF، Aspose.BarCode و CKEditor.
Add Aspose .NET PDF and Barcode APIs
  • Download the CKEditor`s package, extract it, and copy/paste the folder in wwwroot directory. You can also integrate any of your favorite WYSIWYG HTML editors based on your requirement.

  • اسکریپت زیر را به نمای 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>
  • Add the following methods 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;
}
  • نرم‌افزار را بسازید و آن را در مرورگر مورد علاقه‌تان اجرا کنید.
ویرایشگر PDF ASP.NET با ویژگی‌های بارکد

تولید یک PDF با ویرایشگر PDF ASP.NET

مراحل زیر و همچنین نمایش نحوه ایجاد یک فایل PDF و قرار دادن برچسب بارکد با یک کلیک ارائه شده است.

  • Write or copy/paste the content of the PDF document in the editor area.
  • Set the code text to generate the barcode.
  • بارکد سمبولوجی مورد نظر خود را انتخاب کنید (به تمام سمبولوجی های بارکد پشتیبانی شده مراجعه کنید).
  • روی دکمه تولید PDF کلیک کنید تا PDF دارای بارکد ایجاد شود.

کد منبع را دانلود کنید

شما می‌توانید کد منبع کامل این ویرایشگر PDF ASP.NET را از اینجا دانلود کنید.

Try Aspose APIs for Free

گواهینامه موقت خود را بگیرید و برای یک ماه به صورت رایگان از API های ما استفاده کنید.

همچنین ببینید