Jul*_*sen 1 qr-code itext ironbarcode
IronBarcode(首选)
我们想要使用 iTextSharp 在标签中打印 QR 码。我们使用 IronBarcode 来生成条形码。另请参阅:IronBarcode 教程
var label = new Label(Enums.Alignment.CENTER);
// label.AddText("Nr. " + index.ToString("000000"), "Verdana", 12, embedFont: true); // YEAH this works fine
var qrcode = QRCodeWriter.CreateQrCode(index.ToString(), 100);
var image = qrcode.GetInstance(); image.ScaleToFitHeight = false;
label.AddImage(image);
labelCreator.AddLabel(label);
Run Code Online (Sandbox Code Playgroud)
错误:
"GeneratedBarcode" contain no defintion for "GetInstance", and there is no method who would accept an argument from typ "GeneratedBarcode".
二维码编码器
我们还尝试使用 QRCoder / 在这里找到:QRCoder 教程
var label = new Label(Enums.Alignment.CENTER);
// label.AddText("Nr. " + index.ToString("000000"), "Verdana", 12, embedFont: true); // YEAH this works fine
var qrGenerator = new QRCodeGenerator();
var qrCodeData = qrGenerator.CreateQrCode(index.ToString(), QRCodeGenerator.ECCLevel.Q);
var qrCode = new Base64QRCode(qrCodeData);
var qrCodeImageAsBase64 = qrCode.GetGraphic(8);
var imageBytes = Convert.FromBase64String(qrCodeImageAsBase64);
var image = Image.GetInstance(imageBytes);
image.ScaleAbsoluteWidth(40);
image.ScaleAbsoluteHeight(40);
label.AddImage(image);
labelCreator.AddLabel(label);
Run Code Online (Sandbox Code Playgroud)
错误:
"Image" contain no defintion for "GetInstance".
其他尝试
如果我们使用using iTextSharp.text;和using iTextSharp.text.pdf;
错误:
Argument "1": Convert from "iTextSharp.text.Image" to "System.IO.Stream" not possible
我们如何解决这个问题?感谢您的输入!
〜编辑
这是我们添加图像的函数label.cs。看看我们作为基础使用的这个项目:SharpPDFLabel。
public void AddImage(Stream img)
{
var mem = new System.IO.MemoryStream();
CopyStream(img, mem);
_images.Add(mem.GetBuffer());
}
Run Code Online (Sandbox Code Playgroud)
第二步,我们想要将图像添加到条形码中,首选是 IronBarcode 的解决方案。
小智 5
如果您使用iTextSharp为什么不在iTextSharp中完全执行此操作?
GeneratedPdf generatedPDF = new GeneratedPdf();
Document document = new Document();
string path = @"C:\Temp\";
string originalFileName = "qr.pdf";
PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(path + originalFileName, FileMode.Create));
document.Open();
string strBarCodeValue = "hello world";
BarcodeQRCode barcodeQRCode = new BarcodeQRCode(strBarCodeValue, 20, 20, null) ;
document.Add(barcodeQRCode.GetImage());
document.Close();
Run Code Online (Sandbox Code Playgroud)