• 目录

    • 开发环境说明
    • Spire PDF for .NET (free edition)体验
    • 资源下载

开发环境说明

Microsoft Visual Studio 2013 Ultimate Edition With Update 4

Spire PDF for .NET v3.2 Free Edition

Microsoft Windows 7 Ultimate Edition With SP1


Spire PDF for .NET 体验

这次是受Yesi的邀请,为他们的产品(http://www.e-iceblue.com/)写一篇测评类的文章。说实话我是第一次写类似的文章,有些惶恐。不过还是感谢Yesi的信任。

按照我的理解,他们的产品多是用于办公文档类型的生成、转换的。而这些功能也是我们开发过程中常用的功能。比如:在网站开发时,将数据表导出到PDF。之前我常用的就是Reporting Service + Report Viewer控件的方式。无疑这可能是最简单的方法。但是ReportViewer控件的回发机制无疑破坏了整体的用户体验。

因此,我今天挑选了PDF组件进行了测试。

程序流程图:

如上图中所描述的那样。首先我将模拟数据(DataSource.xml)通过XslCompiledTransform类转换成html文档,之后使用Spire PDF组件中的PdfDocument对象将html文档转换成PDF文件。

代码:

         private void TransformToPdf(FileInfo htmlFile)
{
try
{
PdfDocument pdfDocument = new PdfDocument();
pdfDocument.LoadFromHTML(htmlFile.FullName, false, false, false);
FileInfo targetPDF = new FileInfo(Path.Combine(htmlFile.Directory.FullName, htmlFile.Name + ".pdf"));
pdfDocument.SaveToFile(targetPDF.FullName, FileFormat.PDF);
Trace.Write(string.Format("已经将HTML文件转换为PDF类型的文件:{0}", targetPDF.FullName));
this.SetStartButtonEnabledProperty(true);
this.SetProgressPictureState(false);
}
catch
{
Trace.Write(string.Format("无法转换HTML文件{0}为PDF类型!", htmlFile.FullName));
}
}

C# Code

正如上面代码大家看到的,短短几行,就可以将HTML文档转换成PDF文档了。但是在测试的过程中也发现了一个问题,就是在生成PDF文档时,会有一个短暂的卡顿。不知道如果是生成复杂PDF文档的话效率会不会有些影响。不过,不要对程序员要求的太多。作为程序员,我需要为我们正名:我们只能利用我们的智慧、知识和劳动,为部分人群解决部分问题。又要简单、又要美观、又要效率高,貌似微软、谷歌这些大公司也没有完全做到吧。哈哈..一点拙见


资源下载
 

谢谢Yesi的关注和信任。

使用Spire PDF for .NET将HTML转换成PDF文档的更多相关文章

  1. PDF文件可以转换成txt文档吗

    PDF是一种便携式的文件格式,传送和阅读都非常方便,是Adobe公司开发的跨平台文件格式,它无论在哪种打印机上都可以保证精确的颜色和准确的打印效果.可是有点遗憾的是PDF格式一般不能在手机上打开,或者 ...

  2. ABBYY将JPEG文件转换成Word文档的方法

    日常工作中处理JPEG格式的图像文件时,有时需要转换成Word文档进行编辑,市场上应用而生了很多转换工具,相信不少人听说过OCR(光学字符识别)软件,可以用来转换图像文件,而在OCR软件中, ABBY ...

  3. 如何使用ABBYY FineReader 12将JPEG文件转换成Word文档

    日常工作中处理JPEG格式的图像文件时,有时需要转换成Word文档进行编辑,市场上应用而生了很多转换工具,相信不少人听说过OCR(光学字符识别)软件,可以用来转换图像文件,而在OCR软件中, ABBY ...

  4. 如何用pdfbox-app-1.8.10.jar批处理将pdf文档转换成text文档

    1.首先下载pdfbox-app-1.8.10.jar(下载地址:http://pdfbox.apache.org/download.html) 2.将pdfbox-app-1.8.10.jar加载到 ...

  5. C# : 操作Word文件的API - (将C# source中的xml注释转换成word文档)

    这篇博客将要讨论的是关于: 如何从C#的source以及注释, 生成一份Word格式的关于各个类,函数以及成员变量的说明文档. 他的大背景如下...... 最近的一个项目使用C#, 分N个模块, 在项 ...

  6. HTML转换成word文档

    1工具类保存word文件 public class WordAction { public static void SaveAsWord(string fileName, string pFileNa ...

  7. 将Latex tex文档转换成 word文档(下)

    在上篇中我们介绍了一款将 tex 文件转换成 word 文件的工具 借用万能的搜索引擎,在 Google 上找到了更好的工具 它就是Pandoc 介绍 Pandoc 是由 John McaFarlan ...

  8. 将Latex tex文档转换成 word文档(上)

    有时候逼不得已,必须得将自己精心排版好的latex 文档 转换成word 给别人编辑 以下提供一个方法 下载 Tex2Word 工具,地址我的网盘 安装 解压后安装,使用默认安装路径 安装过程中.点击 ...

  9. 使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,

    一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不 ...

随机推荐

  1. Linux进程间通信——使用消息队列

    下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道   一.什么是消息队列 消息队列提 ...

  2. 【Python】iiacm_filemaker ——简易的.cpp文件创建即初始化脚本,ACMer专用

    代码已全部重写,上次写的真是不忍直视…… 今天刚刚接触Python,本着学以致用的原则,就写了一个按照要求自动生成.cpp文件并初始化头文件的脚本. 确定你的linux中安装了Python,将下面的代 ...

  3. HTML5全屏API

    现在大多数浏览器都有全屏功能,允许用户来设置或操作.但HTML5的全屏API与之不同,HTML5的全屏API允许web开发工程师在程序中调用. 这样,web开发工程师就可以再网站中设计一个按钮,当该按 ...

  4. swipe方法

    /** * @author zhousg * @Date 2016-02-04 * @Method 滑动方法 针对一个大容器内部的容器做滑动封装 * @param * args args.swipeD ...

  5. clinit和init(转载)

    clinit和init(转载)   今天在看深入Java虚拟机的class文件结构时,看到了这么一句话, 可能出现在class文件中的两种编译器产生的方法是:实例初始化方法(名为<init> ...

  6. Python核心编程读笔 1

    第一章 欢迎来到Python世界 1 Python特点: 高级的可进行系统调用的解释性语言 面向对象 可升级.扩展.移植 自动内存管理器(内存管理由Python解释器负责) 2 安装 Windows的 ...

  7. poj 2001 Shortest Prefixes

    字典树的简单应用. #include<stdio.h> #include<string.h> ][]; struct node{ int cnt; node *next[]; ...

  8. 解决SVN:could not start external diff program的问题。

    今天装完SVN之后,用来查看文件不同老是出现could not start external diff program,网上找了很多资料也没找到自己想要的,无意中中右键 Settings看到有个Dif ...

  9. mysql--自动增长

    create table teacher( t_id int primary key auto_increment, #auto_increment 自动增长 需要整型,还需要索引 t_name va ...

  10. Swift 断言

    assert(条件,"输出信息"); 如: let age=-1; assert(age>=0,"age要大于0");