【.NET/C#】QRコード付きのPDFファイルを作る【PdfSharp/QRCoder】
2024-8-2 | .NET
.NETでQRコード付きのPDFファイルを作りたい!
概要
今回の記事では、.NETでPdfSharpとQRCoderを使ってQRコード付きのPDFファイルを作る手順を掲載する。
仕様書
環境
- NET 8.0
- PdfSharp 6.1.1
- QRCoder 1.6.0
手順書
NuGetパッケージマネージャーなどからPdfSharp
とQRCoder
をインストールする。
Install-Package PdfSharp
Install-Package QRCoder
当ブログのURL(https://blog.nekonium.com
)のQRコードを作ってPDFファイルに描写する例。
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using QRCoder;
using System.Runtime.InteropServices;
namespace tests
{
internal class Program
{
static public void ExportPDF2()
{
using (var pdf = new PdfDocument())
{
PdfPage page = pdf.AddPage();
page.Size = PdfSharp.PageSize.A4;
page.Orientation = PdfSharp.PageOrientation.Portrait;
var gfx = XGraphics.FromPdfPage(page);
string qrText = "https://blog.nekonium.com";
var qrGenerator = new QRCodeGenerator();
var qrData = qrGenerator.CreateQrCode(qrText, QRCodeGenerator.ECCLevel.Q);
var qrCode = new BitmapByteQRCode(qrData);
byte[] qrCodeBytes = qrCode.GetGraphic(32);
string tempFilePath = Path.GetTempFileName();
File.WriteAllBytes("qr.bmp", qrCodeBytes);
double offset = 32;
double qrWidth = page.Width.Value - (offset * 2);
using (XImage qrImage = XImage.FromFile("qr.bmp"))
{
gfx.DrawImage(qrImage, offset, offset, qrWidth, qrWidth);
}
pdf.Save("test2.pdf");
}
}
static void Main(string[] args)
{
ExportPDF2();
}
}
}
QRコードの描写については下記の記事を参照。
QRコードの画像ファイルなんだけども、pngファイルだとPDFに書き込めなかったので、bmpファイルで保存した。
文字列の描写はページに対応したXGraphics
のメソッドDrawImage
を使う。
using (XImage qrImage = XImage.FromFile("qr.bmp"))
{
gfx.DrawImage(
qrImage, // 描写する画像
32, // 描写する画像のX座標
32, // Y座標
256, // 幅
256 // 高さ
);
}
まとめ(感想文)
これで画像ファイルPDFに埋め込めるようになったのでだいたいPDFで描写できるようになった。