C# 使用ItextSharp的条形码i25

C# 使用ItextSharp的条形码i25,c#,itextsharp,C#,Itextsharp,我正在使用BarcodeInter25类制作条形码。我能做到,但它只是模糊了它怎么能变得更尖锐?? 此外,其背景白色并非完全白色 我的代码: 您应该避免以任何方式重新调整大小。输出很可能是像素完美的,但当您放大/缩小时,双线性过滤器将使其平滑并呈现模糊 我也遇到了同样的问题,在PDF中嵌入QRC代码,并通过避免调整大小来解决它 如果您真的需要不同的大小,请使用正确的大小在代码中以编程方式应用它。您应该避免以任何方式重新调整大小。输出很可能是像素完美的,但当您放大/缩小时,双线性过滤器将使其平滑并

我正在使用BarcodeInter25类制作条形码。我能做到,但它只是模糊了它怎么能变得更尖锐?? 此外,其背景白色并非完全白色 我的代码:


您应该避免以任何方式重新调整大小。输出很可能是像素完美的,但当您放大/缩小时,双线性过滤器将使其平滑并呈现模糊

我也遇到了同样的问题,在PDF中嵌入QRC代码,并通过避免调整大小来解决它


如果您真的需要不同的大小,请使用正确的大小在代码中以编程方式应用它。

您应该避免以任何方式重新调整大小。输出很可能是像素完美的,但当您放大/缩小时,双线性过滤器将使其平滑并呈现模糊

我也遇到了同样的问题,在PDF中嵌入QRC代码,并通过避免调整大小来解决它


如果您真的需要不同的大小,请使用正确的大小在代码中以编程方式应用它。

您应该避免以任何方式重新调整大小。输出很可能是像素完美的,但当您放大/缩小时,双线性过滤器将使其平滑并呈现模糊

我也遇到了同样的问题,在PDF中嵌入QRC代码,并通过避免调整大小来解决它


如果您真的需要不同的大小,请使用正确的大小在代码中以编程方式应用它。

您应该避免以任何方式重新调整大小。输出很可能是像素完美的,但当您放大/缩小时,双线性过滤器将使其平滑并呈现模糊

我也遇到了同样的问题,在PDF中嵌入QRC代码,并通过避免调整大小来解决它


如果您确实需要不同的尺寸,请使用正确的尺寸在代码中以编程方式应用它。

查看您的代码,应该可以清楚地看出条形码模糊的原因。将其转换为
System.Drawing.Image
(使其成为光栅图像),然后将其转换为
iTextSharp.text.Image
(但此时图像已经模糊)

实现所需的正确方法是直接从条形码创建
iTextSharp.text.Image
(不要通过
System.Drawing.Image
)。可以这样做:

BarcodeInter25 code25 = new BarcodeInter25();
Rectangle r = new iTextSharp.text.Rectangle(38, 152);
code25.ChecksumText = false;
code25.Code = "some digits";
code25.BarHeight = 2;
PdfContentByte cb = writer.DirectContent;
Image img = code25.CreateImageWithBarcode(cb, null, null);
现在,
图像
对象将不再是光栅图像(具有使线条模糊的像素),而是真正的矢量图像(没有像素,但有
moveTo()
lineTo()
stroke()
等指令)。矢量数据的优势在于它与分辨率无关:您可以任意放大和缩小,它总是清晰的

这在您将找到示例的地方进行了解释。在该章中,您还将发现(或在iTextSharp中找到
Font
属性)。我引用API文档:

public void setFont(BaseFont字体)

设置文本字体

参数:

font
-文本字体。设置为
null
以抑制任何文本

因此,如果您不想看到任何文本,可以在上述代码段中添加以下行:

code25.Font = null;

看看你的代码,很明显为什么条形码是模糊的。将其转换为
System.Drawing.Image
(使其成为光栅图像),然后将其转换为
iTextSharp.text.Image
(但此时图像已经模糊)

实现所需的正确方法是直接从条形码创建
iTextSharp.text.Image
(不要通过
System.Drawing.Image
)。可以这样做:

BarcodeInter25 code25 = new BarcodeInter25();
Rectangle r = new iTextSharp.text.Rectangle(38, 152);
code25.ChecksumText = false;
code25.Code = "some digits";
code25.BarHeight = 2;
PdfContentByte cb = writer.DirectContent;
Image img = code25.CreateImageWithBarcode(cb, null, null);
现在,
图像
对象将不再是光栅图像(具有使线条模糊的像素),而是真正的矢量图像(没有像素,但有
moveTo()
lineTo()
stroke()
等指令)。矢量数据的优势在于它与分辨率无关:您可以任意放大和缩小,它总是清晰的

这在您将找到示例的地方进行了解释。在该章中,您还将发现(或在iTextSharp中找到
Font
属性)。我引用API文档:

public void setFont(BaseFont字体)

设置文本字体

参数:

font
-文本字体。设置为
null
以抑制任何文本

因此,如果您不想看到任何文本,可以在上述代码段中添加以下行:

code25.Font = null;

看看你的代码,很明显为什么条形码是模糊的。将其转换为
System.Drawing.Image
(使其成为光栅图像),然后将其转换为
iTextSharp.text.Image
(但此时图像已经模糊)

实现所需的正确方法是直接从条形码创建
iTextSharp.text.Image
(不要通过
System.Drawing.Image
)。可以这样做:

BarcodeInter25 code25 = new BarcodeInter25();
Rectangle r = new iTextSharp.text.Rectangle(38, 152);
code25.ChecksumText = false;
code25.Code = "some digits";
code25.BarHeight = 2;
PdfContentByte cb = writer.DirectContent;
Image img = code25.CreateImageWithBarcode(cb, null, null);
现在,
图像
对象将不再是光栅图像(具有使线条模糊的像素),而是真正的矢量图像(没有像素,但有
moveTo()
lineTo()
stroke()
等指令)。矢量数据的优势在于它与分辨率无关:您可以任意放大和缩小,它总是清晰的

这在您将找到示例的地方进行了解释。在该章中,您还将发现(或在iTextSharp中找到
Font
属性)。我引用API文档:

public void setFont(BaseFont字体)

设置文本字体

参数:

font
-文本字体。设置为
null
以抑制任何文本

因此,如果您不想看到任何文本,可以在上述代码段中添加以下行:

code25.Font = null;

看看你的代码,应该很清楚为什么条形码是蓝色的