pdf to swf

news/2025/2/9 3:18:39 标签: exception, string, buffer, exe, byte, null

使用swftoolspdf2swf.exe命令行来完成这项操作,转换效果理想,支持as3swftools官网:http://www.swftools.org/

下面是根据使用需要设计的2个方法:

/// <summary>

/// 获取pdf文件的页数

/// </summary>

public static int GetPageCount(string pdfPath)

{

try

{

byte[] buffer = File.ReadAllBytes(pdfPath);

int length = buffer.Length;

if (buffer == null)

return -1;

if (buffer.Length <= 0)

return -1;

string pdfText = Encoding.Default.GetString(buffer);

System.Text.RegularExpressions.Regex rx1 = new System.Text.RegularExpressions.Regex(@"/Type/s*/Page[^s]");

System.Text.RegularExpressions.MatchCollection matches = rx1.Matches(pdfText);

return matches.Count;

}

catch (Exception ex)

{

Util.WriteLog(ex);

}

return -1;

}

/// <summary>

/// 把指定的pdf页面转换成swf

/// </summary>

public static void ConvertToSwf(string pdfPath, string swfPath, int page)

{

try

{

string exe = Path.Combine(Application.StartupPath, "Tools//pdf2swf.exe");

if (!File.Exists(exe))

{

throw new ApplicationException("Can not find: " + exe);

}

//参考:http://www.swftools.org/pdf2swf.html

StringBuilder sb = new StringBuilder();

sb.Append(" -p " + page + "-" + page);//page range

sb.Append(" -j 100");//Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)

sb.Append(" -t");//The resulting SWF file will not turn pages automatically.

sb.Append(" -T 9");//flash version

sb.Append(" /"" + pdfPath + "/"");//input

sb.Append(" -o /"" + swfPath + "/"");//output

System.Diagnostics.Process proc = new System.Diagnostics.Process();

proc.StartInfo.FileName = exe;

proc.StartInfo.Arguments = sb.ToString();

proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

proc.Start();

proc.WaitForExit();

proc.Close();

}

catch (Exception ex)

{

Util.WriteLog(ex);

}

}

效果图

效果图


http://www.niftyadmin.cn/n/1574769.html

相关文章

SpringBoot2-第二章:完善在线APIDocs

上一章我们基本完成了项目框架的搭建&#xff0c;我们目前项目是为了完成一个类似传统网站的单机服务器应用&#xff0c;那么我们接着该做一些什么呢&#xff1f; 本项目的GitHub&#xff1a;https://github.com/pc859107393/Go2SpringBoot.git 有兴趣交流springboot进行快速开…

2010年个人产品研发计划

进销存——标准版&#xff08;完成&#xff09; 总结前一代几个产品功能推出一个通用标准版&#xff0c;改用硬件授权。 产品授权管理系统2.0&#xff08;完成&#xff09; 提供新产品的注册、升级、管理等功能的RIA Web系统。 Flex报表引擎&#xff08;完成&#xff0…

jenkins指定具体项目具体分支进行构建部署

知识背景 1、使用码云WebHooks进行持续集成的时候&#xff0c;我们首先应该明白&#xff0c;他的原理大致是这样的&#xff1a;当我们每一次提交代码到码云的时候&#xff0c;码云会帮我们发送一个关于Push的Post请求到我们的Jenkins服务器&#xff0c;然后Jenkins持续集成插件…

inflate()引发NullPointerException

有时候我们在infalete的时候明明什么都对为什么它会提示出错 原意是你的资源layout出错了 注意看有没有把View写成view 这个View应该大写&#xff01;V而不是小写v 踩坑踩了两次了&#xff01;上次以为是个小问题没有注意&#xff0c;这次一定要记录下来&#xff01;&#xff…

用加密狗控制软件的授权(C#)

加密狗授权方式介绍 每只加密狗都有一个固定的序列号&#xff0c;并且一般是无法修改的。软件运行时读取加密狗的序列号进行判断&#xff0c;序列号通过验证后才能正常使用软件。 选购一套加密狗开发套件 我选购了SaftNet的USB软件狗&#xff0c;入手后查阅开发资料(不同…

哲理寓言

▲ 成长的寓言&#xff1a;做一棵永远成长的苹果树▲    一棵苹果树&#xff0c;终于结果了。   第一年&#xff0c;它结了10个苹果&#xff0c;9个被拿走&#xff0c;自己得到1个。对此&#xff0c;苹果树愤愤不平&#xff0c;于是自断经脉&#xff0c;拒绝成长。第二年&…

技术人如何写好简历

http://ifeve.com/qiuzhi2/ 程序员简历末班模板&#xff1a;https://github.com/geekcompany/ResumeSample

产品开发实录(1)——代码重构

前言 最近&#xff0c;正竭斯底里地重构flex技术平台开发的产品【wizBuilder CS】。以前为赶功能&#xff0c;界面部分代码都写得好乱&#xff0c;现在是时候修理下自己作的孽了&#xff0c;顺便为产品添加多语言支持(Localization)。 主要任务 代码重构 多语言支持 添加新…