透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
.NET MAUIは、Xamarin.Formsを含むクロスプラットフォームのデスクトップ、ウェブ、およびモバイルアプリを単一のコードベースで構築できる、次世代の.NETです。 .NET MAUIを使用すると、同じプロジェクト名でアプリを一度作成し、Windows、macOS、iOS、Android、tvOSなどの複数のプラットフォームに配置できます。 .NET MAUIは、macOS上でのダークモードやタッチサポート、Windows 10での音声認識など、各プラットフォーム上で最新のUI機能を活用することも可能にします。
この記事では、.NET MAUIアプリでIronPDFを使用して、多くの利点があるPDF文書を作成する方法について説明します。
IronPDFは、PDFファイルの生成および編集を可能にする.NETライブラリです。 これは .NET MAUI アプリケーションでの使用に最適であり、特定のニーズに合わせてカスタマイズできる多くの機能を提供します。 その使いやすいAPIにより、IronPDFはPDF機能を.NET MAUIプロジェクトに簡単に統合できます。
.NET MAUIでIronPDFを使用してPDFおよびPDFビューアーを作成するための前提条件がいくつかあります。
最新バージョンのVisual Studio
.NET Framework 6 または 7
Visual StudioにインストールされたMAUIパッケージ
新しいプロジェクトにIronPDFをインストールする最良の方法の一つは、Visual Studio内のNuGetパッケージマネージャーコンソールを使用することです。 この方法を使用してIronPDFをインストールすることにはいくつかの利点があります。
まず、ツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソール に移動して、パッケージ マネージャー コンソールを開きます。
パッケージマネージャーコンソール
次に、以下のコマンドを入力してください:
Install-Package IronPdf
これにより、パッケージとそのすべての依存関係(assets
フォルダーなど)がインストールされます。
IronPDFのインストール
MAUIプロジェクトでIronPDFを使用できるようになりました。
まず、IronPDFの3つの機能のレイアウトを作成します。
以下のテキストを使用して、URLをPDFに変換するためのラベルを.NET MAUIのラベルコントロールで作成してください:「PDFに変換するURLを入力してください」 その後、水平方向にEntryコントロールとボタンを配置するために、水平スタックレイアウトを適用します。 その後、コントロールの後に線を引いて、次のコントロールのセクションを区切ります。
<Label
Text="Enter URL to Convert PDF"
SemanticProperties.HeadingLevel="Level1"
FontSize="18"
HorizontalOptions="Center"
/>
<HorizontalStackLayout
HorizontalOptions="Center">
<Border Stroke="White"
StrokeThickness="2"
StrokeShape="RoundRectangle 5,5,5,5"
HorizontalOptions="Center">
<Entry
x:Name="URL"
HeightRequest="50"
WidthRequest="300"
HorizontalOptions="Center"
/>
</Border>
<Button
x:Name="urlPDF"
Text="Convert URL to PDF"
Margin="30,0,0,0"
Clicked="UrlToPdf"
HorizontalOptions="Center" />
</HorizontalStackLayout>
<Line Stroke="White" X2="1500" />
HTMLからPDFへのセクションのレイアウトでは、エディターコントロールとボタンを作成します。 エディタコントロールは、ユーザーからのHTMLコンテンツ文字列を受け取るために使用されます。 以下に日本語に翻訳されたコンテンツを示します:
IronPDFは、PDFドキュメントの生成、編集、暗号化、署名、および追加の機能を提供する強力なライブラリです。IronPDF for .NET、IronPDF for Java、IronPDF for Python、およびIronPDF for Node.jsなど、さまざまなプラットフォーム向けに設計されています。このソフトウェアは、PDFファイルをプログラムで操作するための簡単かつ効率的な方法を提供します。
IronOCRは、画像やPDFからテキストを抽出するための優れたツールです。IronOCR for .NETは、文字認識(OCR)をさまざまな形式の文書に適用する高度な機能を提供します。
IronXLは、スプレッドシートの生成、編集、および操作を簡素化するための信頼できるライブラリです。IronXL for .NETおよびIronXL for Pythonは、Excelファイルの読み込みおよび書き込みに優れた機能を提供します。
IronBarcodeは、バーコードの生成および読み取りを容易にするツールです。IronBarcode for .NETを使用すれば、アプリケーションにバーコード機能を簡単に統合できます。
IronQRは、高度なQRコードの作成と解析機能を提供します。IronQR for .NETは、多様なQRコード形式をサポートします。
IronZipは、ファイルの圧縮および解凍を効率的に行うためのライブラリです。IronZip for .NETを使えば、さまざまなアーカイブ形式を操作することができます。
IronWordは、Wordドキュメントの生成、編集、および操作を可能にするツールです。IronWord for .NETは、Microsoft Wordファイルの処理を簡素化します。
IronPrintは、印刷機能をプログラム内に統合するための高度なライブラリです。IronPrint for .NETによって、さまざまな印刷ニーズを満たすことができます。
IronWebScraperは、データのスクレイピングおよびウェブからの情報抽出を効率化するツールです。IronWebScraper for .NETを使用すれば、ウェブサイトから必要なデータを簡単に収集できます。
Iron Suiteには、上記すべての製品が含まれており、総合的なソリューションを提供します。Lite License、Plus License、Professional License、およびUnlimited Licenseなど、さまざまなライセンスオプションが利用可能です。Iron Suite Unlimitedは、制限のない使用を可能にします。
Iron Softwareの製品は、さまざまな開発プラットフォームにおけるPDF処理、OCR、スプレッドシート管理、バーコードおよびQRコード操作、ファイル圧縮、Word文書、印刷、およびWebスクレイピングに関するニーズを満たします。
<Label
Text="Enter HTML to Convert to PDF"
SemanticProperties.HeadingLevel="Level2"
FontSize="18"
HorizontalOptions="Center" />
<Border
Stroke="White"
StrokeThickness="2"
StrokeShape="RoundRectangle 5,5,5,5"
HorizontalOptions="Center">
<Editor
x:Name="HTML"
HeightRequest="200"
WidthRequest="300"
HorizontalOptions="Center"
/>
</Border>
<Button
x:Name="htmlPDF"
Text="Convert HTML to PDF"
Clicked="HtmlToPdf"
HorizontalOptions="Center" />
<Line Stroke="White" X2="1500" />
HTMLファイルをPDFに変換するには、ボタンを1つだけ追加します。 そのボタンを使用すると、IronPDFを使用してHTMLファイルをPDFドキュメントに変換できます。
<Label
Text="Convert HTML file to PDF"
SemanticProperties.HeadingLevel="Level2"
FontSize="18"
HorizontalOptions="Center" />
<Button
x:Name="htmlFilePDF"
Text="Convert HTML file to PDF"
Clicked="FileToPdf"
HorizontalOptions="Center" />
以下に、.NET MAUIフロントエンドの完全なソースコードを示します。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="PDF_Viewer.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="Enter URL to Convert PDF"
SemanticProperties.HeadingLevel="Level1"
FontSize="18"
HorizontalOptions="Center"
/>
<HorizontalStackLayout
HorizontalOptions="Center">
<Border Stroke="White"
StrokeThickness="2"
StrokeShape="RoundRectangle 5,5,5,5"
HorizontalOptions="Center">
<Entry
x:Name="URL"
HeightRequest="50"
WidthRequest="300"
HorizontalOptions="Center"
/>
</Border>
<Button
x:Name="urlPDF"
Text="Convert URL to PDF"
Margin="30,0,0,0"
Clicked="UrlToPdf"
HorizontalOptions="Center" />
</HorizontalStackLayout>
<Line Stroke="White" X2="1500" />
<Label
Text="Enter HTML to Convert to PDF"
SemanticProperties.HeadingLevel="Level2"
FontSize="18"
HorizontalOptions="Center" />
<Border
Stroke="White"
StrokeThickness="2"
StrokeShape="RoundRectangle 5,5,5,5"
HorizontalOptions="Center">
<Editor
x:Name="HTML"
HeightRequest="200"
WidthRequest="300"
HorizontalOptions="Center"
/>
</Border>
<Button
x:Name="htmlPDF"
Text="Convert HTML to PDF"
Clicked="HtmlToPdf"
HorizontalOptions="Center" />
<Line Stroke="White" X2="1500" />
<Label
Text="Convert HTML file to PDF"
SemanticProperties.HeadingLevel="Level2"
FontSize="18"
HorizontalOptions="Center" />
<Button
x:Name="htmlFilePDF"
Text="Convert HTML file to PDF"
Clicked="FileToPdf"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
.NET MAUIにはローカルストレージにファイルを保存するための既製機能がありません。 したがって、コードを自分で書く必要があります。 保存および表示機能を作成するために、SaveService
という名前の部分クラスが作成され、ファイル名、ファイルのコンテンツタイプ、およびファイルを書き込むためのメモリストリームの3つのパラメータを持つSaveAndView
という名前の部分void関数が付与されています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PDF_Viewer
{
public partial class SaveService
{
public partial void SaveAndView(string filename, string contentType, MemoryStream stream);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PDF_Viewer
{
public partial class SaveService
{
public partial void SaveAndView(string filename, string contentType, MemoryStream stream);
}
}
保存および表示機能は、サポートを予定している各プラットフォーム(例:Android、macOS、Windows)に対して実装する必要があります。 Windowsプラットフォーム用に、"SaveWindows.cs"という名前のファイルを作成し、部分メソッドSaveAndView
を実装します。
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace PDF_Viewer
{
public partial class SaveService
{
public async partial void SaveAndView(string filename, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(filename);
//Gets process windows handle to open the dialog in application process.
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
//Creates file save picker to save a file.
FileSavePicker savePicker = new FileSavePicker();
savePicker.DefaultFileExtension = ".pdf";
savePicker.SuggestedFileName = filename;
//Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", new List<string>() { ".pdf" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
//Writes compressed data from memory to file.
using Stream outstream = zipStream.AsStreamForWrite();
outstream.SetLength(0);
//Saves the stream as file.
byte [] buffer = stream.ToArray();
outstream.Write(buffer, 0, buffer.Length);
outstream.Flush();
}
//Create message dialog box.
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
//Showing a dialog box.
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
//Launch the saved file.
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}
}
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace PDF_Viewer
{
public partial class SaveService
{
public async partial void SaveAndView(string filename, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(filename);
//Gets process windows handle to open the dialog in application process.
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
//Creates file save picker to save a file.
FileSavePicker savePicker = new FileSavePicker();
savePicker.DefaultFileExtension = ".pdf";
savePicker.SuggestedFileName = filename;
//Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", new List<string>() { ".pdf" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
//Writes compressed data from memory to file.
using Stream outstream = zipStream.AsStreamForWrite();
outstream.SetLength(0);
//Saves the stream as file.
byte [] buffer = stream.ToArray();
outstream.Write(buffer, 0, buffer.Length);
outstream.Flush();
}
//Create message dialog box.
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
//Showing a dialog box.
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
//Launch the saved file.
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}
}
AndroidとmacOS用には、同等のSaveAndView
の実装を持つ別々のファイルを作成する必要があります。 このMAUI PDF Viewer GitHub リポジトリから動作する例を取得できます。
さて、PDF機能のコードを記述する時が来ました。 URLからPDFへの機能を始めましょう。
URLをPDFに変換する機能のためのUrlToPdf
関数を作成します。 関数内で、ChromePdfRenderer
オブジェクトをインスタンス化し、RenderUrlAsPdf
関数を使用してURLをPDFドキュメントに変換します。 RenderUrlAsPdf
関数は、Web サーバーから URL のデータを取得し、それを処理して PDF ドキュメントに変換します。 パラメーターでは、URLエントリーコントロールでテキストを渡し、SaveService
クラスのオブジェクトを作成し、SaveAndView
関数を使用します。 SaveAndView
関数のパラメーターには、生成されたPDFファイルのストリームを渡します。
SaveAndView
関数は、任意のカスタマイズされたパスにファイルを保存し、PDFファイルを表示するオプションを提供します。 最後に、PDFファイルの作成に関する情報をアラートボックスで表示します。ユーザーが空の入力コントロールでPDFファイルを作成しようとすると、エラーメッセージと警告が表示されるアラートボックスが表示されます。
private void UrlToPdf(object sender, EventArgs e)
{
if (URL.Text != null)
{
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(URL.Text.Trim());
SaveService saveService = new SaveService();
saveService.SaveAndView("URLtoPDF.pdf", "application/pdf", pdf.Stream);
DisplayAlert("Success", "PDF from URL Created!", "OK");
}
else
{
DisplayAlert("Error", "Field can't be empty! \nPlease enter URL!", "OK");
}
}
private void UrlToPdf(object sender, EventArgs e)
{
if (URL.Text != null)
{
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(URL.Text.Trim());
SaveService saveService = new SaveService();
saveService.SaveAndView("URLtoPDF.pdf", "application/pdf", pdf.Stream);
DisplayAlert("Success", "PDF from URL Created!", "OK");
}
else
{
DisplayAlert("Error", "Field can't be empty! \nPlease enter URL!", "OK");
}
}
HTMLをPDFに変換する機能のために、HtmlToPdf
関数を作成し、RenderHtmlAsPdf
関数を使用します。 エディターコントロールのテキストを使用し、それをRenderHtmlAsPdf
関数のパラメーターに渡します。 上記の関数と同様に、PDFファイルを保存した後に表示する機能を有効にするためにSaveAndView
関数を使用します。
private void HtmlToPdf(object sender, EventArgs e)
{
if (HTML.Text != null)
{
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(HTML.Text);
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", pdf.Stream);
DisplayAlert("Success", "PDF from HTML Created!", "OK");
}
else
{
DisplayAlert("Error", "Field can't be empty! \nPlease enter valid HTML!", "OK");
}
}
private void HtmlToPdf(object sender, EventArgs e)
{
if (HTML.Text != null)
{
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(HTML.Text);
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", pdf.Stream);
DisplayAlert("Success", "PDF from HTML Created!", "OK");
}
else
{
DisplayAlert("Error", "Field can't be empty! \nPlease enter valid HTML!", "OK");
}
}
HTMLファイルをPDFファイルに変換するためのFileToPdf
関数を作成し、RenderHtmlFileAsPdf
関数を使用し、HTMLファイルのパスをパラメータとして渡します。 すべてのHTMLコンテンツをPDFに変換し、出力ファイルを保存します。
private void FileToPdf(object sender, EventArgs e)
{
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Users\Administrator\Desktop\index.html");
SaveService saveService = new SaveService();
saveService.SaveAndView("HTML File to PDF.pdf", "application/pdf", pdf.Stream);
DisplayAlert("Success", "PDF from File Created!", "OK");
}
private void FileToPdf(object sender, EventArgs e)
{
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Users\Administrator\Desktop\index.html");
SaveService saveService = new SaveService();
saveService.SaveAndView("HTML File to PDF.pdf", "application/pdf", pdf.Stream);
DisplayAlert("Success", "PDF from File Created!", "OK");
}
プロジェクトを実行した後、出力はこのようになります。
出力
MicrosoftのウェブサイトURLをこのセクションに入力し、ボタンをクリックしてください。
URL の PDF 変換
PDFファイルを作成した後、カスタマイズされた保存先にファイルを保存するためのダイアログボックスが表示されます。
ファイルを保存
ファイルを保存した後、このポップアップが表示され、PDFファイルを表示するためのPDFビューアーを選択するオプションが提供されます。
PDFビューアポップアップ
IronPDFはURLを優れたPDFに変換します。 それはすべての色と画像をオリジナルの形とフォーマットで保持します。
PDFビューアポップアップ
すべての他の機能にも同じ手順を従う必要があります。 Blazor における IronPDF の動作について詳しく知るには、こちらの Blazor ブログ投稿 をご覧ください。
MAUIのページをXAMLとしてPDFドキュメントに変換する方法について学ぶには、"MAUIでXAMLをPDFに変換する方法"をご覧ください。
このチュートリアルでは、.NET MAUIアプリでIronPDFを使用してPDFファイルおよびPDFビューアを作成しました。 .NET MAUIは、単一のコードベースでマルチプラットフォームアプリケーションを作成するための素晴らしいツールです。 IronPDFは、任意の.NETアプリケーションでPDFファイルを簡単に作成およびカスタマイズするのに役立ちます。 IronPDFは.NET MAUIプラットフォームと完全に互換性があります。
IronPDFは開発に無料です。 無料トライアルキーを取得して、IronPDFを本番環境でテストできます。 IronPDFとその機能に関する詳細は、IronPDF公式ウェブサイトをご覧ください。