🕌

Windows.Data.Pdfを非UWP環境で使う

2023/12/06に公開

はじめに

PDFをイメージにレンダリングするにあたり、UWPにはWindows.Data.Pdf名前空間のライブラリが提供されており、簡単に実現することができます。

これを非UWPな.NET Frameworkや.NETから利用する方法を解説します。

前提条件

Windows 10以降のOSである必要があります。

当然ですが.NETで動かしてもLinuxなどでは動作しません。

プロジェクト設定

サンプルの.csprojを下記に記載します。

<Project Sdk="Microsoft.NET.Sdk">

	<PropertyGroup>
		<TargetFrameworks>net8.0-windows10.0.19041.0;net481-windows10.0.19041.0</TargetFrameworks>
		<Nullable>enable</Nullable>
		<ImplicitUsings>enable</ImplicitUsings>
		<LangVersion>latest</LangVersion>
	</PropertyGroup>

	<ItemGroup Condition="'$(TargetFramework)' == 'net481-windows10.0.19041.0'">
		<Reference Include="Windows">
			<HintPath>..\..\..\..\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22000.0\Windows.winmd</HintPath>
			<IsWinMDFile>true</IsWinMDFile>
		</Reference>
		<PackageReference Include="System.Runtime.WindowsRuntime" Version="4.7.0" />
	</ItemGroup>

</Project>

ポイントは2点。

  1. TargetFrameworkにWindows10以降の具体的なバージョン番号まで記載する
  2. .NET Frameworkの場合、ItemGroupで記載しているWindows.winmdとSystem.Runtime.WindowsRuntimeの参照を追加する

.NET 6.0+の場合は、TargetFrameworkの記載だけで利用できます。

C#コードサンプル

下記に公開しているので参考にどうぞ。

Discussion