Skip to content

Commit

Permalink
Added the Forms sample in Blazor platform
Browse files Browse the repository at this point in the history
  • Loading branch information
jeyalakshmit committed Aug 9, 2023
1 parent 23ae2c4 commit 508fda1
Show file tree
Hide file tree
Showing 39 changed files with 1,627 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.6.33723.286
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorPDFGettingStarted", "BlazorPDFGettingStarted\BlazorPDFGettingStarted.csproj", "{BA279A83-F445-4234-AF7E-BB3F31D95D4E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BA279A83-F445-4234-AF7E-BB3F31D95D4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA279A83-F445-4234-AF7E-BB3F31D95D4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA279A83-F445-4234-AF7E-BB3F31D95D4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA279A83-F445-4234-AF7E-BB3F31D95D4E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4E522B04-97B1-49FF-B760-E40453111008}
EndGlobalSection
EndGlobal
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
<NotFound>
<PageTitle>Not found</PageTitle>
<LayoutView Layout="@typeof(MainLayout)">
<p role="alert">Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Syncfusion.Pdf.Net.Core" Version="22.2.5" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Grid;
using Syncfusion.Drawing;
using Syncfusion.Pdf.Parsing;
using System.IO;

namespace BlazorPDFGettingStarted
{
public class PdfService
{

public static MemoryStream FillPdfForm(Stream inputFileStream)
{
try
{
PdfLoadedDocument document = new PdfLoadedDocument(inputFileStream);
PdfLoadedForm form = document.Form;

PdfLoadedFormFieldCollection fields = form.Fields;

for(int i = 0; i< fields.Count; i++)
{
if (fields[i] is PdfLoadedTextBoxField)
{
PdfLoadedTextBoxField textBoxField = fields[i] as PdfLoadedTextBoxField;
switch (textBoxField.Name)
{
case "txtFirst":
textBoxField.Text = "Johnson";
break;
case "txtLast":
textBoxField.Text = "Smith";
break;
case "txtPhone":
textBoxField.Text = "9192356837";
break;
case "txtEmail":
textBoxField.Text = "[email protected]";
break;
case "txtAck":
textBoxField.Text = "7/28/2023";
break;
}

}
}

using (MemoryStream stream = new MemoryStream())
{
//Saving the PDF document into the stream
document.Save(stream);
//Closing the PDF document
document.Close(true);
return stream;
}

}
catch (System.Exception ex)
{
throw ex;
}

}

public static MemoryStream FillPdfForm(byte[] inputBytes)
{
try
{
PdfLoadedDocument document = new PdfLoadedDocument(inputBytes);
PdfLoadedForm form = document.Form;

PdfLoadedFormFieldCollection fields = form.Fields;

for (int i = 0; i < fields.Count; i++)
{
if (fields[i] is PdfLoadedTextBoxField)
{
PdfLoadedTextBoxField textBoxField = fields[i] as PdfLoadedTextBoxField;
switch (textBoxField.Name)
{
case "txtFirst":
textBoxField.Text = "Johnson";
break;
case "txtLast":
textBoxField.Text = "Smith";
break;
case "txtPhone":
textBoxField.Text = "9192356837";
break;
case "txtEmail":
textBoxField.Text = "[email protected]";
break;
case "txtAck":
textBoxField.Text = "7/28/2023";
break;
}

}
}

using (MemoryStream stream = new MemoryStream())
{
//Saving the PDF document into the stream
document.Save(stream);
//Closing the PDF document
document.Close(true);
return stream;
}

}
catch (System.Exception ex)
{
throw ex;
}

}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace BlazorPDFGettingStarted.Data
{
public class WeatherForecast
{
public DateTime Date { get; set; }

public int TemperatureC { get; set; }

public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);

public string? Summary { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
namespace BlazorPDFGettingStarted.Data
{
public class WeatherForecastService
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};

public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
{
return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = startDate.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
}).ToArray());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using Microsoft.JSInterop;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace BlazorPDFGettingStarted
{
public static class FileUtil
{
public static ValueTask<object> SaveAs(this IJSRuntime js, string filename, byte[] data)
=> js.InvokeAsync<object>(
"saveAsFile",
filename,
Convert.ToBase64String(data));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@page "/counter"

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
private int currentCount = 0;

private void IncrementCount()
{
currentCount++;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
@page
@model BlazorPDFGettingStarted.Pages.ErrorModel

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Error</title>
<link href="~/css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="~/css/site.css" rel="stylesheet" asp-append-version="true" />
</head>

<body>
<div class="main">
<div class="content px-4">
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>

@if (Model.ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@Model.RequestId</code>
</p>
}

<h3>Development Mode</h3>
<p>
Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
</div>
</div>
</body>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Diagnostics;

namespace BlazorPDFGettingStarted.Pages
{
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
[IgnoreAntiforgeryToken]
public class ErrorModel : PageModel
{
public string? RequestId { get; set; }

public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);

private readonly ILogger<ErrorModel> _logger;

public ErrorModel(ILogger<ErrorModel> logger)
{
_logger = logger;
}

public void OnGet()
{
RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
@page "/fetchdata"

<PageTitle>Weather forecast</PageTitle>

@using BlazorPDFGettingStarted.Data
@inject WeatherForecastService ForecastService

<h1>Weather forecast</h1>

<p>This component demonstrates fetching data from a service.</p>

@if (forecasts == null)
{
<p><em>Loading...</em></p>
}
else
{
<table class="table">
<thead>
<tr>
<th>Date</th>
<th>Temp. (C)</th>
<th>Temp. (F)</th>
<th>Summary</th>
</tr>
</thead>
<tbody>
@foreach (var forecast in forecasts)
{
<tr>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td>@forecast.Summary</td>
</tr>
}
</tbody>
</table>
}

@code {
private WeatherForecast[]? forecasts;

protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}
}
Loading

0 comments on commit 508fda1

Please sign in to comment.