如何用PdfSharp绘制矩阵码?

时间:2014-03-10 19:39:03

标签: vb.net pdf qr-code pdfsharp

我需要通过PdfSharp制作PDF报告。报告必须包含QRCode或数据矩阵代码,但我似乎无法在页面上绘制它。

它要求的值是String的值和Integer的长度所以这就是我正在做的事情:

Dim myNewCode As New PdfSharp.Drawing.BarCodes.CodeDataMatrix("1234567890", 10)

然后我试着画出来:

gfx.DrawMatrixCode(myNewCode, myXPoint)

它要求XPoint位置,所以我将其设置为:

Dim myXPoint As New XPoint(500,500)

只需要x和y的值。

它编译正常,但当我尝试打开文件时,我得到下一个错误

An error exists on this page. Acrobat may not display the page correctly. Please contact the person who created the PDF document to correct the problem

我的Acrobat版本是11.0.5,打开已经包含这些代码的其他PDF文件没有问题。

2 个答案:

答案 0 :(得分:1)

指定大小以获取正确的PDF文件:

var myXSize = new XSize(100, 100);
var myNewCode = new PdfSharp.Drawing.BarCodes.CodeDataMatrix("1234567890", 10, myXSize);
var myXPoint = new XPoint(200, 300);
gfx.DrawMatrixCode(myNewCode, myXPoint);

请注意,由于法律原因,PDFsharp的开源版本不包括Data Matrix Code的实现,而是显示虚拟图像。

答案 1 :(得分:0)

另一种选择是使用第三方库(ZXing)生成QR码位图,并将其绘制为PDF上的DrawImage()位图。