用C#实现生成PDF文档(附源码)_文档//

write by wenhui.org

用C#实现生成PDF文档(附源码)_文档

using  System;

用C#实现生成PDF文档(附源码)_文档

using  System.IO;

用C#实现生成PDF文档(附源码)_文档

using  System.Text;

用C#实现生成PDF文档(附源码)_文档

using  System.Collections;

用C#实现生成PDF文档(附源码)_文档

namespace  PDFGenerator

用C#实现生成PDF文档(附源码)_stream_07用C#实现生成PDF文档(附源码)_c#_08

... {

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09public class PDFGenerator

用C#实现生成PDF文档(附源码)_文档_11用C#实现生成PDF文档(附源码)_文档_12...{

用C#实现生成PDF文档(附源码)_string_09static float pageWidth = 594.0f;

用C#实现生成PDF文档(附源码)_string_09static float pageDepth = 828.0f;

用C#实现生成PDF文档(附源码)_string_09static float pageMargin = 30.0f;

用C#实现生成PDF文档(附源码)_string_09static float fontSize = 20.0f;

用C#实现生成PDF文档(附源码)_string_09static float leadSize = 10.0f;

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09static StreamWriter pPDF=new StreamWriter("E:/myPDF.pdf");

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09static MemoryStream mPDF= new MemoryStream();

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09static void ConvertToByteAndAddtoStream(string strMsg)

用C#实现生成PDF文档(附源码)_文档_11用C#实现生成PDF文档(附源码)_文档_12...{

用C#实现生成PDF文档(附源码)_string_09    Byte[] buffer=null;

用C#实现生成PDF文档(附源码)_string_09    buffer=ASCIIEncoding.ASCII.GetBytes(strMsg);

用C#实现生成PDF文档(附源码)_string_09    mPDF.Write(buffer,0,buffer.Length); 

用C#实现生成PDF文档(附源码)_string_09    buffer=null;

用C#实现生成PDF文档(附源码)_string_30}

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09static string xRefFormatting(long xValue)

用C#实现生成PDF文档(附源码)_文档_11用C#实现生成PDF文档(附源码)_文档_12...{

用C#实现生成PDF文档(附源码)_string_09    string strMsg =xValue.ToString();

用C#实现生成PDF文档(附源码)_string_09    int iLen=strMsg.Length;

用C#实现生成PDF文档(附源码)_string_09    if (iLen<10)

用C#实现生成PDF文档(附源码)_文档_11用C#实现生成PDF文档(附源码)_文档_12    ...{

用C#实现生成PDF文档(附源码)_string_09        StringBuilder s=new StringBuilder();

用C#实现生成PDF文档(附源码)_string_09        int i=10-iLen;

用C#实现生成PDF文档(附源码)_string_09        s.Append('0',i);

用C#实现生成PDF文档(附源码)_string_09        strMsg=s.ToString() + strMsg;

用C#实现生成PDF文档(附源码)_string_30    }

用C#实现生成PDF文档(附源码)_string_09    return strMsg;

用C#实现生成PDF文档(附源码)_string_30}

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09static void Main(string[] args)

用C#实现生成PDF文档(附源码)_文档_11用C#实现生成PDF文档(附源码)_文档_12...{

用C#实现生成PDF文档(附源码)_string_09    ArrayList xRefs=new ArrayList();

用C#实现生成PDF文档(附源码)_string_09    //Byte[] buffer=null;

用C#实现生成PDF文档(附源码)_string_09    float yPos =0f;

用C#实现生成PDF文档(附源码)_string_09    long streamStart=0;

用C#实现生成PDF文档(附源码)_string_09    long streamEnd=0;

用C#实现生成PDF文档(附源码)_string_09    long streamLen =0;

用C#实现生成PDF文档(附源码)_string_09    string strPDFMessage=null;

用C#实现生成PDF文档(附源码)_string_09    //PDF文档头信息

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="%PDF-1.1 ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    xRefs.Add(mPDF.Length);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="1 0 obj ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="<< /Length 2 0 R >> ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="stream ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_文档_11用C#实现生成PDF文档(附源码)_文档_12    /**/////PDF文档描述

用C#实现生成PDF文档(附源码)_string_09    streamStart=mPDF.Length;

用C#实现生成PDF文档(附源码)_string_09    //字体

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="BT /F0 " + fontSize +" Tf ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    //PDF文档实体高度

用C#实现生成PDF文档(附源码)_string_09    yPos = pageDepth - pageMargin;

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage=pageMargin + " " + yPos +" Td " ;

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage= leadSize+" TL " ;

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    //实体内容

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage= "(http://www.wenhui.org)Tj " ;

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage= "ET ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    streamEnd=mPDF.Length;

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    streamLen=streamEnd-streamStart;

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage= "endstream endobj ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    //PDF文档的版本信息

用C#实现生成PDF文档(附源码)_string_09    xRefs.Add(mPDF.Length);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="2 0 obj "+ streamLen + " endobj ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    xRefs.Add(mPDF.Length);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="3 0 obj <</Type/Page/Parent 4 0 R/Contents 1 0 R>> endobj ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    xRefs.Add(mPDF.Length);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="4 0 obj <</Type /Pages /Count 1 ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="/Kids[ 3 0 R ] ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="/Resources<</ProcSet[/PDF/Text]/Font<</F0 5 0 R>> >> ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ] >> endobj ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    xRefs.Add(mPDF.Length);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="5 0 obj <</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>> endobj ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    xRefs.Add(mPDF.Length);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="6 0 obj <</Type/Catalog/Pages 4 0 R>> endobj ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    streamStart=mPDF.Length;

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="xref 0 7 0000000000 65535 f  ";

用C#实现生成PDF文档(附源码)_string_09    for(int i=0;i<xRefs.Count;i++)

用C#实现生成PDF文档(附源码)_文档_11用C#实现生成PDF文档(附源码)_文档_12    ...{

用C#实现生成PDF文档(附源码)_string_09        strPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n  ";

用C#实现生成PDF文档(附源码)_string_30    }

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="trailer << /Size "+ (xRefs.Count+1)+" /Root 6 0 R >> ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    strPDFMessage="startxref " + streamStart+" %%EOF ";

用C#实现生成PDF文档(附源码)_string_09    ConvertToByteAndAddtoStream(strPDFMessage);

用C#实现生成PDF文档(附源码)_string_09    mPDF.WriteTo(pPDF.BaseStream);

用C#实现生成PDF文档(附源码)_string_09

用C#实现生成PDF文档(附源码)_string_09    mPDF.Close();

用C#实现生成PDF文档(附源码)_string_09    pPDF.Close();

用C#实现生成PDF文档(附源码)_string_30}

用C#实现生成PDF文档(附源码)_string_30}

用C#实现生成PDF文档(附源码)_文档_138}