使用 Syncfusion组件 导出pdf文档
来源:互联网 发布:余额宝2017知乎 编辑:程序博客网 时间:2024/05/21 10:21
使用 Syncfusion组件
using
using
using
using
using
public
{
//PdfLoadedDocumentLinkAnnotation
string strResult = string.Empty;
//pdf document
PdfDocument pdfDoc = default(PdfDocument); pdfDoc =
//Add PDF Document Settings
//set margin
pdfDoc.PageSettings.SetMargins(leftMargin, topMargin,rightMargin, bottomMargin);
//set page orientation
pdfDoc.PageSettings.Orientation =
//set rotation
pdfDoc.PageSettings.Rotate =
//set width
PdfUnitConvertor convertor = new PdfUnitConvertor();
//set width
float width = convertor.ConvertToPixels(
pdfDoc.PageSettings.Width - leftMargin - rightMargin,
PdfGraphicsUnit.Point);
//set height
float
height = convertor.ConvertToPixels(
pdfDoc.PageSettings.Height,
PdfGraphicsUnit.Point);
//set page height
int pageHeight = Convert
.ToInt32( convertor.ConvertToPixels(pdfDoc.PageSettings.Height - 80,
PdfGraphicsUnit
.Point));
//set footer height
float
footerHeight = 26;
//html converter
HtmlConverter html = null;
//set footer char and page number
AddFooterBegin(
ref pdfDoc,
pdfDoc.PageSettings.Width,
footerHeight);
//html to pdf result
HtmlToPdfResult result = null;
//render html
for (int
i = 0; i < arrURL.Count; i++)
{
html =
new HtmlConverter
();
//setting Javascript
html.EnableJavaScript =
//setting pagebreak
html.AutoDetectPageBreak =
//setting hyperlink
html.EnableHyperlinks =
//get html result
result = html.Convert
(arrURL[i],
ImageType.Metafile,
Convert.ToInt32(width), -1, AspectRatio.KeepWidth);
//Add a page
PdfPage
newpage = pdfDoc.Pages.Add();
PdfMetafileLayoutFormat pdfLFormat=new PdfMetafileLayoutFormat(); pdfLFormat.Break= pdfLFormat.Layout= pdfLFormat.PaginateBounds =
(0, 0, width, pageHeight); pdfLFormat.SplitImages = pdfLFormat.SplitTextLines =
////Image img = result.RenderedImage;
////img.Save("a"+i+".jpg");
result.Render(newpage, pdfLFormat);
}
//set footer char and page number
AddFooterEnd(
pdfDoc.PageSettings.Width,footerHeight);
//if filename is empty ,set name
if (string.IsNullOrEmpty(FileName)) FileName =
//save pdf
if(OpenInBrowser) HttpReadType.Open);
{
pdfDoc.Save(FileName, Context.Response,
}
else
{
pdfDoc.Save(FileName, Context.Response,
HttpReadType.Save);
}
//close pdf
pdfDoc.Close(
}
///
/// </summary>
private void AddFooterBegin(ref PdfDocument doc,float width,float height)
{
// Setting the footer layout size according to the size of the text
RectangleF rect = new RectangleF
(0, 0, width, height);
//Create a page template
PdfPageTemplateElement footer = new PdfPageTemplateElement
(rect);
doc.Template.Bottom = footer;
}
/// <summary> ///Drawing Footer and draw page number
/// </summary>///
<param name="doc"></param>
///
<param name="footerText"></param>
///
<param name="bFooter"></param>
///
<param name="bPageNumber"></param>
private void AddFooterEnd(ref PdfDocument
doc, string footerText, bool bFooter, bool
bPageNumber,
float width,floatheight)
{
if ((bFooter == false && bPageNumber == false) || (bPageNumber ==
.Empty))
{
return; }
//footer char font
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 8, PdfFontStyle.Regular);
//footer char brush
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
// Measuring footer char String
SizeF size;
if (footerText != string
.Empty)
else
new SizeF (width, height);
{size =
}
// Setting the footer layout size according to the size of the text
RectangleF rect = new RectangleF (0, 0, width, height);
//Create a page template
PdfPageTemplateElement footer = new PdfPageTemplateElement(rect);
//draw footer char
if (bFooter == true)
{
PdfStringFormat format = new PdfStringFormat(); format.Alignment = format.LineAlignment = footer.Graphics.DrawString(footerText, font, brush,
}
//draw page numbe
if (bPageNumber == true
&& doc.Pages.Count>0)
{
//page number
PdfFont fontPagenumber = new PdfStandardFont(PdfFontFamily.Helvetica, 10, PdfFontStyle.Bold);
PdfSolidBrush brushPagenumber = new PdfSolidBrush(Color
.Blue);
//Create page number field
PdfPageNumberField pageNumber = new PdfPageNumberField (fontPagenumber, brushPagenumber);
//Create page count field
PdfPageCountField count = new PdfPageCountField
(fontPagenumber, brushPagenumber);
PdfCompositeField compositeField = new PdfCompositeField
(fontPagenumber, brushPagenumber,
"Page {0} of {1}"
, pageNumber, count);
compositeField.Bounds = footer.Bounds;
compositeField.Draw(footer.Graphics,
new PointF(doc.Pages[0].GetClientSize().Width - 100, 10));
}
//Add the footer template at the bottom
doc.Template.Bottom = footer;
}
{
size = font.MeasureString(footerText);
}
pdfDoc.DocumentInformation.Title = DocumentTitle;
pdfDoc.DocumentInformation.Author = DocumentAuthor;
pdfDoc.DocumentInformation.Keywords = DocumentKeywords;
- 使用 Syncfusion组件 导出pdf文档
- ThinkPHP使用Tcpdf导出pdf文档
- Java导出PDF文档使用iText操作
- 使用免费组件view pdf 文档
- java导出pdf文档
- 使用PDFlib在PHP网页导出中文pdf文档
- 导出DataGridView为PDF文档
- java 实现导出pdf文档
- java导入导出pdf文档实践
- C# 导出数据到PDF文档
- C#中导出PDF格式文档
- Java和iText导出pdf文档
- Unity 利用itextSharp导出pdf文档
- java导入导出pdf文档实践
- Syncfusion.OlapSilverlight.Data.CellSet 序列化导出到XML
- 使用第三方组件NPOI和iTextSharp根据DataTable导出Excel、Word、Pdf
- 使用jfreechart和itext实现导出报表和表格到pdf文档
- 使用itext创建PDF文档-导出大表格-每页显示标题-项目实战
- HttpClient超时设置
- Linux 错误类型
- Oracle如何在有视图的SQL中使用hint(提示)来设置视图内的
- Java 字符串,byte[],16进制的字符串互转 收藏
- 线程学习1——异步委托
- 使用 Syncfusion组件 导出pdf文档
- Oracle 替换字符串
- 利用Gmail、Hotmail和Yahoo等网页邮件的攻击目标
- (转)__FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程)
- wince 常用 控制
- JTable用法(转自http://edu.gamfe.com/tutor/d/8115.html)
- [CSS]收藏
- 什么是 Virtual Machine Additions(虚拟机附加安装模块)
- Inside the C++ Object Model 学习笔记 第五章构造 解构 拷贝语意学