如何把word,pdf转成swf格式的文件,不用flashpaper.exe工具行吗? 老板让做web在线浏览,但是如果想浏览的话需要swf文件,这就涉及到要把word,pdf,转成swf格式的文件,但是部署环境的时候要放到域里面,不可以安装flashpaper.exe这个工具,该怎么办??急等!!!大哥大姐们多多帮忙啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.IO;using System.Text;using System.Collections;using System.Data;namespace cofcms.Common{ /// <summary> /// 导出PDF /// </summary> public class PDFGenerator { static float pageWidth = 594.0f; static float pageDepth = 828.0f; static float pageMargin = 30.0f; static float fontSize = 20.0f; static float leadSize = 10.0f; static StreamWriter pPDF = new StreamWriter("E:\\myPDF.pdf"); static MemoryStream mPDF = new MemoryStream(); private void ConvertToByteAndAddtoStream(string strMsg) { Byte[] buffer = null; buffer = ASCIIEncoding.ASCII.GetBytes(strMsg); mPDF.Write(buffer, 0, buffer.Length); buffer = null; } private string xRefFormatting(long xValue) { string strMsg = xValue.ToString(); int iLen = strMsg.Length; if (iLen < 10) { StringBuilder s = new StringBuilder(); int i = 10 - iLen; s.Append('0', i); strMsg = s.ToString() + strMsg; } return strMsg; } public void ExportPdf(DataTable dt) { ArrayList xRefs = new ArrayList(); //Byte[] buffer=null; float yPos = 0f; long streamStart = 0; long streamEnd = 0; long streamLen = 0; string strPDFMessage = null; //PDF文档头信息 strPDFMessage = "%PDF-1.1\n"; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage = "1 0 obj\n"; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = " < < /Length 2 0 R >>\n"; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = "stream\n"; ConvertToByteAndAddtoStream(strPDFMessage); ////////PDF文档描述 streamStart = mPDF.Length; //字体 strPDFMessage = "BT\n/F0 " + fontSize + " Tf\n"; ConvertToByteAndAddtoStream(strPDFMessage); //PDF文档实体高度 yPos = pageDepth - pageMargin; strPDFMessage = pageMargin + " " + yPos + " Td\n"; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = leadSize + " TL\n"; ConvertToByteAndAddtoStream(strPDFMessage); //实体内容 for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { strPDFMessage = "(" + dt.Rows[i][j].ToString() + ")Tj\n" + "\n"; ConvertToByteAndAddtoStream(strPDFMessage); } } strPDFMessage = "ET\n"; ConvertToByteAndAddtoStream(strPDFMessage); streamEnd = mPDF.Length; streamLen = streamEnd - streamStart; strPDFMessage = "endstream\nendobj\n"; ConvertToByteAndAddtoStream(strPDFMessage); //PDF文档的版本信息 xRefs.Add(mPDF.Length); strPDFMessage = "2 0 obj\n" + streamLen + "\nendobj\n"; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage = "3 0 obj\n < </Type/Page/Parent 4 0 R/Contents 1 0 R>>\nendobj\n"; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage = "4 0 obj\n < </Type /Pages /Count 1\n"; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = "/Kids[\n3 0 R\n]\n"; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = "/Resources < </ProcSet[/PDF/Text]/Font < </F0 5 0 R>> >>\n"; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = "/MediaBox [ 0 0 " + pageWidth + " " + pageDepth + " ]\n>>\nendobj\n"; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage = "5 0 obj\n < </Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>\nendobj\n"; ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length); strPDFMessage = "6 0 obj\n < </Type/Catalog/Pages 4 0 R>>\nendobj\n"; ConvertToByteAndAddtoStream(strPDFMessage); streamStart = mPDF.Length; strPDFMessage = "xref\n0 7\n0000000000 65535 f \n"; for (int i = 0; i < xRefs.Count; i++) { strPDFMessage += xRefFormatting((long)xRefs[i]) + " 00000 n \n"; } ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = "trailer\n < <\n/Size " + (xRefs.Count + 1) + "\n/Root 6 0 R\n>>\n"; ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = "startxref\n" + streamStart + "\n%%EOF\n"; ConvertToByteAndAddtoStream(strPDFMessage); mPDF.WriteTo(pPDF.BaseStream); //System.Web.HttpContext.Current.Response.Write(pPDF.BaseStream); mPDF.Close(); pPDF.Close(); } }} http://topic.csdn.net/u/20110211/00/ECB05A36-F7F0-40F8-B3B7-DC12CDAE4F64.html不用FlexPaper应该很痛苦。。 这个可以把pdf转成swf格式吗? 好像有個 activeswf.professional,查找看看 print2flash 服务器端要装下 有没有不用安装就能转换的方法,因为我用flashpaper安装iis上的时候只能转换doc,jpg格式的文件,xls和docx格式的都转不了,困扰啊 我遇到了和你同样的问题。。 将程序发布到iis上的时候,部分格式无法转换,而且还会出现进程无法杀死的问题。在Web环境下执行exe还是比较烦的, 不仅要安装额外的工具, 还要提供很高的访问权限。这是我之前的帖,但是问题没有根本解决 。你可以参考一下Link activeswf.professional 是SDK 其实还有别的工具可以实现的。不止flashpaper 用到工具就会涉及到iis部署的权限问题,这个大家是怎么看的? 在apache下,我使用flashpaper,还没发现转不了的吧.可打印就可以转,不知道iis什么情况.权限确实是个大问题.iis下尤其严重.不过怎么得都得转换,不然实现不了. 谁用过PowerTalkBox 在线客服?请教个问题 转换HTML危险字符的方法 vs05中,web测试问题 显示网页当前位置的那种导航条是怎么做的? 问个数据库提取问题,是SQL语句的问题 winxpPro系统安装.netframework后iis5.1出错 ???如何根据堆栈跟踪找出错误的具体内容阿??? .net安装问题,不能正确显示Server Controls. FormView控件更新的问题 显示页面跳转,在数据库中查找所需的记录?ASP.NET--SQL Server2005 从数据库一次性读出10万条数据,如何提高效率! 求通用新闻采集系统原码及思路重点
using System.IO;
using System.Text;
using System.Collections;
using System.Data;namespace cofcms.Common
{
/// <summary>
/// 导出PDF
/// </summary>
public class PDFGenerator
{
static float pageWidth = 594.0f;
static float pageDepth = 828.0f;
static float pageMargin = 30.0f;
static float fontSize = 20.0f;
static float leadSize = 10.0f;
static StreamWriter pPDF = new StreamWriter("E:\\myPDF.pdf");
static MemoryStream mPDF = new MemoryStream();
private void ConvertToByteAndAddtoStream(string strMsg)
{
Byte[] buffer = null;
buffer = ASCIIEncoding.ASCII.GetBytes(strMsg);
mPDF.Write(buffer, 0, buffer.Length);
buffer = null;
} private string xRefFormatting(long xValue)
{
string strMsg = xValue.ToString();
int iLen = strMsg.Length;
if (iLen < 10)
{
StringBuilder s = new StringBuilder();
int i = 10 - iLen;
s.Append('0', i);
strMsg = s.ToString() + strMsg;
}
return strMsg;
} public void ExportPdf(DataTable dt)
{
ArrayList xRefs = new ArrayList();
//Byte[] buffer=null;
float yPos = 0f;
long streamStart = 0;
long streamEnd = 0;
long streamLen = 0;
string strPDFMessage = null;
//PDF文档头信息
strPDFMessage = "%PDF-1.1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage = "1 0 obj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage = " < < /Length 2 0 R >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage = "stream\n";
ConvertToByteAndAddtoStream(strPDFMessage);
////////PDF文档描述
streamStart = mPDF.Length;
//字体
strPDFMessage = "BT\n/F0 " + fontSize + " Tf\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档实体高度
yPos = pageDepth - pageMargin;
strPDFMessage = pageMargin + " " + yPos + " Td\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage = leadSize + " TL\n";
ConvertToByteAndAddtoStream(strPDFMessage); //实体内容
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
strPDFMessage = "(" + dt.Rows[i][j].ToString() + ")Tj\n" + "\n";
ConvertToByteAndAddtoStream(strPDFMessage);
}
}
strPDFMessage = "ET\n";
ConvertToByteAndAddtoStream(strPDFMessage);
streamEnd = mPDF.Length; streamLen = streamEnd - streamStart;
strPDFMessage = "endstream\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档的版本信息
xRefs.Add(mPDF.Length);
strPDFMessage = "2 0 obj\n" + streamLen + "\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length);
strPDFMessage = "3 0 obj\n < </Type/Page/Parent 4 0 R/Contents 1 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length);
strPDFMessage = "4 0 obj\n < </Type /Pages /Count 1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage = "/Kids[\n3 0 R\n]\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage = "/Resources < </ProcSet[/PDF/Text]/Font < </F0 5 0 R>> >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage = "/MediaBox [ 0 0 " + pageWidth + " " + pageDepth + " ]\n>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length);
strPDFMessage = "5 0 obj\n < </Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage); xRefs.Add(mPDF.Length);
strPDFMessage = "6 0 obj\n < </Type/Catalog/Pages 4 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage); streamStart = mPDF.Length;
strPDFMessage = "xref\n0 7\n0000000000 65535 f \n";
for (int i = 0; i < xRefs.Count; i++)
{
strPDFMessage += xRefFormatting((long)xRefs[i]) + " 00000 n \n";
}
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage = "trailer\n < <\n/Size " + (xRefs.Count + 1) + "\n/Root 6 0 R\n>>\n";
ConvertToByteAndAddtoStream(strPDFMessage); strPDFMessage = "startxref\n" + streamStart + "\n%%EOF\n";
ConvertToByteAndAddtoStream(strPDFMessage);
mPDF.WriteTo(pPDF.BaseStream);
//System.Web.HttpContext.Current.Response.Write(pPDF.BaseStream);
mPDF.Close();
pPDF.Close();
} }
}
服务器端要装下
这是我之前的帖,但是问题没有根本解决 。
你可以参考一下Link
activeswf.professional 是SDK
可打印就可以转,不知道iis什么情况.
权限确实是个大问题.iis下尤其严重.
不过怎么得都得转换,不然实现不了.