PdfSharp で PDF ファイルを作成
#VisualStudio #VisualStudio2019 #プログラミング
目的
Window10 上で Visual Studio 2019 を用いて、実際に動くデスクトップ・アプリケーションを作成します。具体的には、PDF ファイルを作成し、そのなかに日本語のゴシック体、および明朝体の文章を書き込みます。PDF ファイルを作成するために、NuGet の PDFSharp というライブラリを使用するので、設定の仕方などをメモします。
まず起動
いちおう、起動するところからメモします。
以前の選択が残っています。
起動したら、NuGetでパッケージを追加します。
NuGet パッケージの追加
プロジェクト > NuGet パッケージの管理
参照をクリック。
検索窓に PdfSharp と入力し、一番上に出てきたものをクリック
インストールをクリック
OKをクリック
「×」をふたつ押します。
下のような状態になったら、[F7]を押して、コードを表示させます。
[F7] を押すと、最初はこういう状態。
ここで、次のようなコードを最初に追加します。
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
この状態で、「開始」をクリックしてみて、ちゃんと実行できるのであれば、NuGet パッケージは正常に追加されています。
空白の PDF ファイルを出力
ほぼ空白のPDFファイルを作ってみます。
まず、メインの関数は現在は次のようになっています。
namespace test20200830
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
これを次のように変えます。
namespace test20200830
{
public partial class Form1 : Form
{
public static PdfDocument pdfdoc;
public Form1()
{
InitializeComponent();
string filename = "MyTest.pdf";
pdfdoc = new PdfDocument();
PdfPage page = pdfdoc.AddPage();
pdfdoc.Save(filename);
}
}
}
public static PdfDocument pdfdoc; と定義して「pdfdoc」という変数でPDFファイルを作っています。ファイルの名称は「MyTest.pdf」です。実際に、new PdfDocument() で PDF ファイルを作成し、pdfdoc.AddPage(); で、このファイルに空白のページを追加し、そしてフアイル名をつけて保存します。
これで、「実行」してみます。
実行しても、空白のウインドウが表示されるだけで、何も起こりません。しかし、フォルダを見てみると、
たしかに、MyTest.pdf が作られています。これを開いてみると、
中身の何もない PDF ファイルであることがわかります。
文字を書いてみる
さきほどのプログラムを次のように書き換えてみます。
namespace test20200830
{
public partial class Form1 : Form
{
public static PdfDocument pdfdoc;
public Form1()
{
InitializeComponent();
string filename = "MyTest.pdf";
pdfdoc = new PdfDocument();
PdfPage page = pdfdoc.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font1 = new XFont("Arial Unicode MS", 20, XFontStyle.Regular);
gfx.DrawString("文章を書いてみました", font1, XBrushes.Black, 50, 100);
gfx.DrawString("文章を書いてみました", font1, XBrushes.Red, 50, 150);
XFont font2 = new XFont("游明朝", 20, XFontStyle.Regular);
gfx.DrawString("文章を書いてみました", font2, XBrushes.Black, 50, 200);
gfx.DrawString("文章を書いてみました", font2, XBrushes.Red, 50, 250);
pdfdoc.Save(filename);
}
}
}
PDF で文字を書くときには、基本的に「図として文字を書く」ことになるので、最初に XGraphics で図形を書く準備をします。次に、どのようなフォントを使うのかを決めます。そして、そのフォントで実際に文章を書きますが、どの位置に書くのかを、50,100 とか 50, 150 という座標で決めます。
できあがりは次のようになります。
拡大すると次のようになります。
このように、いちおう、ゴシック体と明朝体をカバーすることができました。ただし、マシンにインストールしてあるフォントを自由に指定することは、現時点ではできませんでした。