- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我当前的代码写了一个二维码,但它只用二维码覆盖了我的文件。我不确定如何调整二维码的大小以放置在文档的一个角落而不是占据整个页面。也不确定 RasterImage.Create
是否意味着它创建一个仅包含 qr 的新文件并丢弃我的原始文件?
代码:- 将 PDF 转换为 Bmp 以添加 QR,然后保存回 PDF
public void PDFFileExample()
{
RasterCodecs codecs1 = new RasterCodecs();
codecs1.Options.Pdf.InitialPath = @"C:\LEADTOOLS 18\Bin\Dotnet4\Win32";
codecs1.Dispose();
RasterCodecs codecs2 = new RasterCodecs();
codecs2.ThrowExceptionsOnInvalidImages = true;
System.Diagnostics.Debug.Assert(codecs2.Options.Pdf.InitialPath == @"C:\LEADTOOLS 18\Bin\Dotnet4\Win32");
string pdfFile = @"C:\QRCodeTesting\bottomRight.pdf";
string destFileName1 = @"C:\QRCodeTesting\bottomRightOutputTemp.pdf";
string destFileName2 = @"C:\QRCodeTesting\bottomRightOutput.bmp";
RasterCodecs codecs = new RasterCodecs();
if (codecs.Options.Pdf.IsEngineInstalled)
{
// Resulting image pixel depth.
codecs.Options.Pdf.Load.DisplayDepth = 24;
codecs.Options.Pdf.Load.GraphicsAlpha = 4;
codecs.Options.Pdf.Load.Password = "";
// Type of font anti-aliasing to use.
codecs.Options.Pdf.Load.TextAlpha = 1;
codecs.Options.Pdf.Load.UseLibFonts = true;
// Horizontal,vertical display resolution in dots per inch.
codecs.Options.RasterizeDocument.Load.XResolution = 150;
codecs.Options.RasterizeDocument.Load.YResolution = 150;
using (RasterImage image = codecs.Load(pdfFile, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1))
{
// Set the PDF version to be v1.4
codecs.Options.Pdf.Save.Version = CodecsRasterPdfVersion.V14;
try
{
// Save the image back as PDF
codecs.Save(image, destFileName1, RasterImageFormat.RasPdf, 24);
}
catch (RasterException ex)
{
if (ex.Code == RasterExceptionCode.FileFormat)
MessageBox.Show(string.Format("Image in file {0} is loaded", destFileName1));
else
{
MessageBox.Show(string.Format("Could not load the file {0}.{1}{2}", destFileName1, Environment.NewLine, ex.Message));
}
}
}
// And load it back before saving it as BMP
using (RasterImage image = codecs.Load(destFileName1))
{
codecs.Save(image, destFileName2, RasterImageFormat.Bmp, image.BitsPerPixel);
writeQRTag(destFileName2);
}
}
else
{
MessageBox.Show("PDF Engine is not found!");
}
// Clean up
codecs.Dispose();
}
二维码书写方法
private void writeQRTag(string imageFileName)
{
BarcodeEngine engine = new BarcodeEngine();
// Create the image to write the barcodes to
int resolution = 300;
using (RasterImage image = RasterImage.Create((int)(8.5 * resolution), (int)(11.0 * resolution), 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.Red)))
{
// Write two QR barcodes
WriteQRCode(engine.Writer, image, QRBarcodeSymbolModel.Model1AutoSize, "QR Data 1", true);
// Save the image
using (RasterCodecs codecs = new RasterCodecs())
{
codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1);
}
}
}
最佳答案
我是来自 LEADTOOLS 支持部门的 Maen。
我检查了您的代码并注意到以下内容:
1) 当您调用 RasterImage.Create() 方法时,它将创建一个包含空红色图像的新 RasterImage 对象,您随后将其传递给 writeQRTag() 函数,然后使用给定的文件名保存。当你保存它时,红色被黑色取代,因为你使用的文件格式只支持黑白。由于您使用的是新图像,因此旧图像会丢失(被覆盖)。
如果您想在原始文件的图像上写入条形码,则不应创建新图像。相反,您需要使用已使用 codecs.Load() 加载的图像并在其上写入条形码。
2) 代码执行多个加载和保存操作。通常,您不需要这样做,除非您的应用程序需要不同的文件格式(PDF、BMP 和 TIFF)。
3) 您创建了我们的 RasterCodecs 对象的不同实例,但实际上只使用了其中一个实例。代码中不需要 4 个 RasterCodecs 对象中的 3 个。
如果使用我们工具包的代码仍然存在问题,您可以通过电子邮件将详细信息发送至 support@leadtools.com。我们会尽力帮助您。
关于c# - LEADTOOLS 将 QRBarcode 添加到现有图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596043/
我在以下代码的最后一行遇到异常(对格式感到抱歉,不允许我以任何其他方式发布): LeadHelper.Unlock(); RasterCodecs codecs = new RasterCodecs(
我在 C# 中使用 Lead Tool。并在下面的代码中出错。当我裁剪图像时,我从 JS 传递这个字符串 base64String 值,然后使用 Base64ToImage 函数将它在 c# 中转换为
我正在关注 Leadtools 页面中的下一个示例 https://www.leadtools.com/help/leadtools/v19/dh/co/leadtools.codecs~leadto
在我的 Web 应用程序中,我使用 LeadTools 从流创建多页 Tiff 文件。下面的代码展示了我如何使用 leadtools。 using (RasterCodecs codecs = new
我想将PDF转换为图像。我正在使用Leadtools,并且为了提高速度,我以以下方式使用多线程。 string multiPagePDF = @"Manual.pdf"; string destFil
我正在使用 Leadtools 17.5。如果我将 Leadtools Dll 静态链接到我的 64 位 C++ 应用程序,然后调用 L_SetLicenseBuffer 一切正常,返回值为零。但出于
我想使用 LEADTOOLS iOS SDK 为“GS1 Databar Expanded Stack”代码生成条形码图像,但我找不到执行此操作的正确方法(或任何其他类型的代码)。他们的例子只包含一个
我正在使用 Leadtools OCR 我引用了以下 DLLS: Leadtools.dll Leadtools.Barcode.oneD.dll Leadtools.codecs.dll Leadt
我正在使用 Leadtools SDK 构建一个可以打开和显示 PDF 文件的 C# WPF 应用程序。 在mommet我只有两个要求: 连续滚动(如在 Adobe Reader 中) 放大/缩小
我当前的代码写了一个二维码,但它只用二维码覆盖了我的文件。我不确定如何调整二维码的大小以放置在文档的一个角落而不是占据整个页面。也不确定 RasterImage.Create 是否意味着它创建一个仅包
我想在 dicom 文件中插入虚拟数据而不使用 LEADTOOLS 读取该文件。对于前。我要插入 Patient_Name = xyz etc. 所以任何人都知道使用哪种 LEADTOOLS 方法在
实际上我需要实现 MICR,OCR 代码通过 LeadTools 从 Check in iOS 中读取。但是我无法获得面向初学者的 LeadTools iOS 教程,因此我无法开始实现。请帮助我了解如
我正在使用 C++、LEADTOOLS19 和 VS2015 制作一个 Windows 可执行文件,以从服务器读取图像,使用 LEADTOOLS 对其应用图像效果,然后在浏览器中显示它。 服务器将图像
我已在我的 Maven 项目中添加了 LeadTools 的 jar,并将这些 jar 本地存储在我的 .m2 文件夹中。但在 pom.xml 中,我收到以下错误 - 缺少工件 Leadtools:o
我遇到了这个问题: native 库 Ltkrnx.dll 已加载到另一个类加载器中 在重新部署应用程序期间(tomcat 8 服务器)。 我还添加了检查,但这对我没有帮助。 private void
我正在尝试在 Java 应用程序中使用 Leadtools 的“Forms Recognition and Processing SDK”。我可以毫无问题地创建 RasterCodecs、OcrEng
我想购买从 Leadtools 读取和生成 QR 码的许可证但首先我想试试他们的演示工具。 我正在使用 MSVC 2013 x64 编译器。我想我在文档中做了如下所有事情: 将所有 dll 复制到我的
我正在使用 leadtools 从扫描仪驱动程序获取图像,如何将该图像保存到磁盘(jpg 或 bmp 或任何格式)? 我正在使用这些 dll 文件: - Leadtools.dll - Leadtoo
我正在尝试使用 Leadtools 以了解它对我有何好处,但我对他们关于该过程如何运作的文档感到有点沮丧。我正在创建一个库,其中包含采用输入文件的方法,将其转换为 pdf,将二维码添加到文件并保存,然
我正在尝试使用 Leadtools 以了解它对我有何好处,但我对他们关于该过程如何运作的文档感到有点沮丧。我正在创建一个库,其中包含采用输入文件的方法,将其转换为 pdf,将二维码添加到文件并保存,然
我是一名优秀的程序员,十分优秀!