Hi,
i am trying to export multiple radgrid and radhtmlchart to multiple pdf pages. i am able to export but content on aspx page is very big on pdf file. the contents are getting cut and only left most part is partially printed. how can i make contents in my webform (aspx) get printed as is to pdf with same size.
page break is working fine, but the content is getting exported so big that only left more content is printed little.
i have followed the below links but no use:
https://docs.telerik.com/devtools/aspnet-ajax/controls/clientexportmanager/functionality/export-html-elements
https://docs.telerik.com/devtools/aspnet-ajax/controls/clientexportmanager/functionality/pdf-multi-page-export
10 Answers, 1 is accepted
The ClientExportManager is based on the Kendo Drawing API library and both do support inches and mm values as explained in Configuration.
Regardless of the selected metric type the rendered content in the PDF will be a bit bigger. You can test for example this demo - Export Whole Pages and see the differences in this screenshot.
Since the exported text and shapes will be always bigger in the PDF, you may want to use the .k-pdf-export class which is applied only to the exported content and apply a bit smaller fonts than the ones applied in the HTML/aspx page. For more details check this page: Change the Exported Content before Export.
The ClientExportManager uses typographic points unit. The size of the content in pixels matches the size of the output in points (1 pixel = 1/72 inch). This is explained in the PDF Options article -> paperSize setting.
This article could be also helpful Dimensions and CSS Units.
Regards,
Rumen
Progress Telerik

.k-pdf-export is helpful but making two divs side by side. show radgrid in 1st div and radhtmlchart in 2nd div is very difficult
it is not simple and straight. can anyone help me with some code to implement above mentioned requirement.
Regards,
Rumen
Progress Telerik

Please find an example of how to export two divs placed one by one with a chart and a grid inside them in two subsequent pdf pages:
ASPX:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
>Untitled Page</
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
asp:ScriptManager
runat
=
"server"
/>
<
telerik:RadClientExportManager
runat
=
"server"
ID
=
"RadClientExportManager1"
>
<
PdfSettings
PageBreakSelector
=
".pageBreak"
MarginRight
=
"10mm"
PaperSize
=
"A4"
Landscape
=
"true"
/>
</
telerik:RadClientExportManager
>
<
telerik:RadButton
RenderMode
=
"Lightweight"
ID
=
"RadButton1"
runat
=
"server"
OnClientClicked
=
"exportAllPanelItems"
Text
=
"Export Items"
AutoPostBack
=
"false"
UseSubmitBehavior
=
"false"
></
telerik:RadButton
>
<
script
>
function exportAllPanelItems() {
var cem = $find("<%=RadClientExportManager1.ClientID%>");
cem.exportPDF($telerik.$(".panel-container"));
}
</
script
>
<
div
id
=
"row1"
class
=
"panel-container"
>
<
div
id
=
"column1"
>
I am column one
<
br
/>
<
telerik:RadHtmlChart
runat
=
"server"
ID
=
"LineChart"
Width
=
"800"
Height
=
"500"
Transitions
=
"true"
>
<
PlotArea
>
<
Series
>
<
telerik:LineSeries
Name
=
"Week 15"
MissingValues
=
"Interpolate"
>
<
Appearance
>
<
FillStyle
BackgroundColor
=
"Blue"
/>
</
Appearance
>
<
LabelsAppearance
DataFormatString
=
"{0}%"
Position
=
"Above"
/>
<
MarkersAppearance
MarkersType
=
"Square"
BackgroundColor
=
"Blue"
/>
<
SeriesItems
>
<
telerik:CategorySeriesItem
Y
=
"15"
/>
<
telerik:CategorySeriesItem
Y
=
"23"
/>
<
telerik:CategorySeriesItem
/>
<
telerik:CategorySeriesItem
Y
=
"71"
/>
<
telerik:CategorySeriesItem
Y
=
"93"
/>
<
telerik:CategorySeriesItem
Y
=
"43"
/>
<
telerik:CategorySeriesItem
Y
=
"23"
/>
</
SeriesItems
>
</
telerik:LineSeries
>
<
telerik:LineSeries
Name
=
"Week 16"
MissingValues
=
"Gap"
>
<
Appearance
>
<
FillStyle
BackgroundColor
=
"Red"
/>
</
Appearance
>
<
LabelsAppearance
DataFormatString
=
"{0}%"
Position
=
"Above"
/>
<
MarkersAppearance
MarkersType
=
"Square"
BackgroundColor
=
"Red"
/>
<
SeriesItems
>
<
telerik:CategorySeriesItem
Y
=
"35"
/>
<
telerik:CategorySeriesItem
Y
=
"42"
/>
<
telerik:CategorySeriesItem
Y
=
"18"
/>
<
telerik:CategorySeriesItem
Y
=
"39"
/>
<
telerik:CategorySeriesItem
Y
=
"64"
/>
<
telerik:CategorySeriesItem
Y
=
"10"
/>
<
telerik:CategorySeriesItem
Y
=
"6"
/>
</
SeriesItems
>
</
telerik:LineSeries
>
</
Series
>
<
XAxis
MajorTickType
=
"Outside"
MinorTickType
=
"Outside"
>
<
Items
>
<
telerik:AxisItem
LabelText
=
"Monday"
/>
<
telerik:AxisItem
LabelText
=
"Tuesday"
/>
<
telerik:AxisItem
LabelText
=
"Wednesday"
/>
<
telerik:AxisItem
LabelText
=
"Thursday"
/>
<
telerik:AxisItem
LabelText
=
"Friday"
/>
<
telerik:AxisItem
LabelText
=
"Saturday"
/>
<
telerik:AxisItem
LabelText
=
"Sunday"
/>
</
Items
>
<
MajorGridLines
Color
=
"#EFEFEF"
Width
=
"1"
/>
<
MinorGridLines
Color
=
"#F7F7F7"
Width
=
"1"
/>
<
TitleAppearance
Position
=
"Center"
RotationAngle
=
"0"
Text
=
"Days"
/>
</
XAxis
>
<
YAxis
MajorTickSize
=
"1"
MajorTickType
=
"Outside"
MaxValue
=
"100"
MinorTickSize
=
"1"
MinorTickType
=
"Outside"
MinValue
=
"0"
>
<
LabelsAppearance
DataFormatString
=
"{0}%"
RotationAngle
=
"0"
/>
<
MajorGridLines
Color
=
"#EFEFEF"
Width
=
"1"
/>
<
MinorGridLines
Color
=
"#F7F7F7"
Width
=
"1"
/>
<
TitleAppearance
Position
=
"Center"
RotationAngle
=
"0"
Text
=
"CPU Load"
/>
</
YAxis
>
</
PlotArea
>
<
ChartTitle
Text
=
"Server CPU Load By Days"
>
</
ChartTitle
>
<
Legend
>
<
Appearance
Position
=
"Bottom"
/>
</
Legend
>
</
telerik:RadHtmlChart
>
</
div
>
<
div
id
=
"column2"
class
=
"pageBreak"
>I am column two <
br
/>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowPaging
=
"True"
Width
=
"800px"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
>
<
MasterTableView
AutoGenerateColumns
=
"False"
DataKeyNames
=
"OrderID"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"OrderID"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter OrderID column"
HeaderText
=
"OrderID"
ReadOnly
=
"True"
SortExpression
=
"OrderID"
UniqueName
=
"OrderID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"OrderDate"
DataType
=
"System.DateTime"
FilterControlAltText
=
"Filter OrderDate column"
HeaderText
=
"OrderDate"
SortExpression
=
"OrderDate"
UniqueName
=
"OrderDate"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridNumericColumn
DataField
=
"Freight"
DataType
=
"System.Decimal"
FilterControlAltText
=
"Filter Freight column"
HeaderText
=
"Freight"
SortExpression
=
"Freight"
UniqueName
=
"Freight"
>
</
telerik:GridNumericColumn
>
<
telerik:GridBoundColumn
DataField
=
"ShipName"
FilterControlAltText
=
"Filter ShipName column"
HeaderText
=
"ShipName"
SortExpression
=
"ShipName"
UniqueName
=
"ShipName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ShipCountry"
FilterControlAltText
=
"Filter ShipCountry column"
HeaderText
=
"ShipCountry"
SortExpression
=
"ShipCountry"
UniqueName
=
"ShipCountry"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
div
>
<
style
>
#row1 {
display: flex;
flex-direction: row;
justify-content: space-around;
}
#column1 {
display: flex;
flex-direction: column;
}
#column2 {
display: flex;
flex-direction: column;
}
</
style
>
</
form
>
</
body
>
</
html
>
Codebehind
using
System;
using
System.Collections.Generic;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
public
partial
class
Default2 : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrdersTable();
}
private
DataTable OrdersTable()
{
DataTable dt =
new
DataTable();
dt.Columns.Add(
new
DataColumn(
"OrderID"
,
typeof
(
int
)));
dt.Columns.Add(
new
DataColumn(
"OrderDate"
,
typeof
(DateTime)));
dt.Columns.Add(
new
DataColumn(
"Freight"
,
typeof
(
decimal
)));
dt.Columns.Add(
new
DataColumn(
"ShipName"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"ShipCountry"
,
typeof
(
string
)));
dt.PrimaryKey =
new
DataColumn[] { dt.Columns[
"OrderID"
] };
for
(
int
i = 0; i < 70; i++)
{
int
index = i + 1;
DataRow row = dt.NewRow();
row[
"OrderID"
] = index;
row[
"OrderDate"
] =
new
DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0).AddHours(index);
row[
"Freight"
] = index * 0.1 + index * 0.01;
row[
"ShipName"
] =
"Name "
+ index;
row[
"ShipCountry"
] =
"Country "
+ index;
dt.Rows.Add(row);
}
return
dt;
}
}
Regards,
Rumen
Progress Telerik


Dear Rumen,
thank you, very nice example.
1. from here the problem starts. can't show simple chart / table covering entire page to manager. I want both both line chart and radgrid in singe sheet of pdf. and values in radtable should not overlap, width of each column should properly display values in radgrid. I am using k-pdf-export to set the width of column in radgrid which radgrid is not accepting.
2. my radgrid data is has many rows. table is not continuing to next page. radgrid is print partically in only one sheet


printing 10 rows from radgrid works fine, try printing all 70 rows or 200 rows to pdf and see. complete grid is not printed at all.
If the problem happens in Chrome than it could be due to the size of the markup.
Try registering the pako.js library on the page:
Pako.js is a third party javascript library which you can import in the head tag of the aspx/masterpage page:
<!-- Load Pako ZLIB library to enable PDF compression -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/pako/1.0.5/pako_deflate.min.js"></script>
Regards,
Rumen
Progress Telerik