C#生成PDF,包括有文字、表格、图片

calen 2009-06-20 08:09:42
加精
C#生成PDF,包括有文字、表格、图片

网络上可以搜索到的那个代码恐怕只能生成文本和少量格式的PDF,不适用

...全文
15792 171 打赏 收藏 转发到动态 举报
写回复
用AI写文章
171 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenxue8612 2012-09-10
  • 打赏
  • 举报
回复
mark, 学习了,收藏!
zfh_net 2012-09-05
  • 打赏
  • 举报
回复
Cell myCell = new Cell(new Phrase(lvi.Columns[columNum].Text, font));
我找的就是这句代码, 太感谢你了。
呆呆菜 2011-10-09
  • 打赏
  • 举报
回复
如何获取PDF的ROT对象,就像Office那样。
T-Share 2011-09-09
  • 打赏
  • 举报
回复
这个要收藏
BurgessLi 2011-09-09
  • 打赏
  • 举报
回复
好东西,收藏了
williamxia8 2011-09-09
  • 打赏
  • 举报
回复
都是转帖牛人,不懂脑子考虑的
feng9330 2011-08-04
  • 打赏
  • 举报
回复
mark
bambox 2011-07-29
  • 打赏
  • 举报
回复
用第三方的类,没多大意义.
BurgessLi 2011-06-09
  • 打赏
  • 举报
回复
好东西,值得收藏,顶
tyg111 2011-05-27
  • 打赏
  • 举报
回复
收藏下
mail_ricklee 2011-01-21
  • 打赏
  • 举报
回复
Aspose.PDF
xiaobukuai 2011-01-21
  • 打赏
  • 举报
回复
有没有生成microsoft word的啊?
fgc5201314 2011-01-20
  • 打赏
  • 举报
回复
直接用.net的RDLC report 就可以啦,to PDF效果很好,也可以对付用户有变数,可以to 其他格式.
nlx0201 2011-01-20
  • 打赏
  • 举报
回复
呵呵,我的博客里面有详细的介绍!
mlhy20060406 2011-01-19
  • 打赏
  • 举报
回复
收藏了,好资料
lijianli9 2011-01-19
  • 打赏
  • 举报
回复
谢谢哦。
skyaspnet 2011-01-19
  • 打赏
  • 举报
回复
C#生成PDF

在C#中生成PDF文件的方法挺多,可以使用iTextSharp控件,还有aspose的控件也可以。这些控件的功能都很强大,所以控件的大小也会很大。
在我看来只要能够生成很简单的PDF就可以了,只单纯是有文字的。然后就找到了PDF Library这个类库,确实够小,也只能生成有表格和文字的PDF。基本上就够用了,只是这个不支持中文。不过有源码,或许可以改下。
使用这个类库创建PDF文档可分为三步,先写标题,然后创建页,在页里添加文字和表格,完成。
看似很简单,实现这几步的代码一大堆。codeproject上有例子,我就不贴出来了。

类库地址:http://www.codeproject.com/KB/dotnet/PdfLibrary.aspx
skyaspnet 2011-01-19
  • 打赏
  • 举报
回复
lgz_asp_net 2011-01-19
  • 打赏
  • 举报
回复
加载更多回复(135)
C#实现生成PDF文档(附源码) 收藏 //write by wenhui.org using System; using System.IO; using System.Text; using System.Collections; namespace PDFGenerator { public class PDFGenerator { static float pageWidth = 594.0f; static float pageDepth = 828.0f; static float pageMargin = 30.0f; static float fontSize = 20.0f; static float leadSize = 10.0f; static StreamWriter pPDF=new StreamWriter("E:\myPDF.pdf"); static MemoryStream mPDF= new MemoryStream(); static void ConvertToByteAndAddtoStream(string strMsg) { Byte[] buffer=null; buffer=ASCIIEncoding.ASCII.GetBytes(strMsg); mPDF.Write(buffer,0,buffer.Length); buffer=null; } static string xRefFormatting(long xValue) { string strMsg =xValue.ToString(); int iLen=strMsg.Length; if (iLen<10) { StringBuilder s=new StringBuilder(); int i=10-iLen; s.Append('0',i); strMsg=s.ToString() + strMsg; } return strMsg; } static void Main(string[] args) { ArrayList xRefs=new ArrayList(); //Byte[] buffer=null; float yPos =0f; long streamStart=0; long streamEnd=0; long streamLen =0; string strPDFMessage=null; //PDF文档头信息 strPDFMessage="%PDF-1.1 "; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage="1 0 obj "; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage="<> "; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage="stream "; ConvertToByteAndAddtoStream(strPDFMessage); ////////PDF文档描述 streamStart=mPDF.Length; //字体 strPDFMessage="BT /F0 " + fontSize +" Tf "; ConvertToByteAndAddtoStream(strPDFMessage); //PDF文档实体高度 yPos = pageDepth - pageMargin; strPDFMessage=pageMargin + " " + yPos +" Td " ; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage= leadSize+" TL " ; ConvertToByteAndAddtoStream(strPDFMessage); //实体内容 strPDFMessage= "(http://www.wenhui.org)Tj " ; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage= "ET "; ConvertToByteAndAddtoStream(strPDFMessage); streamEnd=mPDF.Length; streamLen=streamEnd-streamStart; strPDFMessage= "endstream endobj "; ConvertToByteAndAddtoStream(strPDFMessage); //PDF文档的版本信息 xRefs.Add(mPDF.Length); strPDFMessage="2 0 obj "+ streamLen + " endobj "; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage="3 0 obj <> endobj "; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage="4 0 obj <PDFMessage); strPDFMessage="/Kids[ 3 0 R ] "; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage="/Resources<PDF/Text]/Font<> >> "; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ] >> endobj "; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage="5 0 obj <> endobj "; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage="6 0 obj <> endobj "; ConvertToByteAndAddtoStream(strPDFMessage); streamStart=mPDF.Length; strPDFMessage="xref 0 7 0000000000 65535 f "; for(int i=0;iPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n "; } ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage="trailer <> "; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage="startxref " + streamStart+" %%EOF "; ConvertToByteAndAddtoStream(strPDFMessage); mPDF.WriteTo(pPDF.BaseStream); mPDF.Close(); pPDF.Close(); } } }
asp.net生成PDF详解 asp.net生成PDF PDF详解 用C#制作PDF文件全攻略 丽水市汽车运输集团有限公司信息中心 苟安廷 目 录 前 言 3 第一部分 iText的简单应用 4 第一章 创建一个Document 4 第一步 创建一个Document实例: 5 第二步 创建Writer实例 6 第三步 打开Document 6 第四步 添加内容 10 第五步,关闭 document 11 第二章 块、短句和段落 11 块 11 短句 12 段落 12 字体的延续 13 第三章 锚点、列表和注释 14 锚点 14 列表 14 注释 15 第四章 页眉页脚、章节、区域和绘图对象 16 页眉页脚 16 章节和区域 17 图形 17 第五章 表格 18 一些简单的表格 18 一些表格参数 18 大表格 20 内存管理 20 嵌套表格 21 表格偏移 21 表格的绝对位置 21 第六章 图片 21 Image对象 21 图片的位置 22 缩放和旋转图片 23 原始图片数据 23 System.Drawing.Bitmap 23 TIFF和CCITT 24 图片和其他对象 24 第二部分 其他文档格式 25 第七章 XML和 (X)HTML 25 第八章 RTF文件 25 RTF包 25 创建一个RTF文档 25 不支持的特性 26 RTF中扩展的页眉和页脚 26 第三部分 iText的高级应用 27 第九章 字体 27 TrueType字体应用 27 TruType字体集合的应用 28 第十章 图象和文本的绝对位置 28 pdfContentByte 28 简单图形 29 文本 29 模板(Form xObjects) 30 分栏 31 PdfTable 32 颜色(SpotColors)和图案(Patterns) 33 第十一章 本地和异地转向、目标和概要 33 本地转向 33 异地转向 33 第十二章 页面和表格事件 34

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧