国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用C#實現生成PDF文檔

2024-07-21 02:17:44
字體:
來源:轉載
供稿:網友

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= "(http://www.wenhui.org)tj/n" ; 
    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(); 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宝丰县| 山丹县| 搜索| 禄劝| 普安县| 清镇市| 新和县| 五家渠市| 洱源县| 田东县| 宁津县| 江华| 海阳市| 武胜县| 淳安县| 通海县| 石楼县| 松滋市| 东乡族自治县| 朔州市| 嵊州市| 石景山区| 灵宝市| 钟祥市| 台安县| 灵武市| 登封市| 黔西| 舒兰市| 奉贤区| 星子县| 司法| 凌海市| 镇江市| 灌阳县| 岳普湖县| 达尔| 三穗县| 南雄市| 洛宁县| 青河县|