
Birden Fazla Sayfayı Tek Bir PDF Dosyasına Tarama
.NET MAUI, geliştiricilerin çapraz platform Masaüstü, Web ve Mobil Uygulamalar, Xamarin.Forms dahil olmak üzere tek bir kod tabanı ile oluşturmalarını sağlayan yeni nesil .NET'dir. .NET MAUI ile uygulamanızı bir kez yazabilir ve aynı proje adıyla Windows, macOS, iOS, Android ve tvOS dahil olmak üzere birden çok platforma dağıtabilirsiniz. .NET MAUI ayrıca, her platformda en yeni UI yeteneklerinden yararlanmanıza olanak tanır, örneğin macOS'ta karanlık mod ve dokunmatik destek veya Windows 10'da konuşma tanıma.
Bu makale, birçok avantajla PDF belgeleri oluşturmak için .NET MAUI uygulamasında IronPDF nasıl kullanılır açıklayacak.
.NET MAUI'de PDF Dosyasını Nasıl Görüntüleriniz
- .NET MAUI'de PDF Dosyalarını Görüntülemek için IronPDF Yükleyin
- MAUI projesinin Ön Yüz tasarımını kurun
- Yerel depolamaya dosyaları kaydetmeyi ve PDF'yi görüntülemeyi ele alın
- URL, HTML dizgisi veya dosya için render yöntemlerini kullanın
- Adım 3'te özel işleyiciye render edilen PDF'yi iletin
IronPDF: C# PDF Kütüphanesi
IronPDF, PDF dosyaları oluşturmanıza ve düzenlemenize olanak tanıyan bir .NET kütüphanesidir. .NET MAUI uygulamalarında kullanım için mükemmeldir, çünkü belli ihtiyaçlarınıza uyacak şekilde özelleştirilebilen geniş bir özellik yelpazesi sunar. API'nin kolay kullanımı sayesinde IronPDF, projenize PDF işlevselliğini entegre etmeyi basit hale getirir.
Gereksinimler
IronPDF kullanarak .NET MAUI'de PDF ve PDF Görüntüleyici oluşturmak için bazı ön koşullar vardır:
- Visual Studio'nun en son sürümü
- .NET Framework 6 veya 7
- Visual Studio'da MAUI paketleri yüklü
- Visual Studio'da çalışan .NET MAUI Uygulaması
Adım 1: IronPDF Yükleyin
Yeni bir projeye IronPDF yüklemenin en iyi yollarından biri, Visual Studio içindeki NuGet Paket Yöneticisi Konsolu'nu kullanmaktır. IronPDF'yi bu yöntemle yüklemenin bazı avantajları vardır.
- Yapılması kolaydır ve
- IronPDF'nin en son sürümünü kullandığınızdan emin olabilirsiniz.
IronPDF Yükleme Adımları
Öncelikle, Tools > NuGet Package Manager > Paket Yöneticisi Konsolu giderek Paket Yöneticisi Konsolu'nu açın.
Paket Yöneticisi Konsolu
Daha sonra, aşağıdaki komutu yazın:
Bu, paketi ve assets klasörü gibi tüm bağımlılıklarını kuracaktır.
IronPDF Kurulumu
Şimdi MAUI projenizde IronPDF'yi kullanmaya başlayabilirsiniz.
Adım 2: .NET MAUI'de Ön Yüz Tasarımı Kurun
Öncelikle, IronPDF'in üç işlevselliği için bir düzen oluşturun.
URL'den PDF'ye Düzen
URL'den PDF'ye düzen için, bir .NET MAUI etiket kontrolü kullanarak "PDF'ye Dönüştürmek İçin URL Girin" metni ile bir etiket oluşturun. Bundan sonra, Giriş kontrolünü ve düğmeyi yatay olarak düzenlemek için yatay yığın düzeni uygulayın. Daha sonra, kontrollerden sonra bir çizgi koyun ve kontrollerin bir sonraki bölümünü bölün.
<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'den PDF'ye Düzen
HTML'den PDF bölümünün düzeni için bir Editör kontrolü ve bir düğme oluşturun. Editör kontrolü, kullanıcıdan bir HTML içerik dizgisi kabul etmek için kullanılacak. Ek olarak, bir ayırıcı olarak bir satır ekleyin.
<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 Dosyalarından PDF'ye Düzen
HTML dosyalarını PDF'ye dönüştürmek için yalnızca bir düğme ekleyin. Bu düğme, IronPDF kullanarak bir HTML dosyasını PDF belgesine dönüştürmeye yardımcı olacaktır.
<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" />
Tamamlanmış UI Kodu
.NET MAUI ön yüzünün tam kaynak kodu aşağıda verilmiştir.
<?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>
Adım 3: PDF dosyasını Kaydetme ve Görüntüleme Kodu
.NET MAUI, yerel depolamada dosya kaydetmek için önceden oluşturulmuş herhangi bir işlevi içermez. Yani kodu kendimiz yazmamız gereklidir. Kaydetme ve görüntüleme işlevselliği için, SaveAndView adlı üç parametreli kısmi bir void fonksiyon bulunan SaveService adlı kısmi bir sınıf oluşturulmuştur: dosya adı, dosya içerik türü ve dosyayı yazmak için bellek akışı.
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);
}
}Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Namespace PDF_Viewer
Partial Public Class SaveService
Public Partial Private Sub SaveAndView(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
End Sub
End Class
End NamespaceKaydetme ve görüntüleme işlevselliğinin, desteklemek istediği her platform için uygulanması gerekecektir (ör. Android, macOS ve/veya Windows için). Windows platformu için 'SaveWindows.cs' adlı bir dosya oluşturun ve SaveAndView kısmi yöntemi uygulayın:
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);
}
}
}
}
}Imports Windows.Storage
Imports Windows.Storage.Pickers
Imports Windows.Storage.Streams
Imports Windows.UI.Popups
Namespace PDF_Viewer
Partial Public Class SaveService
Public Async Sub SaveAndView(filename As String, contentType As String, stream As MemoryStream)
Dim stFile As StorageFile
Dim extension As String = Path.GetExtension(filename)
'Gets process windows handle to open the dialog in application process.
Dim windowHandle As IntPtr = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle
If Not Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons") Then
'Creates file save picker to save a file.
Dim savePicker As New FileSavePicker()
savePicker.DefaultFileExtension = ".pdf"
savePicker.SuggestedFileName = filename
'Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", New List(Of String)() From {".pdf"})
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle)
stFile = Await savePicker.PickSaveFileAsync()
Else
Dim local As StorageFolder = ApplicationData.Current.LocalFolder
stFile = Await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting)
End If
If stFile IsNot Nothing Then
Using zipStream As IRandomAccessStream = Await stFile.OpenAsync(FileAccessMode.ReadWrite)
'Writes compressed data from memory to file.
Using outstream As Stream = zipStream.AsStreamForWrite()
outstream.SetLength(0)
'Saves the stream as file.
Dim buffer() As Byte = stream.ToArray()
outstream.Write(buffer, 0, buffer.Length)
outstream.Flush()
End Using
End Using
'Create message dialog box.
Dim msgDialog As New MessageDialog("Do you want to view the document?", "File has been created successfully")
Dim yesCmd As New UICommand("Yes")
msgDialog.Commands.Add(yesCmd)
Dim noCmd As New UICommand("No")
msgDialog.Commands.Add(noCmd)
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle)
'Showing a dialog box.
Dim cmd As IUICommand = Await msgDialog.ShowAsync()
If cmd.Label = yesCmd.Label Then
'Launch the saved file.
Await Windows.System.Launcher.LaunchFileAsync(stFile)
End If
End If
End Sub
End Class
End NamespaceAndroid ve macOS için benzer SaveAndView uygulamaları ile ayrı dosyalar oluşturmalısınız. Çalışan bir örneği şu MAUI PDF Görüntüleyici GitHub Deposundan alabilirsiniz.
Adım 4: PDF İşlevsellikleri için Kod
Şimdi, PDF işlevsellikleri için kod yazma zamanı. URL'den PDF'e işlevselliği ile başlayalım.
URL'den PDF'e İşlevselliği
URL'den PDF'ye işlevselliği için bir UrlToPdf fonksiyonu oluşturun. Fonksiyonun içinde, ChromePdfRenderer nesnesini oluşturun ve URL'yi PDF belgesine dönüştürmek için RenderUrlAsPdf fonksiyonunu kullanın. RenderUrlAsPdf fonksiyonu, web sunucusundan URL verilerini alır ve bunu PDF belgesine dönüştürmek için işler. Parametrelerde, URL girişi kontrolündeki metni geçirin, bir SaveService sınıfı nesnesi oluşturun ve SaveAndView fonksiyonunu kullanın. SaveAndView fonksiyonunun parametrelerinde, oluşturulan PDF dosyasının akışını geçirin.
SaveAndView fonksiyonu, dosyaları özelleştirilmiş herhangi bir yolda kaydetmeye yardımcı olur ve PDF dosyalarını görüntüleme seçeneği sunar. Son olarak, PDF dosyasının oluşturulması hakkında bilgi veren bir uyarı kutusu gösterin. Bir kullanıcı boş bir giriş kontrolü ile PDF dosyası oluşturmaya çalışırsa, bir hata mesajı ve uyarı ile bir uyarı kutusu gösterecektir.
private void UrlToPdf(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(URL.Text))
{
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");
}
}Imports Microsoft.VisualBasic
Private Sub UrlToPdf(ByVal sender As Object, ByVal e As EventArgs)
If Not String.IsNullOrEmpty(URL.Text) Then
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(URL.Text.Trim())
Dim saveService As 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! " & vbLf & "Please enter URL!", "OK")
End If
End SubHTML'den PDF'e İşlevselliği
HTML'den PDF'ye dönüştürme işlevselliği için HtmlToPdf fonksiyonunu oluşturun ve RenderHtmlAsPdf fonksiyonunu kullanın. Editör kontrolünün metnini kullanın ve bunu RenderHtmlAsPdf fonksiyonunun parametrelerinde geçirin. Yukarıdaki fonksiyona benzer şekilde, PDF dosyasını kaydettikten sonra görüntüleme işlevselliğini etkinleştirmek için SaveAndView fonksiyonunu kullanın.
private void HtmlToPdf(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(HTML.Text))
{
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");
}
}Imports Microsoft.VisualBasic
Private Sub HtmlToPdf(ByVal sender As Object, ByVal e As EventArgs)
If Not String.IsNullOrEmpty(HTML.Text) Then
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(HTML.Text)
Dim saveService As 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! " & vbLf & "Please enter valid HTML!", "OK")
End If
End SubHTML Dosyası'ndan PDF Dosyası'na İşlevselliği
HTML dosyalarını PDF dosyalarına dönüştürmek için FileToPdf fonksiyonunu oluşturun. RenderHtmlFileAsPdf fonksiyonunu kullanın ve HTML dosya yolunu bir parametre olarak geçirin. Tüm HTML içeriğini bir PDF olarak dönüştürür ve çıktı dosyasını kaydeder.
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 Sub FileToPdf(ByVal sender As Object, ByVal e As EventArgs)
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("C:\Users\Administrator\Desktop\index.html")
Dim saveService As New SaveService()
saveService.SaveAndView("HTML File to PDF.pdf", "application/pdf", pdf.Stream)
DisplayAlert("Success", "PDF from File Created!", "OK")
End SubÇıktı
Projeyi çalıştırdıktan sonra çıkış bu şekilde görünecektir.
Çıktı
Bu bölümde Microsoft web sitenizin URL'sini koyun ve butona tıklayın.
URL'den PDF'e
PDF dosyasını oluşturduktan sonra, dosyayı özel hedefte kaydetmek için bir iletişim kutusu gösterir.
Dosyayı Kaydet
Dosyayı kaydettikten sonra, bir PDF görüntüleyici seçme seçeneği sunarak bu açılır pencere gösterilir.
PDF Görüntüleyici Açılır Penceresi
IronPDF, URL'yi PDF'e dönüştürmede mükemmel sonuç verir. Tüm renkleri ve resimleri orijinal şekilde ve formatta korur.
PDF Görüntüleyici Açılır Penceresi
Tüm diğer işlevlerle de aynı prosedürü uygulamanız gerekir. İçin bu IronPDF Blazor Blog Gönderisini kontrol edin, IronPDF'nin Blazor'da çalışma şekli hakkında daha fazla bilgi edinin.
MAUI sayfasını XAML olarak PDF belgesine nasıl dönüştüreceğinizi "MAUI'de XAML'ı PDF'ye Dönüştürme" adresini ziyaret ederek öğrenin.
Özet
Bu eğitimde IronPDF, .NET MAUI uygulamasında bir PDF dosyası ve PDF görüntüleyici oluşturmak için kullanıldı. .NET MAUI, tek bir kod tabanı ile çok platformlu uygulamalar oluşturmak için harika bir araçtır. IronPDF, herhangi bir .NET uygulamasında PDF dosyalarını kolayca oluşturmanıza ve özelleştirmenize olanak tanır. IronPDF, .NET MAUI platformuyla tamamen uyumludur.
IronPDF, geliştirme için ücretsizdir. IronPDF'yi üretimde test etmek için bir ücretsiz deneme anahtarı alabilirsiniz. IronPDF ve yetenekleri hakkında daha fazla bilgi için, lütfen IronPDF Resmi Web Sitesi'ni ziyaret edin.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.
İlgili Makaleler


