How to use WindowStatus in HTML converter for WinForms PDF?
We can manually wait for HtmlConverter to complete the document loading using the WindowStatus property in the HTML converter. We can use WindowStatus instead of an additional delay. In an additional delay, we do not know the exact time needed for the execution of JavaScript. By using WindowStatus, you can avoid this problem.
Both WindowStatus values should be the same; otherwise, the converter will never stop the conversion.
Assemblies Required:
1) Syncfusion.Compression.Base.dll
2) Syncfusion.HtmlConverter.Base.dll
3) Syncfusion.Pdf.Base.dll
Steps to use WindowStatus in the HTML converter programmatically in C#:
1)Create a new WPF application project.
2)Install the Syncfusion.HtmlToPdfConverter.WPF NuGet package as reference to your .NET Framework applications from NuGet.org.
3)Include the following namespaces in the MainWindow.xaml.cs file
using Syncfusion.HtmlConverter; using Syncfusion.Pdf; using System.Windows;
Add a new button in MainWindow.xaml to create a PDF document as follows.
<TextBlock TextAlignment="Justify" FontFamily="Verdana" FontSize="11" TextWrapping="Wrap" Padding="5,5,5,5" Margin="0,77,0,1"> <TextBlock.Background> <LinearGradientBrush EndPoint="0.5,-0.04" StartPoint="0.5,1.04"> <GradientStop Color="#FFD9E9F7" Offset="0"/> <GradientStop Color="#FFEFF8FF" Offset="1"/> </LinearGradientBrush> </TextBlock.Background> <TextBlock.Text> Click the button to view the PDF file generated by Essential PDF. </TextBlock.Text> </TextBlock> <Button Click="btnCreate_Click" Margin="0,0,10,12" VerticalAlignment="Bottom" Height="30" BorderBrush="LightBlue" HorizontalAlignment="Right" Width="180"> <Button.Background> <LinearGradientBrush EndPoint="0.5,-0.04" StartPoint="0.5,1.04"> <GradientStop Color="#FFD9E9F7" Offset="0"/> <GradientStop Color="#FFEFF8FF" Offset="1"/> </LinearGradientBrush> </Button.Background> <StackPanel Orientation="Horizontal" Height="23" Margin="0,0,0,-2.52" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="100"> <Image Name="image2" Margin="2" HorizontalAlignment="Center" VerticalAlignment="Center"/> <TextBlock Text="Create PDF" Height="15.96" Width="126" Margin="0,4,0,3"/> </StackPanel> </Button>
Add the following code in btnCreate_Click to create a PDF file with simple text:
C#
// Create an HTML to PDF converter object with default settings
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();
BlinkConverterSettings blinkConverterSettings = new BlinkConverterSettings();
// Set WindowStatus
blinkConverterSettings.WindowStatus = "completed";
htmlConverter.ConverterSettings = blinkConverterSettings;
// Convert URL to PDF
PdfDocument document = htmlConverter.Convert("input.html");
// Save the document
document.Save("Sample.pdf");
Input.html:
<html>
<head>
</head>
<body>
<div id="message">
Wait for 2 Seconds
</div>
<script type="text/javascript">
setTimeout(function () {
document.getElementById("message").innerHTML = "Hello World!!";
window.status = "completed";
}, 2000);
</script>
</body>
</html>
A complete working sample can be downloaded from WindowStatus.zip.
By executing the program, you will get the PDF document as follows.
Take a moment to peruse the documentation, where you can find converting HTML pages to PDF document along with respective customization options and features.
Refer here to explore the rich set of Syncfusion Essential® PDF features.
An online sample link to convert HTML to PDF document.
Conclusion
I hope you enjoyed learning about how to get formatting date value based on culture in C#, VB.NET.
You can refer to our WinForms PDF’s feature tour page to learn about its other groundbreaking feature representations. You can also explore our WinForms PDF documentation to understand how to present and manipulate data.
For current customers, you can check out our WinForms components from the License and Downloads page. If you are new to Syncfusion®, you can try our 30-day free trial to check out our WinForms PDF and other WinForms components.
If you have any queries or require clarifications, please let us know in the comments below. You can also contact us through our support forums or feedback portal. We are always happy to assist you!