Skip to content

Commit 24c955d

Browse files
892878: Update the sample.
1 parent fdde00f commit 24c955d

File tree

46 files changed

+2595
-63
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2595
-63
lines changed

Azure/HTML-to-PDF-AzureApp-container/HTML-to-PDF-AzureApp-container/Function1.cs

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,18 @@ public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post
3434
{
3535
// Attempt to initialize Blink binaries
3636
blinkBinariesPath = SetupBlinkBinaries();
37-
3837
// Initialize the HTML to PDF converter with the Blink rendering engine.
3938
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter(HtmlRenderingEngine.Blink);
4039
BlinkConverterSettings settings = new BlinkConverterSettings();
41-
4240
// Set command line arguments to run without sandbox.
4341
settings.CommandLineArguments.Add("--no-sandbox");
4442
settings.CommandLineArguments.Add("--disable-setuid-sandbox");
4543
settings.BlinkPath = blinkBinariesPath;
46-
4744
// Assign BlinkConverter settings to the HTML converter
4845
htmlConverter.ConverterSettings = settings;
49-
5046
// Convert URL to PDF
5147
PdfDocument document = htmlConverter.Convert("https://www.google.com/");
5248
ms = new MemoryStream();
53-
5449
// Save and close the PDF document
5550
document.Save(ms);
5651
document.Close();
@@ -62,134 +57,76 @@ public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post
6257
PdfPage page = document.Pages.Add();
6358
PdfGraphics graphics = page.Graphics;
6459
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
65-
6660
// Draw the exception message in the PDF
6761
graphics.DrawString(ex.Message, font, PdfBrushes.Black, new Syncfusion.Drawing.PointF(0, 0));
68-
6962
ms = new MemoryStream();
7063
document.Save(ms);
7164
document.Close(true);
7265
}
73-
7466
ms.Position = 0;
7567
return new FileStreamResult(ms, "application/pdf");
7668
}
7769

78-
7970
private static string SetupBlinkBinaries()
80-
8171
{
82-
8372
string blinkAppDir = Path.Combine("/home/site/wwwroot/runtimes/linux/native");
84-
8573
string tempBlinkDir = Path.GetTempPath();
86-
8774
string chromePath = Path.Combine(tempBlinkDir, "chrome");
88-
8975
if (!File.Exists(chromePath))
90-
9176
{
92-
9377
CopyFilesRecursively(blinkAppDir, tempBlinkDir);
94-
9578
SetExecutablePermission(tempBlinkDir);
96-
9779
}
98-
9980
return tempBlinkDir;
100-
10181
}
10282

10383
private static void CopyFilesRecursively(string sourcePath, string targetPath)
104-
10584
{
106-
10785
//Create all the directories from the source to the destination path.
108-
10986
foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
110-
11187
{
112-
11388
Directory.CreateDirectory(dirPath.Replace(sourcePath, targetPath));
114-
11589
}
116-
11790
//Copy all the files from the source path to the destination path.
118-
11991
foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories))
120-
12192
{
122-
12393
File.Copy(newPath, newPath.Replace(sourcePath, targetPath), true);
124-
12594
}
126-
12795
}
12896

12997
[DllImport("libc", SetLastError = true, EntryPoint = "chmod")]
130-
13198
internal static extern int Chmod(string path, FileAccessPermissions mode);
132-
13399
private static void SetExecutablePermission(string tempBlinkDir)
134-
135100
{
136-
137101
FileAccessPermissions ExecutableFilePermissions = FileAccessPermissions.UserRead | FileAccessPermissions.UserWrite | FileAccessPermissions.UserExecute |
138-
139102
FileAccessPermissions.GroupRead | FileAccessPermissions.GroupExecute | FileAccessPermissions.OtherRead | FileAccessPermissions.OtherExecute;
140-
141103
string[] executableFiles = new string[] { "chrome", "chrome_sandbox" };
142-
143104
foreach (string executable in executableFiles)
144-
145105
{
146-
147106
var execPath = Path.Combine(tempBlinkDir, executable);
148-
149107
if (File.Exists(execPath))
150-
151108
{
152-
153109
var code = Function1.Chmod(execPath, ExecutableFilePermissions);
154-
155110
if (code != 0)
156-
157111
{
158-
159112
throw new Exception("Chmod operation failed");
160-
161113
}
162-
163114
}
164-
165115
}
166-
167116
}
168117

169118
[Flags]
170-
171119
internal enum FileAccessPermissions : uint
172-
173120
{
174-
175121
OtherExecute = 1,
176-
177122
OtherWrite = 2,
178-
179123
OtherRead = 4,
180-
181124
GroupExecute = 8,
182-
183125
GroupWrite = 16,
184-
185126
GroupRead = 32,
186-
187127
UserExecute = 64,
188-
189128
UserWrite = 128,
190-
191129
UserRead = 256
192-
193130
}
194131
}
195132
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://html-to-pdf-20240829132318.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/HTML-to-PDF-20240829132318</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/HTMLtoPDFAzurer20240829132601</ContainerResourceId>
16+
<ContainerResourceName>HTMLtoPDFAzurer20240829132601</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdfazurer20240829132601.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://html-to-pdf-azure-20240829145112.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/HTML-to-PDF-Azure-20240829145112</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/HTMLtoPDFAzureAppcontainer20240829145325</ContainerResourceId>
16+
<ContainerResourceName>HTMLtoPDFAzureAppcontainer20240829145325</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdfazureappcontainer20240829145325.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://html-to-pdf-azureapp-container20240827171109.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/HTML-to-PDF-AzureApp-container20240827171109</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/HTMLtoPDFAzureAppcontainer20240827171535</ContainerResourceId>
16+
<ContainerResourceName>HTMLtoPDFAzureAppcontainer20240827171535</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdfazureappcontainer20240827171535.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://html-to-pdf-azureapp-container20240828084906.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/HTML-to-PDF-AzureApp-container20240828084906</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/HTMLtoPDFAzureAppcontainer20240828085143</ContainerResourceId>
16+
<ContainerResourceName>HTMLtoPDFAzureAppcontainer20240828085143</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdfazureappcontainer20240828085143.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://html-to-pdf-azureapp-container20240829101450.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/HTML-to-PDF-AzureApp-container20240829101450</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/HTMLtoPDFAzureAppcontainer20240829101835</ContainerResourceId>
16+
<ContainerResourceName>HTMLtoPDFAzureAppcontainer20240829101835</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdfazureappcontainer20240829101835.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://html-to-pdf-azureapp-container20240829160141.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/HTML-to-PDF-AzureApp-container20240829160141</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/HTMLtoPDFAzureAppcontainer20240829160456</ContainerResourceId>
16+
<ContainerResourceName>HTMLtoPDFAzureAppcontainer20240829160456</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdfazureappcontainer20240829160456.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://htmltopdf20240829161551.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/htmltopdf20240829161551</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/htmltopdf20240829161853</ContainerResourceId>
16+
<ContainerResourceName>htmltopdf20240829161853</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdf20240829161853.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://htmltopdf20240830093618.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.Web/sites/htmltopdf20240830093618</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDF/providers/Microsoft.ContainerRegistry/registries/htmltopdf20240830093940</ContainerResourceId>
16+
<ContainerResourceName>htmltopdf20240830093940</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdf20240830093940.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
https://go.microsoft.com/fwlink/?LinkID=208121.
4+
-->
5+
<Project>
6+
<PropertyGroup>
7+
<WebPublishMethod>Docker</WebPublishMethod>
8+
<PublishProvider>FunctionsContainer</PublishProvider>
9+
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10+
<LastUsedPlatform>Any CPU</LastUsedPlatform>
11+
<SiteUrlToLaunchAfterPublish>https://htmltopdf20240830160231.azurewebsites.net</SiteUrlToLaunchAfterPublish>
12+
<LaunchSiteAfterPublish>false</LaunchSiteAfterPublish>
13+
<ResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDFSample/providers/Microsoft.Web/sites/htmltopdf20240830160231</ResourceId>
14+
<IsLinux>true</IsLinux>
15+
<ContainerResourceId>/subscriptions/349260c9-c5a3-4c13-8f1c-7a9f185aa74d/resourcegroups/HTMLtoPDFSample/providers/Microsoft.ContainerRegistry/registries/htmltopdfsample</ContainerResourceId>
16+
<ContainerResourceName>htmltopdfsample</ContainerResourceName>
17+
<Subscription>Visual Studio Professional Subscription</Subscription>
18+
<Subtype>ContainerRegistry</Subtype>
19+
<RegistryUrl>htmltopdfsample.azurecr.io</RegistryUrl>
20+
<DockerPublish>true</DockerPublish>
21+
</PropertyGroup>
22+
</Project>

0 commit comments

Comments
 (0)