写在前面

  1. Aspose 这个是收费的,直接使用是有水印的
  2. 需要用到的dll文件 ==> Aspose.Words.dll、Aspose.HTML.dll、Aspose.Total.lic(授权文件)
  3. 我使用的是.NET Framework 4.0 ,.NET Core 使用nuget安装

Word转换成PDF

  1、引用 Aspose.Words.dll  文件

    

  2、授权。先将 Aspose.Total.lic 添加到项目中,然后设置文件属性

    

  3、转换代码

public static class PdfHelper
{
static PdfHelper()
{
Aspose.Words.License license = new Aspose.Words.License();
license.SetLicense("Aspose.Total.lic"); //授权
} /// <summary>
/// word 转换成 pdf 文件
/// </summary>
/// <param name="sourcePath">原文件</param>
/// <param name="targetPath">转换后的pdf存储路径</param>
/// <param name="error"></param>
/// <returns></returns>
private static string WordToPdf(string sourcePath, string targetPath)
{
string error = "";
try
{
using (FileStream localFileStream = new FileInfo(sourcePath).Open(FileMode.Open, FileAccess.Read, FileShare.Read))
{
var opt = new Aspose.Words.LoadOptions();
opt.Encoding = Encoding.UTF8;
var doc = new Aspose.Words.Document(localFileStream, opt); //如果word文档有自己安装的字体需要追加一下,不然转换出来的pdf文件字体格式会错误
string userfontsfoloder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Microsoft\\Windows\\Fonts\\"; ArrayList fontSources = new ArrayList(Aspose.Words.Fonts.FontSettings.DefaultInstance.GetFontsSources());
//将用户目录字体添加到字体源中
Aspose.Words.Fonts.FolderFontSource folderFontSource = new Aspose.Words.Fonts.FolderFontSource(userfontsfoloder, true);
fontSources.Add(folderFontSource);
Aspose.Words.Fonts.FontSourceBase[] updatedFontSources = (Aspose.Words.Fonts.FontSourceBase[])fontSources.ToArray(typeof(Aspose.Words.Fonts.FontSourceBase));
Aspose.Words.Fonts.FontSettings.DefaultInstance.SetFontsSources(updatedFontSources); //doc.Sections[0].PageSetup.PageWidth = 2479 / 2.5;
//doc.Sections[0].PageSetup.PageHeight = 3508 / 2.5;
//doc.Sections[0].PageSetup.OddAndEvenPagesHeaderFooter = false;
doc.Save(targetPath, Aspose.Words.SaveFormat.Pdf);
}
}
catch (Exception ex)
{
error = "转换pdf失败,error:" + ex.Message;
}
return error;
}
}

HTML转换成PDF

1、引用Aspose.HTML.dll文件

  参考Word转换PDF步骤1

2、授权

  参考Word转换PDF步骤2

3、转换代码

  在Word转换PDF的Helper类里添加代码

  在构造函数追加授权代码

static PdfHelper()
{
Aspose.Words.License license = new Aspose.Words.License();
license.SetLicense("Aspose.Total.lic"); //授权
Aspose.Html.License licenseHtml = new Aspose.Html.License();
licenseHtml.SetLicense("Aspose.Total.lic"); //授权
}

  新增HTML转换PDF代码

private static string HtmlToPdf(string sourcePath, string targetPath)
{
string error = "";
try
{
var doc = new Aspose.Html.HTMLDocument(sourcePath);
var opt = new Aspose.Html.Saving.PdfSaveOptions();
Aspose.Html.Converters.Converter.ConvertHTML(doc, opt, targetPath);
}
catch (Exception ex)
{
error = "转换pdf失败,error:" + ex.Message;
}
return error;
}

4、如果html 转换成pdf文件格式有问题也可以尝试使用【Select.HtmlToPdf】

C#使用Aspose将Word\HTML 转换成PDF文件的更多相关文章

  1. OpenOffice将MS docx转换成pdf文件偶数页眉不显示问题解决办法

    OpenOffice版本:4.0(Windows.Linux下测试都出现问题) MS Office版本:2007 问题描述 使用OpenOffice将MS的docx文件转换为pdf文件时,docx文件 ...

  2. Nodejs 中将html转换成pdf文件

    Nodejs 中将html转换成pdf文件,Nodejs Convert html into pdf 1. 下载phantomjs.exe,将该文件放在根目录 2. 编写pdf.js文件(在githu ...

  3. Linux不用使用软件把纯文本文档转换成PDF文件的方法

    当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格式,你要按照 ...

  4. C#.net word excel powerpoint (ppt) 转换成 pdf 文件

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  5. Python将word文档转换成PDF文件

    如题. 代码: ''' #將word文档转换为pdf文件 #用到的库是pywin32 #思路上是调用了windows和office功能 ''' #导入所需库 from win32com.client ...

  6. 在Linux下将HTML文件转换成PDF文件

    今天要写一个上交的作业,本来是想用Office Word来写的,但是,我的Office貌似不能用了,但是,Linux下的LibreOffice写出的文档,在打印的时候是经常出现乱码的.所以,后来想到可 ...

  7. C# 将PowerPoint文件转换成PDF文件

    PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...

  8. 使用abcpdf将html转换成pdf文件

    ABCpdf.NET使用介绍 最新做一个项目需要生成pdf文档以供打印,研究决定使用abcpdf这款组件,先针对其使用方法做一个简单的总结介绍以给有需要的朋友做参考. 一. ABCpdf.NET简单介 ...

  9. JAVA使用aspose实现word文档转pdf文件

    引入jar包 下载地址:https://yvioo.lanzous.com/iezpdno3mob 然后打开下载的目录打开cmd执行 mvn install:install-file -Dfile=a ...

  10. 用java代码把docx转换成pdf文件

    import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio ...

随机推荐

  1. gin 图片上传到本地或者oss

    路由层 func registerCommonRouter(v1 *gin.RouterGroup) { up := v1.Group("upload") { up.POST(&q ...

  2. fastposter v2.9.2 最简海报生成器

    fastposter v2.9.2 程序员必备海报生成器 fastposter海报生成器是一款快速开发海报的工具.只需上传一张背景图,在对应的位置放上组件(文字.图片.二维.头像)即可生成海报. 点击 ...

  3. AIRIOT助力城市管廊工程,智慧物联守护城市生命线

    ​ 随着科技的不断革新,人工智能.大数据.物联网等新一代技术驱动的智慧城市快速发展,众多领域和行业的参随着科技的不断革新,人工智能.大数据.物联网等新一代技术驱动的智慧城市快速发展,众多领域和行业的参 ...

  4. docker多主机管理docker-machine

    docker-machine https://docs.docker.com/machine/ https://www.runoob.com/docker/docker-machine.html ht ...

  5. 怀念中的java

    学了这门语言后一直没能做成项目,倒是安装环境,用记事本编辑的话,除了js最好做的就是java了. 以前学java的时候是一帮很有朝气的同学,在一个培训班,每天苦哈哈.从c开始学的语言,学完基础部分转入 ...

  6. C#.Net筑基-类型系统①基础

    C#.Net的BCL提供了丰富的类型,最基础的是值类型.引用类型,而他们的共同(隐私)祖先是 System.Object(万物之源),所以任何类型都可以转换为Object. 01.数据类型汇总 C#. ...

  7. pod(三):pod的管理

    目录 一.系统环境 二.前言 三.pod的管理 3.1 环境介绍 3.2 管理pod 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.17 ...

  8. Json.NET Converting between JSON and XML

    Json.NET supports converting JSON to XML and vice versa using the XmlNodeConverter. Elements, attrib ...

  9. RTOS官方文档学习

    任务与协程 区别 一个程序可以只有任务.只有协程.二者都有,但不可以通过队列/信号量互相传递数据 任务特点 任务之间可以互相独立 每个任务分配自己的堆栈,提高了RAM使用率 操作简单.按优先级抢占式执 ...

  10. c#WinFrom自定义图表仪表控件-频谱

    这是为客户定制的一个频谱图表控件,先看下成品效果,gif较大,略等片刻 开发步骤分析: 1.界面有多个间距不等的线分割的区域,每个区域的值范围不同,我们就需要把每个区域定义出来,方便我们操作的时候来计 ...