通过PDF栅格化(rasterize)插件快速转换PDF为图片

简介

PDF是市面上最流行的格式之一,大多数情况下,PDF文件是可读的,即内部包含文字内容。如果要将这些内容转换为图片,一个办法是一个个页面截图,然而,这样是十分低效率的。本文将分享下如果快速实现在浏览器中将PDF文件转换为图片。

开发测试环境

电脑上需要安装 node

步骤

一、新建一个目录,在里面打开命令行工具(快捷方式为Ctrl+Shift+右击)通过npm下载本文使用的核心控件

npm install dwt@14.1.0

然后在这个目录可以看到

二、打开到以下目录

node_modules\dwt\sample

可以看到

三、在本文中,我们要研究的是PDFRasterizer.html。直接双击打开。如果相关的控件尚未,则按照提示安装控件

正常情况下,安装的文件可以在C:\Windows\SysWOW64\Dynamsoft\DynamsoftService目录中找到。这里的核心文件主要是

DynamsoftService.exe

dwt_trial_14.1.0.0828.dll

DynamicPdf.dll

四、安装完成后,刷新页面,点击第二个按钮并打开本地的一个PDF文件。很快这个PDF文件就会以图片形式展现在页面上的图片查看器中

此时,可以打开浏览器的开发者界面(F12),并试一下执行以下代码。这样可以一次查看多疑图片

DWObject.SetViewMode(3,3);

还可以用以下方法来把这些图片存为JPEG到本地(也可以存为BMP, PNG, TIF等)

DWObject.IfShowFileDialog = true;
DWObject.SaveAsJPEG('');

功能是怎么实现的

在文本编辑器中打开PDFRasterizer.html

一、核心JS的引用

<script type="text/javascript" src="../dist/dynamsoft.webtwain.initiate.js"></script>
<script type="text/javascript" src="../dist/dynamsoft.webtwain.config.js"></script>
<script type="text/javascript" src="../dist/addon/dynamsoft.webtwain.addon.pdf.js"></script>

这里引用的是

核心SDK Dynamic Web TWAIN相关代码

node_modules\dwt\dis\dynamsoft.webtwain.initiate.js node_modules\dwt\dis\dynamsoft.webtwain.config.js

外加本示例中用到的PDF Rasterizer addon的相关代码

node_modules\dwt\dst\addon\dynamsoft.webtwain.addon.pdf.js

如果您之前本地安装了Dynamic Web TWAIN产品,则相同的文件也可以在以下目录找到

C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN SDK 14.1 Trial\Resource

二、PDF Rasterizer运行时安装代码

var pdfrInstallerPath = Dynamsoft.WebTwainEnv.ResourcesPath + '/addon/';
if (Dynamsoft.Lib.env.bMac)
    pdfrInstallerPath += 'MacPdf.zip';
else if (Dynamsoft.Lib.env.bLinux)
    pdfrInstallerPath += 'LinuxPdf.zip';
else
    pdfrInstallerPath += 'Pdf.zip';
DWObject.Addon.PDF.Download(
    pdfrInstallerPath,
    function () {
        console.log('The PDF Rasterizer dll is installed.');
    },
    function (errorCode, errorString) {
        console.log(errorString);
        console.log("The PDF Rasterizer wasn't installed correctly.");
    }
);

如上代码所示,PDF Rasterizer是以.zip的形式下载和安装的。且这个插件同时支持WindowsmacOSLinux三个平台(不同的ZIP)。

在运行时,通过检测浏览器运行的平台来确定下载哪一个ZIP然后通过以下方法来实现对应ZIP的安装

DWObject.Addon.PDF.Download

该方法具体实现的是下载对应的ZIP并解压到service目录,在Windows上这个目录是

C:\Windows\SysWOW64\Dynamsoft\DynamsoftService

三、使用插件

if (DWObject.Addon && DWObject.Addon.PDF) {
    DWObject.Addon.PDF.SetResolution(300);
    DWObject.Addon.PDF.SetConvertMode(EnumDWT_ConvertMode.CM_RENDERALL);
}
DWObject.LoadImageEx('', 5,
    function () {
    },
    function (errorCode, errorString) {
        alert('Load Image:' + errorString);
    }
);

核心代码为

DWObject.Addon.PDF.SetResolution(300);\\设置转换图片的分辨率
DWObject.Addon.PDF.SetConvertMode(EnumDWT_ConvertMode.CM_RENDERALL);//设置转换模式,一般就设置为CM_RENDERALL

在以上设置完成后,当您用DWObjec调用LoadImageLoadImageExHTTPDownload等方法导入一个PDF文件时,PDF Rasterizer会自动调用并将对应的PDF栅格化为图片。

results matching ""

    No results matching ""