C#使用Aspose将Word\HTML 转换成PDF文件
写在前面
- Aspose 这个是收费的,直接使用是有水印的
- 需要用到的dll文件 ==> Aspose.Words.dll、Aspose.HTML.dll、Aspose.Total.lic(授权文件)
- 我使用的是.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文件的更多相关文章
- OpenOffice将MS docx转换成pdf文件偶数页眉不显示问题解决办法
OpenOffice版本:4.0(Windows.Linux下测试都出现问题) MS Office版本:2007 问题描述 使用OpenOffice将MS的docx文件转换为pdf文件时,docx文件 ...
- Nodejs 中将html转换成pdf文件
Nodejs 中将html转换成pdf文件,Nodejs Convert html into pdf 1. 下载phantomjs.exe,将该文件放在根目录 2. 编写pdf.js文件(在githu ...
- Linux不用使用软件把纯文本文档转换成PDF文件的方法
当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格式,你要按照 ...
- C#.net word excel powerpoint (ppt) 转换成 pdf 文件
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- Python将word文档转换成PDF文件
如题. 代码: ''' #將word文档转换为pdf文件 #用到的库是pywin32 #思路上是调用了windows和office功能 ''' #导入所需库 from win32com.client ...
- 在Linux下将HTML文件转换成PDF文件
今天要写一个上交的作业,本来是想用Office Word来写的,但是,我的Office貌似不能用了,但是,Linux下的LibreOffice写出的文档,在打印的时候是经常出现乱码的.所以,后来想到可 ...
- C# 将PowerPoint文件转换成PDF文件
PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...
- 使用abcpdf将html转换成pdf文件
ABCpdf.NET使用介绍 最新做一个项目需要生成pdf文档以供打印,研究决定使用abcpdf这款组件,先针对其使用方法做一个简单的总结介绍以给有需要的朋友做参考. 一. ABCpdf.NET简单介 ...
- JAVA使用aspose实现word文档转pdf文件
引入jar包 下载地址:https://yvioo.lanzous.com/iezpdno3mob 然后打开下载的目录打开cmd执行 mvn install:install-file -Dfile=a ...
- 用java代码把docx转换成pdf文件
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio ...
随机推荐
- gin 图片上传到本地或者oss
路由层 func registerCommonRouter(v1 *gin.RouterGroup) { up := v1.Group("upload") { up.POST(&q ...
- fastposter v2.9.2 最简海报生成器
fastposter v2.9.2 程序员必备海报生成器 fastposter海报生成器是一款快速开发海报的工具.只需上传一张背景图,在对应的位置放上组件(文字.图片.二维.头像)即可生成海报. 点击 ...
- AIRIOT助力城市管廊工程,智慧物联守护城市生命线
随着科技的不断革新,人工智能.大数据.物联网等新一代技术驱动的智慧城市快速发展,众多领域和行业的参随着科技的不断革新,人工智能.大数据.物联网等新一代技术驱动的智慧城市快速发展,众多领域和行业的参 ...
- docker多主机管理docker-machine
docker-machine https://docs.docker.com/machine/ https://www.runoob.com/docker/docker-machine.html ht ...
- 怀念中的java
学了这门语言后一直没能做成项目,倒是安装环境,用记事本编辑的话,除了js最好做的就是java了. 以前学java的时候是一帮很有朝气的同学,在一个培训班,每天苦哈哈.从c开始学的语言,学完基础部分转入 ...
- C#.Net筑基-类型系统①基础
C#.Net的BCL提供了丰富的类型,最基础的是值类型.引用类型,而他们的共同(隐私)祖先是 System.Object(万物之源),所以任何类型都可以转换为Object. 01.数据类型汇总 C#. ...
- pod(三):pod的管理
目录 一.系统环境 二.前言 三.pod的管理 3.1 环境介绍 3.2 管理pod 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.17 ...
- Json.NET Converting between JSON and XML
Json.NET supports converting JSON to XML and vice versa using the XmlNodeConverter. Elements, attrib ...
- RTOS官方文档学习
任务与协程 区别 一个程序可以只有任务.只有协程.二者都有,但不可以通过队列/信号量互相传递数据 任务特点 任务之间可以互相独立 每个任务分配自己的堆栈,提高了RAM使用率 操作简单.按优先级抢占式执 ...
- c#WinFrom自定义图表仪表控件-频谱
这是为客户定制的一个频谱图表控件,先看下成品效果,gif较大,略等片刻 开发步骤分析: 1.界面有多个间距不等的线分割的区域,每个区域的值范围不同,我们就需要把每个区域定义出来,方便我们操作的时候来计 ...