慕课的原型图快速变html,分享一个html转换为pdf 利器 Pechkin
Pechkin 是GitHub上的一個開源項目,可方便將html轉化成pdf文檔,使用也很方便,下面是winform項目中的示例代碼:using?System;
using?System.Diagnostics;
using?System.Drawing.Printing;
using?System.IO;
using?System.Windows.Forms;
using?Pechkin;
using?Pechkin.Synchronized;
namespace?PdfTest
{
public?partial?class?Form1?:?Form
{
public?Form1()
{
InitializeComponent();
}
private?void?btnCreatePDF_Click(object?sender,?EventArgs?e)
{
SynchronizedPechkin?sc?=?new?SynchronizedPechkin(new?GlobalConfig()
.SetMargins(new?Margins()?{?Left?=?0,?Right?=?0,?Top?=?0,?Bottom?=?0?})?//設置邊距
.SetPaperOrientation(true)?//設置紙張方向為橫向
.SetPaperSize(ConvertToHundredthsInch(50),?ConvertToHundredthsInch(100)));?//設置紙張大小50mm?*?100mm
byte[]?buf?=?sc.Convert(new?ObjectConfig(),?this.txtHtml.Text);
if?(buf?==?null)
{
MessageBox.Show("Error?converting!");
return;
}
try
{
string?fn?=?Path.GetTempFileName()?+?".pdf";
FileStream?fs?=?new?FileStream(fn,?FileMode.Create);
fs.Write(buf,?0,?buf.Length);
fs.Close();
Process?myProcess?=?new?Process();
myProcess.StartInfo.FileName?=?fn;
myProcess.Start();
}
catch?{?}
}
private?int?ConvertToHundredthsInch(int?millimeter)
{
return?(int)((millimeter?*?10.0)?/?2.54);
}
}
}
web項目中也可以使用:
1.??新建一個待打印的頁面,比如index.htm,示例內容如下:html>
html打印測試*?{?margin:0;?padding:0;?font-size:12px?}
table?{?margin:10px;?border:2px?solid?#000;?border-collapse:collapse;?margin:5px?auto?}
th,?td?{?border:1px?solid?#000;?border-collapse:collapse;?padding:3px?5px?}
h1?{?font-size:24px?}
@media?print?{
.no-print?{?display:?none;?}
.page-break?{?page-break-after:?always;?}
}
function?createPdf()?{
window.open("CreatePdf.ashx?html=index.htm");
}
導出pdf
XXXX報表
?序號??欄目1??欄目2??欄目3??欄目4??1??數據1??數據2??數據3??數據4??2??數據1??數據2??數據3??數據4??3??數據1??數據2??數據3??數據4??4??數據1??數據2??數據3??數據4??5??數據1??數據2??數據3??數據4??合計:????300.00??300.00?2、創建一個ashx來生成并輸出pdfusing?System;
using?System.Drawing.Printing;
using?System.IO;
using?System.Web;
using?Pechkin;
using?Pechkin.Synchronized;
namespace?PdfWebTest
{
///?
///?Summary?description?for?CreatePdf
///?
public?class?CreatePdf?:?IHttpHandler
{
public?void?ProcessRequest(HttpContext?context)
{
string?htmlFile?=?context.Request["html"];
if?(!string.IsNullOrWhiteSpace(htmlFile))
{
string?filePath?=?context.Server.MapPath(htmlFile);
if?(File.Exists(filePath))
{
string?html?=?File.ReadAllText(filePath);
SynchronizedPechkin?sc?=?new?SynchronizedPechkin(new?GlobalConfig()
.SetMargins(new?Margins()?{?Left?=?0,?Right?=?0,?Top?=?0,?Bottom?=?0?})?//設置邊距
.SetPaperOrientation(true)?//設置紙張方向為橫向
.SetPaperSize(ConvertToHundredthsInch(50),?ConvertToHundredthsInch(100)));?//設置紙張大小50mm?*?100mm
byte[]?buf?=?sc.Convert(new?ObjectConfig(),?html);
if?(buf?==?null)
{
context.Response.ContentType?=?"text/plain";
context.Response.Write("Error?converting!");
}
try
{
context.Response.Clear();
//方式1:提示瀏覽器下載pdf
//context.Response.AddHeader("content-disposition",?"attachment;filename="?+?htmlFile?+?".pdf");
//context.Response.ContentType?=?"application/octet-stream";
//context.Response.BinaryWrite(buf);
//方式2:直接在瀏覽器打開pdf
context.Response.ContentType?=?"application/pdf";
context.Response.OutputStream.Write(buf,?0,?buf.Length);
context.Response.End();
}
catch(Exception?e)?{
context.Response.ContentType?=?"text/plain";
context.Response.Write(e.Message);
}
}
}
}
public?bool?IsReusable
{
get
{
return?false;
}
}
private?int?ConvertToHundredthsInch(int?millimeter)
{
return?(int)((millimeter?*?10.0)?/?2.54);
}
}
}
注意事項:部署web項目時,要保證bin目錄下有以下相關dll文件
Common.Logging.dll
libeay32.dll
libgcc_s_dw2-1.dll
mingwm10.dll
Pechkin.dll
Pechkin.Synchronized.dll
ssleay32.dll
wkhtmltox0.dll
打開App,閱讀手記
總結
以上是生活随笔為你收集整理的慕课的原型图快速变html,分享一个html转换为pdf 利器 Pechkin的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息技术计算机网络PPT,高中信息技术计
- 下一篇: 脚开头成语有哪些啊?