Skip to content

Commit 59770c3

Browse files
Merge pull request #4079 from syncfusion-content/945062-fetch-part1-hotfix
945062: Enum Filtering, Excel exporting, Pdf Exporting
2 parents 82d29f3 + 4734975 commit 59770c3

File tree

20 files changed

+437
-3
lines changed

20 files changed

+437
-3
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public ActionResult Index()
2+
{
3+
ViewBag.dataSource = OrdersDetails.GetAllRecords();
4+
return View();
5+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
@Html.EJS().Grid("grid").DataSource((IEnumerable<object>)ViewBag.dataSource).Height("348px").AllowExcelExport().ToolbarClick("toolbarClick").ExcelExportComplete("excelExportComplete").Columns(col =>
2+
{
3+
col.Field("OrderID").HeaderText("Order ID").Width("120").IsPrimaryKey(true).TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add();
4+
col.Field("CustomerID").HeaderText("Customer ID").Width("150").Visible(false).Add();
5+
col.HeaderText("Order Details").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Center).Columns(orderCol =>
6+
{
7+
orderCol.Field("OrderDate").HeaderText("Order Date").Width("130").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Format("yMd").Add();
8+
orderCol.Field("Freight").HeaderText("Freight").Width("120").Format("C2").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add();
9+
}).Add();
10+
col.HeaderText("Ship Details").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Center).Columns(shipCol =>
11+
{
12+
shipCol.Field("ShippedDate").HeaderText("Shipped Date").Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Format("yMd").Add();
13+
shipCol.Field("ShipCountry").HeaderText("Ship Country").Width("120").Add();
14+
shipCol.Field("ShipName").HeaderText("Ship Name").Width("150").Visible(false).Add();
15+
}).Add();
16+
}).Toolbar(new List<string>() { "ExcelExport" }).Render()
17+
18+
<script>
19+
function toolbarClick(args) {
20+
var grid = document.getElementById("grid").ej2_instances[0];
21+
if (args.item.id === 'grid_excelexport') {
22+
grid.columns[2].columns[0].visible = false;
23+
grid.columns[3].columns[2].visible = true;
24+
grid.excelExport();
25+
}
26+
}
27+
28+
function excelExportComplete() {
29+
var grid = document.getElementById("grid").ej2_instances[0];
30+
grid.columns[2].columns[0].visible = true;
31+
grid.columns[3].columns[2].visible = false;
32+
}
33+
</script>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@page
2+
@model IndexModel
3+
@{
4+
ViewData["Title"] = "Home page";
5+
}
6+
7+
<ejs-grid id="grid" dataSource="@ViewBag.dataSource" allowExcelExport="true" height="348px" toolbarClick="toolbarClick" excelExportComplete="excelExportComplete" toolbar="@(new List<string>() { "ExcelExport" })">
8+
<e-grid-columns>
9+
<e-grid-column field="OrderID" headerText="Order ID" isPrimaryKey="true" textAlign="Right" width="120"></e-grid-column>
10+
<e-grid-column field="CustomerID" headerText="Customer ID" width="150" visible="false"></e-grid-column>
11+
<e-grid-column headerText="Order Details" textAlign="Center" columns="@( new List<Syncfusion.EJ2.Grids.GridColumn>() {
12+
new Syncfusion.EJ2.Grids.GridColumn { Field = "OrderDate", Width = "130", HeaderText = "Order Date", Format="yMd", TextAlign= Syncfusion.EJ2.Grids.TextAlign.Right },
13+
new Syncfusion.EJ2.Grids.GridColumn { Field = "Freight", Width = "120", HeaderText = "Freight", Format="C2", TextAlign= Syncfusion.EJ2.Grids.TextAlign.Right }
14+
})">
15+
</e-grid-column>
16+
<e-grid-column headerText="Ship Details" textAlign="Center" columns="@( new List<Syncfusion.EJ2.Grids.GridColumn>() {
17+
new Syncfusion.EJ2.Grids.GridColumn { Field = "ShippedDate", Width = "120", HeaderText = "Shipped Date", TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right, Format="yMd" },
18+
new Syncfusion.EJ2.Grids.GridColumn { Field = "ShipCountry", Width = "120", HeaderText = "Ship Country" },
19+
new Syncfusion.EJ2.Grids.GridColumn { Field = "ShipName", Width = "150", HeaderText = "Ship Name", Visible = false }
20+
})">
21+
</e-grid-column>
22+
</e-grid-columns>
23+
</ejs-grid>
24+
<script>
25+
function toolbarClick(args) {
26+
var grid = document.getElementById("grid").ej2_instances[0];
27+
if (args.item.id === 'grid_excelexport') {
28+
grid.columns[2].columns[0].visible = false;
29+
grid.columns[3].columns[2].visible = true;
30+
grid.excelExport();
31+
}
32+
}
33+
34+
function excelExportComplete() {
35+
var grid = document.getElementById("grid").ej2_instances[0];
36+
grid.columns[2].columns[0].visible = true;
37+
grid.columns[3].columns[2].visible = false;
38+
}
39+
</script>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public IActionResult Index()
2+
{
3+
ViewBag.dataSource = OrderDetails.GetAllRecords();
4+
return View();
5+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
@using Syncfusion.EJ2
2+
3+
@{
4+
var filterBarTemplate = new { create = "dropDownCreate", write = "dropDownWrite" };
5+
}
6+
@Html.EJS().Grid("Grid").DataSource((IEnumerable<object>)ViewBag.dataSource).AllowFiltering().Height("273px").Columns(col =>
7+
{
8+
col.Field("OrderID").HeaderText("Order ID").Width("100").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).IsPrimaryKey(true).Add();
9+
col.Field("CustomerID").HeaderText("Customer ID").Width("120").Add();
10+
col.Field("ShipCity").HeaderText("Ship City").Width("100").Add();
11+
col.Field("ShipName").HeaderText("Ship Name").Width("100").Add();
12+
col.Field("TypeText").HeaderText("File Type").Width("170").FilterBarTemplate(filterBarTemplate).Add();
13+
}).Render()
14+
15+
<script>
16+
var dropDown;
17+
var filterDropData = [
18+
{ Type: 'All' },
19+
{ Type: 'Base' },
20+
{ Type: 'Replace' },
21+
{ Type: 'Delta' }
22+
];
23+
24+
function dropDownCreate() {
25+
dropDown = document.createElement('select');
26+
dropDown.id = 'TypeFilter';
27+
filterDropData.forEach((item) => {
28+
var option = document.createElement('option');
29+
option.value = item.Type;
30+
option.innerText = item.Type;
31+
dropDown.appendChild(option);
32+
});
33+
return dropDown;
34+
}
35+
36+
function dropDownWrite() {
37+
var dropDownList = new ej.dropdowns.DropDownList({
38+
change: function (args) {
39+
var grid = document.getElementById("Grid").ej2_instances[0];
40+
if (args.value !== 'All') {
41+
grid.filterByColumn('TypeText', 'equal', args.value);
42+
} else {
43+
grid.removeFilteredColsByField('TypeText');
44+
}
45+
}
46+
});
47+
48+
dropDownList.appendTo('#TypeFilter');
49+
}
50+
</script>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
@page
2+
@model IndexModel
3+
@{
4+
ViewData["Title"] = "Home page";
5+
}
6+
@using Newtonsoft.Json;
7+
8+
@{
9+
var filterBarTemplate = new { create = "dropDownCreate", write = "dropDownWrite" };
10+
}
11+
12+
<ejs-grid id="grid" dataSource="@ViewBag.dataSource" allowFiltering="true" height="273px">
13+
<e-grid-columns>
14+
<e-grid-column field="OrderID" headerText="Order ID" textAlign="Right" width="100"></e-grid-column>
15+
<e-grid-column field="CustomerID" headerText="Customer Name" width="120"></e-grid-column>
16+
<e-grid-column field="ShipCity" headerText="Ship City" width="100"></e-grid-column>
17+
<e-grid-column field="ShipName" headerText="Ship Name" width="100"></e-grid-column>
18+
<e-grid-column field="TypeText" headerText="File Type" width="170" filterBarTemplate=filterBarTemplate></e-grid-column>
19+
</e-grid-columns>
20+
</ejs-grid>
21+
22+
<script>
23+
var dropDown;
24+
var filterDropData = [
25+
{ Type: 'All' },
26+
{ Type: 'Base' },
27+
{ Type: 'Replace' },
28+
{ Type: 'Delta' }
29+
];
30+
31+
function dropDownCreate() {
32+
dropDown = document.createElement('select');
33+
dropDown.id = 'TypeFilter';
34+
filterDropData.forEach((item) => {
35+
var option = document.createElement('option');
36+
option.value = item.Type;
37+
option.innerText = item.Type;
38+
dropDown.appendChild(option);
39+
});
40+
return dropDown;
41+
}
42+
43+
function dropDownWrite() {
44+
var dropDownList = new ej.dropdowns.DropDownList({
45+
change: function (args) {
46+
var grid = document.getElementById("grid").ej2_instances[0];
47+
if (args.value !== 'All') {
48+
grid.filterByColumn('TypeText', 'equal', args.value);
49+
} else {
50+
grid.removeFilteredColsByField('TypeText');
51+
}
52+
}
53+
});
54+
dropDownList.appendTo(dropDown);
55+
}
56+
</script>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public ActionResult Index()
2+
{
3+
ViewBag.dataSource = OrdersDetails.GetAllRecords();
4+
return View();
5+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
@Html.EJS().Grid("grid").DataSource((IEnumerable<object>)ViewBag.DataSource).Height("272px").AllowPdfExport(true).ToolbarClick("toolbarClick").PdfExportComplete("pdfExportComplete").Columns(col =>
2+
{
3+
col.Field("OrderID").HeaderText("Order ID").Width("120").IsPrimaryKey(true).TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add();
4+
col.Field("CustomerID").HeaderText("Customer ID").Width("150").Visible(false).Add();
5+
col.HeaderText("Order Details").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Center).Columns(orderCol =>
6+
{
7+
orderCol.Field("OrderDate").HeaderText("Order Date").Width("130").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Format("yMd").Add();
8+
orderCol.Field("Freight").HeaderText("Freight").Width("120").Format("C2").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add();
9+
}).Add();
10+
col.HeaderText("Ship Details").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Center).Columns(shipCol =>
11+
{
12+
shipCol.Field("ShippedDate").HeaderText("Shipped Date").Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Format("yMd").Add();
13+
shipCol.Field("ShipCountry").HeaderText("Ship Country").Width("120").Add();
14+
shipCol.Field("ShipName").HeaderText("Ship Name").Width("150").Visible(false).Add();
15+
}).Add();
16+
}).Toolbar(new List<string>() { "PdfExport" }).Render()
17+
18+
<script>
19+
function toolbarClick(args) {
20+
var grid = document.getElementById("grid").ej2_instances[0];
21+
if (args.item.id === 'grid_excelexport') {
22+
grid.columns[2].columns[0].visible = false;
23+
grid.columns[3].columns[2].visible = true;
24+
grid.pdfExport();
25+
}
26+
}
27+
function pdfExportComplete() {
28+
var grid = document.getElementById("grid").ej2_instances[0];
29+
grid.columns[2].columns[0].visible = true;
30+
grid.columns[3].columns[2].visible = false;
31+
}
32+
</script>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@page
2+
@model IndexModel
3+
@{
4+
ViewData["Title"] = "Home page";
5+
}
6+
7+
<ejs-grid id="grid" dataSource="@ViewBag.DataSource" allowPaging="true" allowPdfExport="true" toolbarClick="toolbarClick" pdfExportComplete="pdfExportComplete" height="272px" toolbar="@(new List<string>() {"PdfExport"})">
8+
<e-grid-columns>
9+
<e-grid-column field="OrderID" headerText="Order ID" isPrimaryKey="true" textAlign="Right" width="120"></e-grid-column>
10+
<e-grid-column field="CustomerID" headerText="Customer ID" width="150" visible="false"></e-grid-column>
11+
<e-grid-column headerText="Order Details" textAlign="Center" columns="@( new List<Syncfusion.EJ2.Grids.GridColumn>() {
12+
new Syncfusion.EJ2.Grids.GridColumn { Field = "OrderDate", Width = "130", HeaderText = "Order Date", Format="yMd", TextAlign= Syncfusion.EJ2.Grids.TextAlign.Right },
13+
new Syncfusion.EJ2.Grids.GridColumn { Field = "Freight", Width = "120", HeaderText = "Freight", Format="C2", TextAlign= Syncfusion.EJ2.Grids.TextAlign.Right }
14+
})">
15+
</e-grid-column>
16+
<e-grid-column headerText="Ship Details" textAlign="Center" columns="@( new List<Syncfusion.EJ2.Grids.GridColumn>() {
17+
new Syncfusion.EJ2.Grids.GridColumn { Field = "ShippedDate", Width = "120", HeaderText = "Shipped Date", TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right, Format="yMd" },
18+
new Syncfusion.EJ2.Grids.GridColumn { Field = "ShipCountry", Width = "120", HeaderText = "Ship Country" },
19+
new Syncfusion.EJ2.Grids.GridColumn { Field = "ShipName", Width = "150", HeaderText = "Ship Name", Visible = false }
20+
})">
21+
</e-grid-column>
22+
</e-grid-columns>
23+
</ejs-grid>
24+
25+
<script>
26+
function toolbarClick(args) {
27+
var grid = document.getElementById("grid").ej2_instances[0];
28+
if (args.item.id === 'grid_excelexport') {
29+
grid.columns[2].columns[0].visible = false;
30+
grid.columns[3].columns[2].visible = true;
31+
grid.pdfExport();
32+
}
33+
}
34+
function pdfExportComplete() {
35+
var grid = document.getElementById("grid").ej2_instances[0];
36+
grid.columns[2].columns[0].visible = true;
37+
grid.columns[3].columns[2].visible = false;
38+
}
39+
</script>

ej2-asp-core-mvc/grid/EJ2_ASP.MVC/excel-export/excel-export-options.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,33 @@ In the following example, the **CustomerID** is initially a hidden column in the
128128

129129
![Show or hide columns while exporting](../images/excel-exporting/exceloption-show.png)
130130

131+
## Show or hide columns while exporting with stacked header
132+
133+
The Syncfusion ASP.NET MVC Grid allows you to control the visibility of columns during export operations. This feature is particularly useful when customizing the data presented in exported files while using stacked headers.
134+
135+
To implement the show or hide columns feature during Excel export in the Syncfusion ASP.NET MVC Grid, follow these steps:
136+
137+
1. Handle the [ToolbarClick](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.Grid.html#Syncfusion_EJ2_Grids_Grid_ToolbarClick) event of the Syncfusion ASP.NET MVC Grid.
138+
139+
2. Update the visibility of the desired columns by setting the [Visible](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.GridColumn.html#Syncfusion_EJ2_Grids_GridColumn_Visible) property of the column to **true** or **false**.
140+
141+
3. Export the Syncfusion ASP.NET MVC Grid to Excel document using the `ExcelExport` or `CsvExport` method.
142+
143+
4. Handle the [ExcelExportComplete](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.Grid.html#Syncfusion_EJ2_Grids_Grid_ExcelExportComplete) event to restore the column visibility to its original state.
144+
145+
In the following example, the **ShipName** is initially a hidden column in the Syncfusion ASP.NET MVC Grid. However, during the Excel export process, the **ShipName** column is made visible, while the **OrderDate** column is hidden:
146+
147+
{% tabs %}
148+
{% highlight razor tabtitle="CSHTML" %}
149+
{% include code-snippet/grid/excel-export/excelexport-show-hide/razor %}
150+
{% endhighlight %}
151+
{% highlight c# tabtitle="excel-export.cs" %}
152+
{% include code-snippet/grid/excel-export/excelexport-show-hide/excel-export.cs %}
153+
{% endhighlight %}
154+
{% endtabs %}
155+
156+
![Show or hide columns while exporting with stacked header](../images/excel-exporting/exportoption-show-hide-stacked-header.png)
157+
131158
## Enable filtering in the exported excel file
132159

133160
The Grid allows you to export data to Excel or CSV with filter options and also export only filtered records. This feature is especially beneficial when you need to share data with others while preserving the ability for them to filter and analyze the data in Excel or CSV.

ej2-asp-core-mvc/grid/EJ2_ASP.MVC/filtering/filtering.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,37 @@ Consider the following sample where the `IgnoreAccent` property is set to true i
172172

173173
![Filtering](../images/filtering/filter-diacritics.png)
174174

175+
## Perform ENUM column filtering
176+
177+
The Syncfusion ASP.NET MVC Grid allows you to filter enum-type data using the [FilterBarTemplate](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.GridColumn.html#Syncfusion_EJ2_Grids_GridColumn_FilterBarTemplate) feature. This is particularly useful for filtering predefined values, such as categories or statuses.
178+
179+
To achieve this functionality:
180+
181+
1. Render [DropDownList](https://ej2.syncfusion.com/aspnetmvc/documentation/drop-down-list/getting-started) in the `FilterBarTemplate` for the enum-type column.
182+
183+
2. Bind the enumerated list data to the column.
184+
185+
3. Convert the `enum` values to a readable format using a computed column (e.g., TypeText) in the data model.
186+
```cs
187+
public FileType Type { get; set; }
188+
public string TypeText => Type.ToString();
189+
```
190+
191+
4. In the [Change](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.DropDowns.DropDownList.html#Syncfusion_EJ2_DropDowns_DropDownList_Change) event of the **DropDownList**, dynamically filter the column using the `FilterByColumn` method of the Syncfusion ASP.NET MVC Grid.
192+
193+
Below is an example demonstrating how to filter enum-type data in a Syncfusion ASP.NET MVC Grid:
194+
195+
{% tabs %}
196+
{% highlight razor tabtitle="CSHTML" %}
197+
{% include code-snippet/grid/filtering/enum-filtering/razor %}
198+
{% endhighlight %}
199+
{% highlight c# tabtitle="filter-bar.cs" %}
200+
{% include code-snippet/grid/filtering/enum-filtering/filter.cs %}
201+
{% endhighlight %}
202+
{% endtabs %}
203+
204+
![Filter bar](../images/filtering/enum-filtering.png)
205+
175206
## Filtering with case sensitivity
176207

177208
The Syncfusion<sup style="font-size:70%">&reg;</sup> ASP.NET MVC Grid provides the flexibility to enable or disable case sensitivity during filtering. This feature is useful when you want to control whether filtering operations should consider the case of characters. It can be achieved by using the [EnableCaseSensitivity](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.GridFilterSettings.html#Syncfusion_EJ2_Grids_GridFilterSettings_EnableCaseSensitivity) property within the [FilterSettings](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.Grid.html#Syncfusion_EJ2_Grids_Grid_FilterSettings) of the grid.

ej2-asp-core-mvc/grid/EJ2_ASP.MVC/pdf-export/pdf-export-options.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
layout: post
3-
title: PDF Export Options in ##Platform_Name## Grid Component
3+
title: PDF Export Options in ##Platform_Name## Syncfusion Grid Component
44
description: Learn here all about PDF Export Options in Syncfusion ##Platform_Name## Grid component of Syncfusion Essential JS 2 and more.
55
platform: ej2-asp-core-mvc
66
control: PDF Export Options
@@ -135,6 +135,33 @@ In the following example, the **CustomerID** is initially a hidden column in the
135135

136136
![Export Show Hide Records](../images/pdf-export/export-show-hide.png)
137137

138+
## Show or hide columns while exporting with stacked header
139+
140+
The Syncfusion ASP.NET MVC Grid allows you to control the visibility of columns during export operations. This feature is particularly useful when customizing the data presented in exported files while using stacked headers.
141+
142+
To implement the show or hide columns feature during PDF export in the Syncfusion ASP.NET MVC Grid, follow these steps:
143+
144+
1. Handle the [ToolbarClick](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.Grid.html#Syncfusion_EJ2_Grids_Grid_ToolbarClick) event of the Syncfusion ASP.NET MVC Grid.
145+
146+
2. Update the visibility of the desired columns by setting the [Visible](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.GridColumn.html#Syncfusion_EJ2_Grids_GridColumn_Visible) property of the column to **true** or **false**.
147+
148+
3. Export the Syncfusion ASP.NET MVC Grid to PDF document using `PdfExport` method.
149+
150+
4. Handle the [PdfExportComplete](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.Grid.html#Syncfusion_EJ2_Grids_Grid_PdfExportComplete) event to restore the column visibility to its original state.
151+
152+
In the following example, the **ShipName** is initially a hidden column in the Syncfusion ASP.NET MVC Grid. However, during the PDF export process, the **ShipName** column is made visible, while the **OrderDate** column is hidden:
153+
154+
{% tabs %}
155+
{% highlight cshtml tabtitle="CSHTML" %}
156+
{% include code-snippet/grid/pdf-export/pdfexport-show-hide/tagHelper %}
157+
{% endhighlight %}
158+
{% highlight c# tabtitle="pdf-export.cs" %}
159+
{% include code-snippet/grid/pdf-export/pdfexport-show-hide/pdf-export.cs %}
160+
{% endhighlight %}
161+
{% endtabs %}
162+
163+
![Show or hide columns while exporting with stacked header](../images/pdf-export/exportoption-show-hide-stacked-header.png)
164+
138165
## Change page orientation
139166

140167
The Syncfusion ASP.NET MVC Grid component allows you to change the page orientation of the exported PDF document from the default portrait mode to landscape mode. This feature provides the flexibility to adjust the layout and presentation of the exported PDF according to your needs.

0 commit comments

Comments
 (0)