C 根據html生成PDF

2021-08-15 17:41:39 字數 2178 閱讀 7221

using

system;

using

system.collections.generic;

using

system.web;

using

system.web.ui;

using

system.web.ui.webcontrols;

using

itextsharp.text;

using

itextsharp.text.pdf;

using

system.io;

using

itextsharp.tool.xml;

using

system.text;

using

system.net;

namespace

pdftools

//////

判斷是否有亂碼

/// ///

///public

bool ismessycode(string

txt)

}return

false

; }

//////

獲取**內容,包含了 html+css+js

/// ///

string返回網頁資訊

public

string

getwebcontent()

else

return

pagehtml;

}catch

(webexception webex)

}//////

將html文字 輸出到pdf檔裡

/// ///

///public

byte converthtmltexttopdf(string

htmltext)

//避免當htmltext無任何html tag標籤的純文字時,轉pdf時會掛掉,所以一律加上標籤

htmltext = "

" + htmltext + "";

memorystream outputstream = new memorystream();//

要把pdf寫到哪個串流

byte data = encoding.utf8.getbytes(htmltext);//

字串轉成byte

memorystream msinput = new

memorystream(data);

document doc = new document();//

要寫pdf的檔案,建構子沒填的話缺省直式a4

pdfwriter writer =pdfwriter.getinstance(doc, outputstream);

//指定檔案預設開檔時的縮放為100%

pdfdestination pdfdest = new pdfdestination(pdfdestination.xyz, 0

, doc.pagesize.height, 1f);

//開啟document檔案

doc.open();

//使用xmlworkerhelper把html parse到pdf檔裡

doc, msinput, null, encoding.utf8, new unicodefontfactory());

xmlworkerhelper.getinstance().par***html(writer, doc, msinput, null

, encoding.utf8);

//將pdfdest設定的資料寫到pdf檔

pdfaction action = pdfaction.gotolocalpage(1

, pdfdest, writer);

writer.setopenaction(action);

doc.close();

msinput.close();

outputstream.close();

//回傳pdf檔案

return

outputstream.toarray();

}//設定字型類

public

class

unicodefontfactory : fontfactoryimp}}

}

關於HTML生成PDF檔案

原文 又是引用第三方dll的一篇方法,後來建議作者用reflector反編譯提出方法了。其次,在安裝目錄下找到abcpdf.dll檔案,通過vs2008新增這個類庫。最後,就是在專案中使用了,如下 一,在當前需要生成pdf檔案的頁面放乙個按鈕。按鈕的 方法如下 protected void lbpd...

php生成pdf生成

fpdf是乙個純粹的通過php類來生成pdf文件的方法,需要生成的內容直接在php 中來指定,生成文字,線條等等,都有自己的方法。下面介 紹乙個用fpdf來生成 hello world 的pdf文件 php require fpdf.php pdf new fpdf pdf addpage pdf ...

C 根據Excel生成樹

需求 根據excel生成樹,excel的某些節點為屬性節點,如 列 樁號 構件編碼 測試屬性1 是列 分項工程名稱 的屬性,非節點。列 樁號 構件編碼 測試屬性1 以屬性的方式存在 匯入的思路 排除屬性列外,所有的列從左到右,樹的層級依次遞增,左邊列是右邊列的父節點 判斷乙個單元格是否已新增,獲取該...