作者:零夏一夜_335 | 来源:互联网 | 2023-10-12 01:52
完成Pechkin使用心得(一)的内容后。下面正式进入代码实现的阶段。在项目中引用Pechkin.dll与Pechkin.Synchronized.dll后编写以下示例代码:usi
完成Pechkin使用心得(一)的内容后。下面正式进入代码实现的阶段。
在项目中引用Pechkin.dll与Pechkin.Synchronized.dll后编写以下示例代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Printing; using System.IO; using System.Web; using System.Net; using Pechkin; using Pechkin.Synchronized;
namespace HTMLtoPDF {
public partial class Form1 : Form
{ public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { ConverHTMLtoPDF("...Place some html web page code here... "); }
private void ConverHTMLtoPDF(string html) { SynchronizedPechkin sc = new SynchronizedPechkin(new GlobalConfig()
.SetMargins(new Margins() { Left = 0, Right = 0, Top = 0, Bottom = 0 }) //设置边距
.SetPaperOrientation(true) //设置纸张方向为横向 .SetPaperSize(ConvertToHundredthsInch(50), ConvertToHundredthsInch(100))); //设置纸张大小(使用者可以根据自己的需求设置。这里的50代表长 ,100代表宽 )
ObjectConfig oc = new ObjectConfig();
oc.SetPrintBackground(true).SetLoadImages(true).Header.SetHtmlContent(WebPageUri) ;
//以上设置十分重要 :
//SetPrintBackground(true)是显示样式所必须的(例如令设置有颜色的
能在PDF中显示出来)。
//SetLoadImages(true)令PDF可以加载图片。由于Pechkin是封装wkhtmltopdf。wkhtmltopdf是不能识别相对路径的图片文件的。所以HTML内的所有图片路径都不能使用相对路径 !必须使用绝对路径 !
//.Header.SetHtmlContent(WebPageUri)是使用一个网页内容来设置PDF的页眉。
byte[] buf = sc.Convert(oc, html);
if (buf == null) { MessageBox.Show("Error converting!"); return; }
try { string fn = "H:\\Learn\\Myself\\Test\\HTMLtoPDF\\file_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf"; FileStream fs = new FileStream(fn, FileMode.Create); fs.Write(buf, 0, buf.Length); fs.Close(); } catch { }
}
}
}
下面是生成的一个PDF例子。效果还是不错的
不设置SetPrintBackground(true) 就会得到以下效果(
有填充颜色的都没有填充颜色):
代码实现就到这里结束了。
引用以下网站部分内容:
http://www.knowsky.com/898441.html
http://www.cnblogs.com/yjmyzz/p/3286604.html
推荐阅读
如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ...
[详细]
蜡笔小新 2024-11-13 16:47:19
本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ...
[详细]
蜡笔小新 2024-11-14 10:18:35
在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ...
[详细]
蜡笔小新 2024-11-14 10:15:02
本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ...
[详细]
蜡笔小新 2024-11-13 19:46:18
本文详细介绍了 Flutter 2.* 中的路由管理机制,包括路由的基本概念、MaterialPageRoute 的使用、Navigator 的操作方法、路由传值、命名路由及其注册、路由钩子等。 ...
[详细]
蜡笔小新 2024-11-13 13:45:49
在使用自动验证功能时,页面未能正确显示错误信息。通过使用 `dump($info->getError())` 可以帮助诊断和解决问题。 ...
[详细]
蜡笔小新 2024-11-13 12:30:21
为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ...
[详细]
蜡笔小新 2024-11-13 12:14:35
importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ...
[详细]
蜡笔小新 2024-11-12 16:51:59
Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ...
[详细]
蜡笔小新 2024-11-12 14:47:56
本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ...
[详细]
蜡笔小新 2024-11-12 14:26:04
两个条件,组合控制#if($query_string~*modviewthread&t(&extra(.*)))?$)#{#set$itid$1;#rewrite^ ...
[详细]
蜡笔小新 2024-11-12 13:55:01
本文详细介绍了DMA控制器如何通过映射表处理来自外设的请求,包括映射表的设计和实现方法。 ...
[详细]
蜡笔小新 2024-11-12 13:51:55
本文探讨了在使用Spark的map或flatMap算子将一个数据集转换为另一个数据集时,遇到的Schema变为Binary的问题,并提供了详细的解决方案。 ...
[详细]
蜡笔小新 2024-11-12 08:06:20
开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤 ...
[详细]
蜡笔小新 2024-11-11 17:13:04
本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ...
[详细]
蜡笔小新 2024-11-09 19:48:22