用C#实现生成PDF文档(原码)
点击次数:57 次 发布日期:2008-11-06 08:08:08 作者:源代码网
|
源代码网推荐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="<< /Length 2 0 R >> "; 源代码网推荐ConvertToByteAndAddtoStream(strPDFMessage); 源代码网推荐strPDFMessage="stream "; 源代码网推荐ConvertToByteAndAddtoStream(strPDFMessage); 源代码网推荐////////PDF文档描述 源代码网推荐streamStart=mPDF.Length; 源代码网推荐//字体 源代码网推荐strPDFMessage="BT /F0 " fontSize " Tf "; 源代码网推荐ConvertToByteAndAddtoStream(strPDFMessage); 源代码网推荐//PDF文档实体高度 源代码网推荐yPos = pageDepth - pageMargin; 软件开发网 www.mscto.com 源代码网推荐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 <</Type/Page/Parent 4 0 R/Contents 1 0 R>> endobj "; 源代码网推荐ConvertToByteAndAddtoStream(strPDFMessage); 源代码网推荐 源代码网供稿. |
