-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
877870: Add sample for create PDF document in AKS environment.
- Loading branch information
1 parent
9e7b184
commit 504f1b6
Showing
82 changed files
with
75,010 additions
and
0 deletions.
There are no files selected for viewing
30 changes: 30 additions & 0 deletions
30
Getting Started/Azure/Create PDF document in AKS environment/createpdfdocument/.dockerignore
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
**/.classpath | ||
**/.dockerignore | ||
**/.env | ||
**/.git | ||
**/.gitignore | ||
**/.project | ||
**/.settings | ||
**/.toolstarget | ||
**/.vs | ||
**/.vscode | ||
**/*.*proj.user | ||
**/*.dbmdl | ||
**/*.jfm | ||
**/azds.yaml | ||
**/bin | ||
**/charts | ||
**/docker-compose* | ||
**/Dockerfile* | ||
**/node_modules | ||
**/npm-debug.log | ||
**/obj | ||
**/secrets.dev.yaml | ||
**/values.dev.yaml | ||
LICENSE | ||
README.md | ||
!**/.gitignore | ||
!.git/HEAD | ||
!.git/config | ||
!.git/packed-refs | ||
!.git/refs/heads/** |
25 changes: 25 additions & 0 deletions
25
...rted/Azure/Create PDF document in AKS environment/createpdfdocument/createpdfdocument.sln
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.11.35222.181 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "createpdfdocument", "createpdfdocument\createpdfdocument.csproj", "{35990BE3-35C1-4443-B022-343D6CA429C2}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{35990BE3-35C1-4443-B022-343D6CA429C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{35990BE3-35C1-4443-B022-343D6CA429C2}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{35990BE3-35C1-4443-B022-343D6CA429C2}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{35990BE3-35C1-4443-B022-343D6CA429C2}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(ExtensibilityGlobals) = postSolution | ||
SolutionGuid = {F9EE6403-41B9-4C12-9C26-B89C148E1021} | ||
EndGlobalSection | ||
EndGlobal |
98 changes: 98 additions & 0 deletions
98
...ment in AKS environment/createpdfdocument/createpdfdocument/Controllers/HomeController.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
using createpdfdocument.Models; | ||
using Microsoft.AspNetCore.Mvc; | ||
using Syncfusion.Pdf.Graphics; | ||
using Syncfusion.Pdf; | ||
using System.Diagnostics; | ||
using Syncfusion.Drawing; | ||
using Syncfusion.Pdf.Grid; | ||
|
||
namespace createpdfdocument.Controllers | ||
{ | ||
public class HomeController : Controller | ||
{ | ||
private readonly ILogger<HomeController> _logger; | ||
|
||
public HomeController(ILogger<HomeController> logger) | ||
{ | ||
_logger = logger; | ||
} | ||
|
||
public IActionResult Index() | ||
{ | ||
return View(); | ||
} | ||
|
||
public IActionResult Privacy() | ||
{ | ||
return View(); | ||
} | ||
|
||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] | ||
public IActionResult Error() | ||
{ | ||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); | ||
} | ||
private readonly IWebHostEnvironment _hostingEnvironment; | ||
public HomeController(IWebHostEnvironment hostingEnvironment) | ||
{ | ||
_hostingEnvironment = hostingEnvironment; | ||
} | ||
public IActionResult CreatePDFDocument() | ||
{ | ||
//Create a new PDF document. | ||
PdfDocument document = new PdfDocument(); | ||
//Set the page size. | ||
document.PageSettings.Size = PdfPageSize.A4; | ||
//Add a page to the document. | ||
PdfPage page = document.Pages.Add(); | ||
|
||
//Create PDF graphics for the page. | ||
PdfGraphics graphics = page.Graphics; | ||
//Load the image from the disk. | ||
string imagePath = Path.Combine(_hostingEnvironment.WebRootPath, "Data/AdventureCycle.jpg"); | ||
FileStream imageStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read); | ||
PdfBitmap image = new PdfBitmap(imageStream); | ||
//Draw an image. | ||
graphics.DrawImage(image, new RectangleF(130, 0, 250, 100)); | ||
|
||
//Draw header text. | ||
graphics.DrawString("Adventure Works Cycles", new PdfStandardFont(PdfFontFamily.TimesRoman, 20, PdfFontStyle.Bold), PdfBrushes.Gray, new PointF(150, 150)); | ||
|
||
//Add paragraph. | ||
string text = "Adventure Works Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company. The company manufactures and sells metal and composite bicycles to North American, European and Asian commercial markets. While its base operation is located in Washington with 290 employees, several regional sales teams are located throughout their market base."; | ||
//Create a text element with the text and font. | ||
PdfTextElement textElement = new PdfTextElement(text, new PdfStandardFont(PdfFontFamily.TimesRoman, 12)); | ||
//Draw the text in the first column. | ||
textElement.Draw(page, new RectangleF(0, 200, page.GetClientSize().Width, page.GetClientSize().Height)); | ||
|
||
//Create a PdfGrid. | ||
PdfGrid pdfGrid = new PdfGrid(); | ||
//Add values to the list. | ||
List<object> data = new List<object>(); | ||
Object row1 = new { Product_ID = "1001", Product_Name = "Bicycle", Price = "10,000" }; | ||
Object row2 = new { Product_ID = "1002", Product_Name = "Head Light", Price = "3,000" }; | ||
Object row3 = new { Product_ID = "1003", Product_Name = "Break wire", Price = "1,500" }; | ||
data.Add(row1); | ||
data.Add(row2); | ||
data.Add(row3); | ||
//Add list to IEnumerable. | ||
IEnumerable<object> dataTable = data; | ||
//Assign data source. | ||
pdfGrid.DataSource = dataTable; | ||
//Apply built-in table style. | ||
pdfGrid.ApplyBuiltinStyle(PdfGridBuiltinStyle.GridTable4Accent3); | ||
//Draw the grid to the page of PDF document. | ||
pdfGrid.Draw(graphics, new RectangleF(0, 300, page.Size.Width - 80, 0)); | ||
|
||
//Saving the PDF to the MemoryStream. | ||
MemoryStream stream = new MemoryStream(); | ||
document.Save(stream); | ||
//Set the position as '0'. | ||
stream.Position = 0; | ||
//Download the PDF document in the browser. | ||
FileStreamResult fileStreamResult = new FileStreamResult(stream, "application/pdf"); | ||
fileStreamResult.FileDownloadName = "Sample.pdf"; | ||
return fileStreamResult; | ||
} | ||
} | ||
} |
30 changes: 30 additions & 0 deletions
30
...ure/Create PDF document in AKS environment/createpdfdocument/createpdfdocument/Dockerfile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. | ||
|
||
# This stage is used when running from VS in fast mode (Default for Debug configuration) | ||
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base | ||
USER app | ||
WORKDIR /app | ||
EXPOSE 8080 | ||
EXPOSE 8081 | ||
|
||
|
||
# This stage is used to build the service project | ||
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build | ||
ARG BUILD_CONFIGURATION=Release | ||
WORKDIR /src | ||
COPY ["createpdfdocument/createpdfdocument.csproj", "createpdfdocument/"] | ||
RUN dotnet restore "./createpdfdocument/createpdfdocument.csproj" | ||
COPY . . | ||
WORKDIR "/src/createpdfdocument" | ||
RUN dotnet build "./createpdfdocument.csproj" -c $BUILD_CONFIGURATION -o /app/build | ||
|
||
# This stage is used to publish the service project to be copied to the final stage | ||
FROM build AS publish | ||
ARG BUILD_CONFIGURATION=Release | ||
RUN dotnet publish "./createpdfdocument.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false | ||
|
||
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration) | ||
FROM base AS final | ||
WORKDIR /app | ||
COPY --from=publish /app/publish . | ||
ENTRYPOINT ["dotnet", "createpdfdocument.dll"] |
9 changes: 9 additions & 0 deletions
9
... document in AKS environment/createpdfdocument/createpdfdocument/Models/ErrorViewModel.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
namespace createpdfdocument.Models | ||
{ | ||
public class ErrorViewModel | ||
{ | ||
public string? RequestId { get; set; } | ||
|
||
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...ure/Create PDF document in AKS environment/createpdfdocument/createpdfdocument/Program.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
var builder = WebApplication.CreateBuilder(args); | ||
|
||
// Add services to the container. | ||
builder.Services.AddControllersWithViews(); | ||
|
||
var app = builder.Build(); | ||
|
||
// Configure the HTTP request pipeline. | ||
if (!app.Environment.IsDevelopment()) | ||
{ | ||
app.UseExceptionHandler("/Home/Error"); | ||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. | ||
app.UseHsts(); | ||
} | ||
|
||
app.UseHttpsRedirection(); | ||
app.UseStaticFiles(); | ||
|
||
app.UseRouting(); | ||
|
||
app.UseAuthorization(); | ||
|
||
app.MapControllerRoute( | ||
name: "default", | ||
pattern: "{controller=Home}/{action=Index}/{id?}"); | ||
|
||
app.Run(); |
22 changes: 22 additions & 0 deletions
22
...ument/createpdfdocument/Properties/PublishProfiles/createpdfdocument20240918103106.pubxml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<!-- | ||
https://go.microsoft.com/fwlink/?LinkID=208121. | ||
--> | ||
<Project> | ||
<PropertyGroup> | ||
<WebPublishMethod>Custom</WebPublishMethod> | ||
<DockerPublish>true</DockerPublish> | ||
<ResourceId>/subscriptions/f2a6fc40-66ca-4ee9-82c9-b8f94b50111c/resourceGroups/CreatePdfDocument/providers/Microsoft.ContainerRegistry/registries/createpdfdocument20240918103106</ResourceId> | ||
<ResourceName>createpdfdocument20240918103106</ResourceName> | ||
<ResourceGroup>CreatePdfDocument</ResourceGroup> | ||
<Subscription>Visual Studio Professional Subscription</Subscription> | ||
<RegistryUrl>https://createpdfdocument20240918103106.azurecr.io</RegistryUrl> | ||
<UserName /> | ||
<PublishImageTag>latest</PublishImageTag> | ||
<PublishProvider>ContainerRegistry</PublishProvider> | ||
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> | ||
<LastUsedPlatform>Any CPU</LastUsedPlatform> | ||
<ProjectGuid>35990be3-35c1-4443-b022-343d6ca429c2</ProjectGuid> | ||
<_TargetId>AzureContainerRegistry</_TargetId> | ||
</PropertyGroup> | ||
</Project> |
11 changes: 11 additions & 0 deletions
11
.../createpdfdocument/Properties/PublishProfiles/createpdfdocument20240918103106.pubxml.user
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<!-- | ||
https://go.microsoft.com/fwlink/?LinkID=208121. | ||
--> | ||
<Project> | ||
<PropertyGroup> | ||
<TimeStampOfAssociatedLegacyPublishXmlFile /> | ||
<History>True|2024-09-19T06:36:34.1973596Z||;True|2024-09-19T11:54:28.1660449+05:30||;True|2024-09-19T11:23:09.7967523+05:30||;True|2024-09-19T09:22:45.4401931+05:30||;True|2024-09-19T09:15:31.4707843+05:30||;True|2024-09-19T08:34:06.8725572+05:30||;True|2024-09-18T18:07:47.4795946+05:30||;True|2024-09-18T17:24:44.1860653+05:30||;True|2024-09-18T17:24:00.1192297+05:30||;True|2024-09-18T17:16:45.4297075+05:30||;True|2024-09-18T16:59:26.9488073+05:30||;False|2024-09-18T16:55:50.8153853+05:30||;True|2024-09-18T16:00:22.7837579+05:30||;</History> | ||
<LastFailureDetails /> | ||
</PropertyGroup> | ||
</Project> |
49 changes: 49 additions & 0 deletions
49
...ent in AKS environment/createpdfdocument/createpdfdocument/Properties/launchSettings.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
{ | ||
"profiles": { | ||
"http": { | ||
"commandName": "Project", | ||
"launchBrowser": true, | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
}, | ||
"dotnetRunMessages": true, | ||
"applicationUrl": "http://localhost:5202" | ||
}, | ||
"https": { | ||
"commandName": "Project", | ||
"launchBrowser": true, | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
}, | ||
"dotnetRunMessages": true, | ||
"applicationUrl": "https://localhost:7004;http://localhost:5202" | ||
}, | ||
"IIS Express": { | ||
"commandName": "IISExpress", | ||
"launchBrowser": true, | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
} | ||
}, | ||
"Container (Dockerfile)": { | ||
"commandName": "Docker", | ||
"launchBrowser": true, | ||
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", | ||
"environmentVariables": { | ||
"ASPNETCORE_HTTPS_PORTS": "8081", | ||
"ASPNETCORE_HTTP_PORTS": "8080" | ||
}, | ||
"publishAllPorts": true, | ||
"useSSL": true | ||
} | ||
}, | ||
"$schema": "http://json.schemastore.org/launchsettings.json", | ||
"iisSettings": { | ||
"windowsAuthentication": false, | ||
"anonymousAuthentication": true, | ||
"iisExpress": { | ||
"applicationUrl": "http://localhost:46791", | ||
"sslPort": 44319 | ||
} | ||
} | ||
} |
9 changes: 9 additions & 0 deletions
9
...F document in AKS environment/createpdfdocument/createpdfdocument/Views/Home/Index.cshtml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
@{ | ||
Html.BeginForm("CreatePDFDocument", "Home", FormMethod.Get); | ||
{ | ||
<div> | ||
<input type="submit" value="Create PDF Document" style="width:200px;height:27px" /> | ||
</div> | ||
} | ||
Html.EndForm(); | ||
} |
6 changes: 6 additions & 0 deletions
6
...document in AKS environment/createpdfdocument/createpdfdocument/Views/Home/Privacy.cshtml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
@{ | ||
ViewData["Title"] = "Privacy Policy"; | ||
} | ||
<h1>@ViewData["Title"]</h1> | ||
|
||
<p>Use this page to detail your site's privacy policy.</p> |
25 changes: 25 additions & 0 deletions
25
...document in AKS environment/createpdfdocument/createpdfdocument/Views/Shared/Error.cshtml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
@model ErrorViewModel | ||
@{ | ||
ViewData["Title"] = "Error"; | ||
} | ||
|
||
<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 <strong>Development</strong> environment will display more 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> |
Oops, something went wrong.