亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用C#實現生成PDF文檔(附源碼)

2019-11-18 19:26:13
字體:
來源:轉載
供稿:網友

//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/n";
    ConvertToByteAndAddtoStream(strPDFMessage);

    xRefs.Add(mPDF.Length);
    strPDFMessage="1 0 obj/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage="<< /Length 2 0 R >>/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage="stream/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    ////////PDF文檔描述
    streamStart=mPDF.Length;
    //字體
    strPDFMessage="BT/n/F0 " + fontSize +" Tf/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    //PDF文檔實體高度
    yPos = pageDepth - pageMargin;
    strPDFMessage=pageMargin + " " + yPos +" Td/n" ;
    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage= leadSize+" TL/n" ;
    ConvertToByteAndAddtoStream(strPDFMessage);

    //實體內容
    strPDFMessage= "(    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage= "ET/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    streamEnd=mPDF.Length;

    streamLen=streamEnd-streamStart;
    strPDFMessage= "endstream/nendobj/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    //PDF文檔的版本信息
    xRefs.Add(mPDF.Length);
    strPDFMessage="2 0 obj/n"+ streamLen + "/nendobj/n";
    ConvertToByteAndAddtoStream(strPDFMessage);

    xRefs.Add(mPDF.Length);
    strPDFMessage="3 0 obj/n<</Type/Page/Parent 4 0 R/Contents 1 0 R>>/nendobj/n";
    ConvertToByteAndAddtoStream(strPDFMessage);

    xRefs.Add(mPDF.Length);
    strPDFMessage="4 0 obj/n<</Type /Pages /Count 1/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage="/Kids[/n3 0 R/n]/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage="/Resources<</
PRocSet[/PDF/Text]/Font<</F0 5 0 R>> >>/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ]/n>>/nendobj/n";
    ConvertToByteAndAddtoStream(strPDFMessage);

    xRefs.Add(mPDF.Length);
    strPDFMessage="5 0 obj/n<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>/nendobj/n";
    ConvertToByteAndAddtoStream(strPDFMessage);

    xRefs.Add(mPDF.Length);
    strPDFMessage="6 0 obj/n<</Type/Catalog/Pages 4 0 R>>/nendobj/n";
    ConvertToByteAndAddtoStream(strPDFMessage);

    streamStart=mPDF.Length;
    strPDFMessage="xref/n0 7/n0000000000 65535 f /n";
    for(int i=0;i<xRefs.Count;i++)
    {
        strPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n /n";
    }
    ConvertToByteAndAddtoStream(strPDFMessage);
    strPDFMessage="trailer/n<</n/Size "+ (xRefs.Count+1)+"/n/Root 6 0 R/n>>/n";
    ConvertToByteAndAddtoStream(strPDFMessage);

    strPDFMessage="startxref/n" + streamStart+"/n%%EOF/n";
    ConvertToByteAndAddtoStream(strPDFMessage);
    mPDF.WriteTo(pPDF.BaseStream);

    mPDF.Close();
    pPDF.Close();
}
}
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品丝袜白浆摸在线| 久久精品国产亚洲精品2020| 欧美在线观看一区二区三区| 久久国内精品一国内精品| 亚洲国产天堂网精品网站| 日韩毛片在线看| 国产美女高潮久久白浆| 精品av在线播放| 日韩欧美国产视频| 久久夜精品香蕉| 国产精品第1页| 狠狠躁夜夜躁久久躁别揉| 亚洲国产欧美一区二区三区久久| 97国产真实伦对白精彩视频8| 亚洲国产精品久久精品怡红院| 一本色道久久88亚洲综合88| 国产色婷婷国产综合在线理论片a| 欧美日韩国产影院| 色偷偷88888欧美精品久久久| 日韩欧美在线免费观看| 精品久久久久久久久中文字幕| 欧美日韩第一视频| 久久久久久久久久久亚洲| 国产日韩欧美在线看| 欧美性生交xxxxxdddd| 久久久久久久国产精品| 亚洲日本aⅴ片在线观看香蕉| 91精品视频在线看| 国产精品私拍pans大尺度在线| 欧美视频在线免费| 色综合天天狠天天透天天伊人| 亚洲精品福利免费在线观看| 日韩欧美在线视频免费观看| 精品久久久久久电影| 久久久久久有精品国产| 成人在线免费观看视视频| 国产成人亚洲精品| 欧美精品在线观看| 亚洲香蕉成人av网站在线观看| 国产午夜精品视频免费不卡69堂| 91精品久久久久久久久久久久久| 国产精品美女999| 久久精品久久久久久国产 免费| 国产97在线视频| 欧美一级免费视频| 久久久极品av| 夜夜躁日日躁狠狠久久88av| 久久久精品视频在线观看| 日本最新高清不卡中文字幕| 亚洲人成电影网站色| 国产最新精品视频| 亚洲老司机av| 欧美精品videos| 91国产精品91| 97久久伊人激情网| 国产亚洲精品日韩| 91sao在线观看国产| 欧美精品在线观看| 亚洲精选中文字幕| 国产精品久久久999| 理论片在线不卡免费观看| 亚洲性xxxx| 日本精品久久久久久久| 神马久久桃色视频| 国产精品日韩电影| 久久久国产一区| 亚洲欧美色婷婷| 精品一区二区三区四区| 国产精品久久久久福利| 国产一区二区激情| 这里只有精品视频在线| 欧美午夜片欧美片在线观看| 久久综合电影一区| 精品一区二区三区三区| 欧美疯狂xxxx大交乱88av| 国产成人精品免高潮在线观看| 日韩中文字幕网| 久久人人看视频| 亚州成人av在线| 欧美一级视频在线观看| 懂色aⅴ精品一区二区三区蜜月| 亚洲欧美视频在线| 久久视频在线播放| 日韩少妇与小伙激情| 欧美在线视频免费观看| 亚洲另类激情图| 国产精品白嫩美女在线观看| 国产在线久久久| 国产一区二区丝袜高跟鞋图片| 国产精品久久久久久久久久免费| 国产精品一区久久久| 国产欧美精品一区二区三区-老狼| 青青草原成人在线视频| 日韩网站在线观看| 久久成人亚洲精品| 姬川优奈aav一区二区| 国产欧美一区二区三区视频| 欧美国产激情18| 国产精品日日摸夜夜添夜夜av| 日韩在线观看免费高清完整版| 亚洲国产精品va在线看黑人动漫| 亚洲成年人影院在线| 日本国产一区二区三区| 国产精品中文久久久久久久| 亚洲成人激情小说| 日韩av一区二区在线| 国内精品视频一区| 久久久精品国产网站| 国产精品黄色av| 久久天天躁日日躁| 色噜噜狠狠色综合网图区| 国产亚洲欧洲高清| 美女久久久久久久久久久| 亚洲欧美中文字幕在线一区| 国产欧美精品在线播放| 亚洲女同精品视频| 亚洲护士老师的毛茸茸最新章节| 2024亚洲男人天堂| 国产精品自产拍在线观看| 成人情趣片在线观看免费| 清纯唯美日韩制服另类| 亚洲视频777| 欧美午夜xxx| 日本欧美中文字幕| 亚洲尤物视频网| 欧美日韩一区二区三区在线免费观看| 97色在线观看免费视频| 久久色精品视频| 欧美成人免费小视频| 2019精品视频| 久久久视频在线| 久久免费少妇高潮久久精品99| 性金发美女69hd大尺寸| 尤物99国产成人精品视频| 6080yy精品一区二区三区| 国产91热爆ts人妖在线| 精品亚洲国产视频| 欧美亚洲另类激情另类| 日韩精品极品视频| 亚洲国产精品久久久久久| xx视频.9999.com| 91夜夜揉人人捏人人添红杏| 国产精品av免费在线观看| 国产精品亚洲视频在线观看| 国产日韩av在线播放| 欧美黄色片在线观看| 欧美日韩色婷婷| 欧美日本黄视频| 一本色道久久88精品综合| 中文字幕亚洲自拍| 欧美精品在线极品| 国产日韩精品在线观看| 成人福利网站在线观看11| 亚洲成年人影院在线| 欧美一区二区.| 亚洲精品一区二区三区婷婷月| 国产精品成人一区二区三区吃奶| 久久午夜a级毛片| 日本成人免费在线| 久久久中文字幕| 亚洲第一级黄色片| 日韩美女视频中文字幕| 日韩中文字幕欧美| 亚洲第一区在线观看|