来科普一下吧,推荐这篇文章:
有时候,我们会通过浏览器把HTML转换成PDF文件,进而保存起来。但是把PDF转换成HTML又会是什么结果呢?毕竟HTML保存成PDF容易,PDF转换成HTML却不容易。
为了测试PDF转换成的HTML文件效果怎么样,我对比了国外和国内领头的两家公司。
我们先来看看本家Adobe怎么转换的。
下载Adobe acrobat XI Pro,安装到电脑上。打开PDF文档,点击左上角的”文件“选项,在d出的下拉框中找到”另存为其他“;
在沿着箭头打开右边下拉框,找到“HTML网页”,选择需要输出的HTML格式。
接下来我们再来看看国内老牌福昕PDF旗下的PDF365网站,里面的PDF转HTML是免费的...毕竟PDF转换成HTML的需求太小众了。
打开PDF在线转换平台:https://www.pdf365.cn/;
点击“PDF转HTML”,进入PDF文档上传页面,添加需要转换的PDF文档到窗口;
点击“开始转换”,即可将PDF转换成HTML;
转换完成后,点击“下载”按钮,即可获取转换后文档;
除了以上两个典型案例,试过了很多网站和软件,总体结果并不让人满意:
1、对于HTML转换的PDF,两家还原的效果都不好;
2、对于自己编辑的普通PDF,转换后的板式基本还原,但是图片质量都不好;
总结一下需要注意的三点情况:
1、扫描件PDF转Html很难实现,因为扫描件一个页面就是一张图。扫描pdf要转html需要进行文字识别和图文分离;
2、非扫描件的PDF转换成Html,无法表达PDF里面复杂的渲染和矢量图的;
3、非扫描件的PDF转换成Html,对PDF板式结构分析引擎的功力要求很高,想要再还原出来只能靠转换引擎去猜。这个技术在PDF里面叫Reflow(版式重排),能够机器智能重建PDF的流式信息,目前只有Adobe和Foxit两家公司具备这个技术,但也无法做到100%。
ppt保存为html文件的方法:用c#可以轻松实现转换:
using System
using System.Collections.Generic
using System.Text
using System.IO
using PPT = Microsoft.Office.Interop.PowerPoint
using System.Reflection
namespace WritePptDemo
{
class Program
{
static void Main(string[] args)
{
string path//文件路径变量
PPT.Application pptApp //Excel应用程序变量
PPT.Presentation pptDoc //Excel文档变量
PPT.Presentation pptDoctmp
path = @"C:\MyPPT.ppt" //路径
pptApp = new PPT.ApplicationClass() //初始化
//如果已存在,则删除
if (File.Exists((string)path))
{
File.Delete((string)path)
}
//由于使用的是COM库,因此有许多变量需要用Nothing代替
Object Nothing = Missing.Value
pptDoc = pptApp.Presentations.Add(Microsoft.Office.Core.MsoTriState.msoFalse)
pptDoc.Slides.Add(1, Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText)
string text = "示例文本"
foreach (PPT.Slide slide in pptDoc.Slides)
{
foreach (PPT.Shape shape in slide.Shapes)
{
shape.TextFrame.TextRange.InsertAfter(text)
}
}
//WdSaveFormat为Excel文档的保存格式
PPT.PpSaveAsFileType format = PPT.PpSaveAsFileType.ppSaveAsDefault
//将excelDoc文档对象的内容保存为XLSX文档
pptDoc.SaveAs(path, format, Microsoft.Office.Core.MsoTriState.msoFalse)
//关闭excelDoc文档对象
pptDoc.Close()
//关闭excelApp组件对象
pptApp.Quit()
Console.WriteLine(path + " 创建完毕!")
Console.ReadLine()
string pathHtml = @"c:\MyPPT"
PPT.Application pa = new PPT.ApplicationClass()
pptDoctmp = pa.Presentations.Open(path, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse)
PPT.PpSaveAsFileType formatTmp = PPT.PpSaveAsFileType.ppSaveAsHTML
pptDoctmp.SaveAs(pathHtml, formatTmp, Microsoft.Office.Core.MsoTriState.msoFalse)
pptDoctmp.Close()
pa.Quit()
Console.WriteLine(pathHtml + " 创建完毕!")
}
}
}
这样在创建完毕后就可以在c盘找到MyPPT了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)