观看 David Jones,Agorus,与 Iron Suite 创造新的效益
观看 Milan Jovanović 使用 IronPDF
观看我们的团队演示产品
using IronBarCode; using System.Drawing; // Reading a barcode is easy with IronBarcode! var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf // To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class var myOptionsExample = new BarcodeReaderOptions { // Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail // There is a tradeoff in performance as more detail is set Speed = ReadingSpeed.Balanced, // Reader will stop scanning once a single barcode is found (if set to true) ExpectMultipleBarcodes = true, // By default, all barcode formats are scanned for // Specifying a subset of barcode types to search for would improve performance ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional, // Utilize multiple threads to read barcodes from multiple images in parallel Multithreaded = true, // Maximum threads for parallelized barcode reading // Default is 4 MaxParallelThreads = 2, // The area of each image frame in which to scan for barcodes // Specifying a crop area will significantly improve performance and avoid noisy parts of the image CropArea = new Rectangle(), // Special setting for Code39 barcodes // If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets UseCode39ExtendedMode = true }; // Read with the options applied var results = BarcodeReader.Read("barcode.png", myOptionsExample); // Create a barcode with one line of code var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8); // After creating a barcode, we may choose to resize myBarcode.ResizeTo(400, 100); // Save our newly-created barcode as an image myBarcode.SaveAsImage("EAN8.jpeg"); Image myBarcodeImage = myBarcode.Image; // Can be used as Image Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
Imports IronBarCode Imports System.Drawing ' Reading a barcode is easy with IronBarcode! Private resultFromFile = BarcodeReader.Read("file/barcode.png") ' From a file Private resultFromBitMap = BarcodeReader.Read(New Bitmap("barcode.bmp")) ' From a bitmap Private resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")) ' From an image Private resultFromPdf = BarcodeReader.ReadPdf("file/mydocument.pdf") ' From PDF use ReadPdf ' To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class Private myOptionsExample = New BarcodeReaderOptions With { .Speed = ReadingSpeed.Balanced, .ExpectMultipleBarcodes = True, .ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional, .Multithreaded = True, .MaxParallelThreads = 2, .CropArea = New Rectangle(), .UseCode39ExtendedMode = True } ' Read with the options applied Private results = BarcodeReader.Read("barcode.png", myOptionsExample) ' Create a barcode with one line of code Private myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8) ' After creating a barcode, we may choose to resize myBarcode.ResizeTo(400, 100) ' Save our newly-created barcode as an image myBarcode.SaveAsImage("EAN8.jpeg") Dim myBarcodeImage As Image = myBarcode.Image ' Can be used as Image Dim myBarcodeBitmap As Bitmap = myBarcode.ToBitmap() ' Can be used as Bitmap
Install-Package BarCode
IronBarCode supports various standard formats, from image files (jpeg, png, and jpg) to more programmatic formats where you would want to pass the variables around, such as a bitmap. Furthermore, it also supports external formats such as PDF, allowing IronBarCode to integrate seamlessly in any codebase, giving developers flexibility with file formats and variables.
Aside from being a barcode reader for all file formats, IronBarcode also doubles as a barcode generator that supports all standard encoding and formatting, such as the EAN8, Code128, and Code39. Setting the barcode generator up only takes two lines of code. With a low barrier of entry and plenty of customization options for developers, IronBarCode is the number one choice for all situations related to barcodes.
EAN8
Code128
Code39
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeEncoding.EAN8);
Image myBarcodeImage = myBarcode.ToImage();
myBarcode.ResizeTo(400, 100);
var resultFromFile = BarcodeReader.Read(@"file/barcode.png");
var myOptionsExample = new BarcodeReaderOptions { /* Options */ };
We first import the necessary libraries such as IronBarCode and System.Drawing, and instantiate BarcodeWriter to create a barcode with the string value of 12345 with the format of EAN8. We then save the generated barcode as an image in the desired format. There are various options for this as IronBarCode supports creating the barcode as an Image as well as a Bitmap.
IronBarCode
System.Drawing
BarcodeWriter
12345
Image
Bitmap
As seen from above, generating a barcode using IronBarCode requires only two lines of code and saving it as a file for later usage. IronBarCode further extends this by providing developers with a plethora of options to customize the barcode to match the situation.
We can use the ResizeTo method and pass in the height and width to resize the barcode image.
ResizeTo
Like the above, we first instantiate BarcodeReader, pass the file path to the Read method, and save it as a variable to use later and manipulate the barcode object. There are specified methods for reading external formats such as PDF with ReadPDF; however, for general image formats and bitmaps, we would use Read.
BarcodeReader
Read
ReadPDF
IronBarCode allows developers to scan barcodes from standard file format. However, there are situations where the developers want to fine-tune the behavior of the Read method, especially in cases where it is reading a batch of barcode files programmatically. This is where BarcodeReaderOptions comes in. IronBarCode lets you fully customize things such as the speed at which it reads with Speed, whether multiple barcodes are expected in the file with ExpectedMultipleBarcodes, and what kind of barcodes they are with the property ExpectBarcodeTypes. This allows developers to run multiple threads to read barcodes from multiple images in parallel, as well as control the number of threads used when doing parallel reading.
BarcodeReaderOptions
Speed
ExpectedMultipleBarcodes
ExpectBarcodeTypes
These are just some of the properties that showcase the power of IronBarCode. For a complete list, please refer to the documentation here.
Learn to Create Barcodes with Our Detailed Guide!
using IronBarCode; using IronSoftware.Drawing; // Choose which filters are to be applied (in order) // Set cacheAtEachIteration = true to save the intermediate image data after each filter is applied var filtersToApply = new ImageFilterCollection(cacheAtEachIteration: true) { new SharpenFilter(), new InvertFilter(), new ContrastFilter(), new BrightnessFilter(), new AdaptiveThresholdFilter(), new BinaryThresholdFilter(), new GaussianBlurFilter(), new MedianBlurFilter(), new BilateralFilter() }; BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() { // Set chosen filters in BarcodeReaderOptions ImageFilters = filtersToApply, Speed = ReadingSpeed.Balanced, ExpectMultipleBarcodes = true, }; // Read with the options applied BarcodeResults results = BarcodeReader.Read("screenshot.png", myOptionsExample); AnyBitmap[] filteredImages = results.FilterImages(); // Export intermediate image files to disk for (int i = 0 ; i < filteredImages.Length ; i++) filteredImages[i].SaveAs($"{i}_barcode.png"); // Or results.ExportFilterImagesToDisk("filter-result.jpg");
Imports IronBarCode Imports IronSoftware.Drawing ' Choose which filters are to be applied (in order) ' Set cacheAtEachIteration = true to save the intermediate image data after each filter is applied Private filtersToApply = New ImageFilterCollection(cacheAtEachIteration:= True) From { New SharpenFilter(), New InvertFilter(), New ContrastFilter(), New BrightnessFilter(), New AdaptiveThresholdFilter(), New BinaryThresholdFilter(), New GaussianBlurFilter(), New MedianBlurFilter(), New BilateralFilter() } Private myOptionsExample As New BarcodeReaderOptions() With { .ImageFilters = filtersToApply, .Speed = ReadingSpeed.Balanced, .ExpectMultipleBarcodes = True } ' Read with the options applied Private results As BarcodeResults = BarcodeReader.Read("screenshot.png", myOptionsExample) Private filteredImages() As AnyBitmap = results.FilterImages() ' Export intermediate image files to disk For i As Integer = 0 To filteredImages.Length - 1 filteredImages(i).SaveAs($"{i}_barcode.png") Next i ' Or results.ExportFilterImagesToDisk("filter-result.jpg")
IronBarcode 提供多种图像预处理过滤器可供选择,这些过滤器可以轻松应用于 BarcodeReaderOptions 中。 选择可能改善图像读取的过滤器,例如 锐化、二值阈值 和 对比度。 请记住,您选择它们的顺序就是应用的顺序。
可以选择保存应用每个过滤器的中间图像的数据。 这可以通过 ImageFilterCollection 的 SaveAtEachIteration 属性进行切换。
ImageFilterCollection
SaveAtEachIteration
来自代码示例的关键要点:
锐化
二值阈值
对比度
cacheAtEachIteration
true
了解更多有关 IronBarcode 图像校正的信息
using IronBarCode; using System.Drawing; /*** CREATING BARCODE IMAGES ***/ // Create and save a barcode in a single line of code BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8).ResizeTo(400, 100).SaveAsImage("EAN8.jpeg"); /***** IN-DEPTH BARCODE CREATION OPTIONS *****/ // BarcodeWriter.CreateBarcode creates a GeneratedBarcode which can be styled and exported as an Image object or file GeneratedBarcode MyBarCode = BarcodeWriter.CreateBarcode("Any Number, String or Binary Value", BarcodeWriterEncoding.Code128); // Style the Barcode in a fluent LINQ-style fashion MyBarCode.ResizeTo(300, 150).SetMargins(20).AddAnnotationTextAboveBarcode("Example EAN8 Barcode").AddBarcodeValueTextBelowBarcode(); MyBarCode.ChangeBackgroundColor(Color.LightGoldenrodYellow); // Save the barcode as an image file MyBarCode.SaveAsImage("MyBarCode.png"); MyBarCode.SaveAsGif("MyBarCode.gif"); MyBarCode.SaveAsHtmlFile("MyBarCode.html"); MyBarCode.SaveAsJpeg("MyBarCode.jpg"); MyBarCode.SaveAsPdf("MyBarCode.Pdf"); MyBarCode.SaveAsPng("MyBarCode.png"); MyBarCode.SaveAsTiff("MyBarCode.tiff"); MyBarCode.SaveAsWindowsBitmap("MyBarCode.bmp"); // Save the barcode as a .NET native object Image MyBarCodeImage = MyBarCode.Image; Bitmap MyBarCodeBitmap = MyBarCode.ToBitmap(); byte[] PngBytes = MyBarCode.ToPngBinaryData(); using (System.IO.Stream PdfStream = MyBarCode.ToPdfStream()) { // Stream barcode image output also works for GIF, JPEG, PDF, PNG, BMP and TIFF } // Save MyBarCode as an HTML file or tag MyBarCode.SaveAsHtmlFile("MyBarCode.Html"); string ImgTagForHTML = MyBarCode.ToHtmlTag(); string DataURL = MyBarCode.ToDataUrl(); // Save MyBarCode to a new PDF, or stamp it in any position on any page(s) of an existing document MyBarCode.SaveAsPdf("MyBarCode.Pdf"); MyBarCode.StampToExistingPdfPage("ExistingPDF.pdf", 200, 50, 1); // Position (200, 50) on page 1 MyBarCode.StampToExistingPdfPages("ExistingPDF.pdf", 200, 50, new[] { 1, 2, 3 }, "Password123"); // Multiple pages of an encrypted PDF
Imports IronBarCode Imports System.Drawing '''* CREATING BARCODE IMAGES ** ' Create and save a barcode in a single line of code BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8).ResizeTo(400, 100).SaveAsImage("EAN8.jpeg") '''*** IN-DEPTH BARCODE CREATION OPTIONS **** ' BarcodeWriter.CreateBarcode creates a GeneratedBarcode which can be styled and exported as an Image object or file Dim MyBarCode As GeneratedBarcode = BarcodeWriter.CreateBarcode("Any Number, String or Binary Value", BarcodeWriterEncoding.Code128) ' Style the Barcode in a fluent LINQ-style fashion MyBarCode.ResizeTo(300, 150).SetMargins(20).AddAnnotationTextAboveBarcode("Example EAN8 Barcode").AddBarcodeValueTextBelowBarcode() MyBarCode.ChangeBackgroundColor(Color.LightGoldenrodYellow) ' Save the barcode as an image file MyBarCode.SaveAsImage("MyBarCode.png") MyBarCode.SaveAsGif("MyBarCode.gif") MyBarCode.SaveAsHtmlFile("MyBarCode.html") MyBarCode.SaveAsJpeg("MyBarCode.jpg") MyBarCode.SaveAsPdf("MyBarCode.Pdf") MyBarCode.SaveAsPng("MyBarCode.png") MyBarCode.SaveAsTiff("MyBarCode.tiff") MyBarCode.SaveAsWindowsBitmap("MyBarCode.bmp") ' Save the barcode as a .NET native object Dim MyBarCodeImage As Image = MyBarCode.Image Dim MyBarCodeBitmap As Bitmap = MyBarCode.ToBitmap() Dim PngBytes() As Byte = MyBarCode.ToPngBinaryData() Using PdfStream As System.IO.Stream = MyBarCode.ToPdfStream() ' Stream barcode image output also works for GIF, JPEG, PDF, PNG, BMP and TIFF End Using ' Save MyBarCode as an HTML file or tag MyBarCode.SaveAsHtmlFile("MyBarCode.Html") Dim ImgTagForHTML As String = MyBarCode.ToHtmlTag() Dim DataURL As String = MyBarCode.ToDataUrl() ' Save MyBarCode to a new PDF, or stamp it in any position on any page(s) of an existing document MyBarCode.SaveAsPdf("MyBarCode.Pdf") MyBarCode.StampToExistingPdfPage("ExistingPDF.pdf", 200, 50, 1) ' Position (200, 50) on page 1 MyBarCode.StampToExistingPdfPages("ExistingPDF.pdf", 200, 50, { 1, 2, 3 }, "Password123") ' Multiple pages of an encrypted PDF
In this example, we see that barcodes of many different types and formats can be created, resized, and saved; possibly even in a single line of code.
Using our fluent API, the generated barcode class can be used to set margins, resize, and annotate barcodes. They may then be saved as images with IronBarcode automatically assuming the correct image type from a file name: GIFs, HTML files, HTML tags, JPEGs, PDFs, PNGs, TIFFs, and Windows Bitmaps.
We also have the StampToExistingPdfPage method, which allows a barcode to be generated and stamped onto an existing PDF. This is useful when editing a generic PDF or adding an internal identification number to a document via a barcode.
StampToExistingPdfPage
using IronBarCode; using System; using System.Drawing; /*** STYLING GENERATED BARCODES ***/ // BarcodeWriter.CreateBarcode creates a GeneratedBarcode object which allows the barcode to be styled and annotated. GeneratedBarcode MyBarCode = BarcodeWriter.CreateBarcode("Iron Software", BarcodeWriterEncoding.QRCode); // Any text (or commonly, the value of the barcode) can be added to the image in a default or specified font. // Text positions are automatically centered, above or below. Fonts that are too large for a given image are automatically scaled down. MyBarCode.AddBarcodeValueTextBelowBarcode(); MyBarCode.AddAnnotationTextAboveBarcode("This is My Barcode", new Font(new FontFamily("Arial"), 12, FontStyle.Regular, GraphicsUnit.Pixel), Color.DarkSlateBlue); // Resize, add margins and check final image dimensions MyBarCode.ResizeTo(300, 300); // Resize in pixels MyBarCode.SetMargins(0, 20, 0, 20); // Set margins in pixels int FinalWidth = MyBarCode.Width; int FinalHeight = MyBarCode.Height; // Recolor the barcode and its background MyBarCode.ChangeBackgroundColor(Color.LightGray); MyBarCode.ChangeBarCodeColor(Color.DarkSlateBlue); if (!MyBarCode.Verify()) { Console.WriteLine("Color contrast should be at least 50% or a barcode may become unreadable. Test using GeneratedBarcode.Verify()"); } // Finally, save the result MyBarCode.SaveAsHtmlFile("StyledBarcode.html"); /*** STYLING BARCODES IN A SINGLE LINQ-STYLE EXPRESSION ***/ // Create a barcode in one line of code BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeWriterEncoding.Aztec).ResizeTo(250, 250).SetMargins(10).AddBarcodeValueTextAboveBarcode().SaveAsImage("StyledBarcode.png"); /*** STYLING QR CODES WITH LOGO IMAGES OR BRANDING ***/ // Use the QRCodeWriter.CreateQrCodeWithLogo Method instead of BarcodeWriter.CreateBarcode // Logo will automatically be sized appropriately and snapped to the QR grid. var qrCodeLogo = new QRCodeLogo("ironsoftware_logo.png"); GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo); myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen); myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen); myQRCodeWithLogo.SaveAsPng("QRWithLogo.Png").SaveAsPdf("MyVerifiedQR.html"); // Save as 2 different formats
Imports IronBarCode Imports System Imports System.Drawing '''* STYLING GENERATED BARCODES ** ' BarcodeWriter.CreateBarcode creates a GeneratedBarcode object which allows the barcode to be styled and annotated. Private MyBarCode As GeneratedBarcode = BarcodeWriter.CreateBarcode("Iron Software", BarcodeWriterEncoding.QRCode) ' Any text (or commonly, the value of the barcode) can be added to the image in a default or specified font. ' Text positions are automatically centered, above or below. Fonts that are too large for a given image are automatically scaled down. MyBarCode.AddBarcodeValueTextBelowBarcode() MyBarCode.AddAnnotationTextAboveBarcode("This is My Barcode", New Font(New FontFamily("Arial"), 12, FontStyle.Regular, GraphicsUnit.Pixel), Color.DarkSlateBlue) ' Resize, add margins and check final image dimensions MyBarCode.ResizeTo(300, 300) ' Resize in pixels MyBarCode.SetMargins(0, 20, 0, 20) ' Set margins in pixels Dim FinalWidth As Integer = MyBarCode.Width Dim FinalHeight As Integer = MyBarCode.Height ' Recolor the barcode and its background MyBarCode.ChangeBackgroundColor(Color.LightGray) MyBarCode.ChangeBarCodeColor(Color.DarkSlateBlue) If Not MyBarCode.Verify() Then Console.WriteLine("Color contrast should be at least 50% or a barcode may become unreadable. Test using GeneratedBarcode.Verify()") End If ' Finally, save the result MyBarCode.SaveAsHtmlFile("StyledBarcode.html") '''* STYLING BARCODES IN A SINGLE LINQ-STYLE EXPRESSION ** ' Create a barcode in one line of code BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeWriterEncoding.Aztec).ResizeTo(250, 250).SetMargins(10).AddBarcodeValueTextAboveBarcode().SaveAsImage("StyledBarcode.png") '''* STYLING QR CODES WITH LOGO IMAGES OR BRANDING ** ' Use the QRCodeWriter.CreateQrCodeWithLogo Method instead of BarcodeWriter.CreateBarcode ' Logo will automatically be sized appropriately and snapped to the QR grid. Dim qrCodeLogo As New QRCodeLogo("ironsoftware_logo.png") Dim myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo) myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen) myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen) myQRCodeWithLogo.SaveAsPng("QRWithLogo.Png").SaveAsPdf("MyVerifiedQR.html") ' Save as 2 different formats
In this sample, we see that barcodes may be annotated with text of your choosing or the barcode's own value using any typeface which is installed on the target machine. If that typeface is not available, an appropriate similar typeface will be chosen. Barcodes may be resized, have margins added, and both the barcode and the background may be recolored. They may then be saved as an appropriate format.
In the final few lines of code, you can see that using our fluent style operators, it's possible to create and style a barcode in only a few lines of code, similar to System.Linq.
System.Linq
using IronBarCode; GeneratedBarcode MyBarCode = BarcodeWriter.CreateBarcode("1234567890", BarcodeWriterEncoding.Code128); // Save as a stand-alone HTML file without any image assets MyBarCode.SaveAsHtmlFile("MyBarCode.html"); // Save as a stand-alone HTML image tag which can be served in HTML files, ASPX or MVC Views. No image assets required, the tag embeds the entire image in its source content string ImgTag = MyBarCode.ToHtmlTag(); // Turn the image into a HTML/CSS Data URI. string DataURI = MyBarCode.ToDataUrl();
Imports IronBarCode Private MyBarCode As GeneratedBarcode = BarcodeWriter.CreateBarcode("1234567890", BarcodeWriterEncoding.Code128) ' Save as a stand-alone HTML file without any image assets MyBarCode.SaveAsHtmlFile("MyBarCode.html") ' Save as a stand-alone HTML image tag which can be served in HTML files, ASPX or MVC Views. No image assets required, the tag embeds the entire image in its source content Dim ImgTag As String = MyBarCode.ToHtmlTag() ' Turn the image into a HTML/CSS Data URI. Dim DataURI As String = MyBarCode.ToDataUrl()
IronBarcode 有一个非常有用的功能,允许将条形码导出为自包含的 HTML,这样就没有关联的图像资产。 一切都包含在 HTML 文件中。
我们可以导出为HTML 文件、HTML 图像标签或数据 URI。
在此示例中:
BarcodeWriter.CreateBarcode
ToHtmlTag()
<img>
ToDataUri()
SaveAsHtmlFile()
无论是产品、集成还是授权问题,Iron 产品开发团队随时准备回答您所有问题。立即联系并与 Iron 开始对话,以便在您的项目中充分利用我们的库。
IronBarcode可以读取和生成大多数条码和QR标准,包括UPC A/E、EAN 8/13、Code 39、Code 93、Code 128、ITF、MSI、RSS 14/Expanded、Databar、CodaBar、QR、样式化QR、Data Matrix、MaxiCode、PDF417、Plessey和Aztec。结果提供条码数据、类型、页码、文本和条码图像;理想用于档案或索引系统。
IronBarcode自动预处理条码图像以提高速度和准确性。校正旋转、噪音、失真和倾斜以读取扫描或实时视频帧。多核、多线程支持用于批处理服务器应用程序。自动在单页和多页文档中找到一个或多个条码。无需复杂的API即可搜索特定条码类型或文档位置。
通过几行代码即可在几分钟内开始。专为.NET构建,作为易于使用的单个DLL;无依赖关系;支持32位和64位;适用于任何.NET语言。可以在Web、云、桌面或控制台应用程序中使用;支持移动和桌面设备。
你可以从这个链接下载软件产品。
专为QR构建, C#, .NET
保存或打印为文件或流,可为PDF、JPG、TIFF、GIF、BMP、PNG或HTML格式。设置颜色、质量、旋转、大小和文本。使用C#条码编程工具箱以及IronPDF和IronOCR的完整.NET文档库。
免费社区开发许可证。商业许可证起价$749。
C# .NET 条形码 QR
查看Frank如何使用IronBarcode读取其C# .NET条码应用程序中的扫描、照片和PDF文档中的条码...
C# .NET 条形码
Francesca分享了一些在C#或VB应用程序中写入条码到图像的技巧和窍门。了解如何写入条码以及IronBarcode为您提供的所有选项...
QR .NET C# VB
Jenny的团队每天使用IronBarcode编写成千上万个QR。查看他们关于如何充分利用IronBarcode的教程...
Iron团队在.NET软件组件市场拥有超过10年的经验。
直接与我们的开发团队交谈
简单明了的在线手册。
免费开发许可证。商业版起价 $749。
通过 NuGet 或 DLL 在几分钟内开始使用。
无需信用卡
试用表单已成功提交。您的试用密钥应在电子邮件中。如果没有,请联系我们support@ironsoftware.com
您的试用密钥应在电子邮件中。如果没有,请联系我们support@ironsoftware.com
免费开始
在生产环境中测试,没有水印。在您需要的地方使用。
使用功能齐全的产品30天。几分钟内即可启动和运行。
在产品试用期间,全面访问我们的支持工程团队
无需信用卡或账户创建
您的试用密钥应该在邮件中。如果没有,请联系support@ironsoftware.com
许可证起价 $749。 有问题吗?联系我们。
预订无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
预定一次 30 分钟的个人演示。
无合约、无卡号、无任何长期承诺。
版权所有 © Iron Software 2013-2025