This commit is contained in:
@@ -267,6 +267,40 @@ public partial class MainWindow : Window
|
||||
|
||||
private async void OnSaveAs(object? sender, RoutedEventArgs e) => await SaveAsAsync();
|
||||
|
||||
private async void OnExportCurrentPdf(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
byte[] pdf;
|
||||
try
|
||||
{
|
||||
pdf = _viewModel.RenderCurrentPdf();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_viewModel.SetStatus($"PDF-Export fehlgeschlagen: {ex.Message}", true);
|
||||
return;
|
||||
}
|
||||
|
||||
var file = await StorageProvider.SaveFilePickerAsync(new()
|
||||
{
|
||||
Title = "Aktuelle Vorlagenansicht als PDF exportieren",
|
||||
SuggestedFileName = _viewModel.TemplateId + "-vorschau.pdf",
|
||||
DefaultExtension = "pdf",
|
||||
FileTypeChoices = [new("PDF-Dateien") { Patterns = ["*.pdf"] }],
|
||||
});
|
||||
if (file is null) return;
|
||||
|
||||
try
|
||||
{
|
||||
var destination = EnsurePdfExtension(file.Path.LocalPath);
|
||||
await File.WriteAllBytesAsync(destination, pdf);
|
||||
_viewModel.SetStatus($"PDF-Vorschau exportiert: {Path.GetFileName(destination)}", false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_viewModel.SetStatus($"PDF-Export fehlgeschlagen: {ex.Message}", true);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SaveAsAsync()
|
||||
{
|
||||
try { _viewModel.BuildLoaded(); }
|
||||
@@ -332,6 +366,9 @@ public partial class MainWindow : Window
|
||||
private static string EnsurePackageExtension(string path) =>
|
||||
string.Equals(Path.GetExtension(path), TemplatePackage.Extension, StringComparison.OrdinalIgnoreCase)
|
||||
? path : path + TemplatePackage.Extension;
|
||||
private static string EnsurePdfExtension(string path) =>
|
||||
string.Equals(Path.GetExtension(path), ".pdf", StringComparison.OrdinalIgnoreCase)
|
||||
? path : path + ".pdf";
|
||||
private void RefreshStarterTemplates(string? selectedId = null) =>
|
||||
_viewModel.SetStarterTemplates(_starterTemplates.GetAll(), selectedId);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user