ASP.NET对WEORD如何进行操作

作者&投稿:郅定 (若有异议请与网页底部的电邮联系)
关于asp.net 对pdf的操作...谢谢~

using System;
using System.IO;
using System.Text;
using System.Collections;

namespace PDFGenerator
{

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();

static void ConvertToByteAndAddtoStream(string strMsg)
{
Byte[] buffer=null;
buffer=ASCIIEncoding.ASCII.GetBytes(strMsg);
mPDF.Write(buffer,0,buffer.Length);
buffer=null;
}

static 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;
}

static void Main(string[] args)
{
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
";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="1 0 obj
";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage=">
";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="stream
";
ConvertToByteAndAddtoStream(strPDFMessage);
////////PDF文档描述
streamStart=mPDF.Length;
//字体
strPDFMessage="BT
/F0 " + fontSize +" Tf
";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档实体高度
yPos = pageDepth - pageMargin;
strPDFMessage=pageMargin + " " + yPos +" Td
" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= leadSize+" TL
" ;
ConvertToByteAndAddtoStream(strPDFMessage);

//实体内容
strPDFMessage= "(http://www.wenhui.org)Tj
" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= "ET
";
ConvertToByteAndAddtoStream(strPDFMessage);
streamEnd=mPDF.Length;

streamLen=streamEnd-streamStart;
strPDFMessage= "endstream
endobj
";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档的版本信息
xRefs.Add(mPDF.Length);
strPDFMessage="2 0 obj
"+ streamLen + "
endobj
";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="3 0 obj
>
endobj
";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="4 0 obj
<</Type /Pages /Count 1
";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Kids[
3 0 R
]
";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Resources> >>
";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ]
>>
endobj
";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="5 0 obj
>
endobj
";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="6 0 obj
>
endobj
";
ConvertToByteAndAddtoStream(strPDFMessage);

streamStart=mPDF.Length;
strPDFMessage="xref
0 7
0000000000 65535 f
";
for(int i=0;i<xRefs.Count;i++)
{
strPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n
";
}
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="trailer
>
";
ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="startxref
" + streamStart+"
%%EOF
";
ConvertToByteAndAddtoStream(strPDFMessage);
mPDF.WriteTo(pPDF.BaseStream);

mPDF.Close();
pPDF.Close();
}
}

另外:C#中生成PDF文件的方法挺多,可以使用iTextSharp控件,还有aspose的控件也可以。这些控件的功能都很强大,所以控件的大小也会很大

webconfig中



数据层 读取字符串

string connStr = ConfigurationManager.ConnectionStrings["字符串名称"].ConnectionString;
截取

哥们 这种代码在asp.net的后台代码里运行问题多多哦:
1. 因为word是单机交互式程序,所以你必须给你的IIS进程模拟成administrator拥有桌面交互权的程序,好像在配置文件里要加个impersonate
否则你的代码运行不了。
2. 即使可以运行了,服务器端word自动化也会大量消耗服务器的内存等资源,运行缓慢,还经常会出现word死进程。微软官方文章声明不建议这样编程。
3. 你给IIS配置的帐号密码暴露在config文件里好像也不太安全

建议直接使用SOAOffice这个中间件产品,在网页里可以直接显示word文件,甚至还可以在线编辑保存、动态生成word报告等等

可以在项目中直接加入命名空间,引用office对象,对“对象”进行操作,关于存储可以以流形式进行保存,不过我在大型项目开发时,一般使用第三方组件,如C 1,直接支持office对象方法及属性操作!


东方神起
WE I TE PLAYING 。 喜欢的歌手:U YENG JIN(就是SM的歌手。也常写歌)KANG TA 。后街男孩。 ...2004年12月04日 获2004 M.net KM Music Video Festival 新人组合,最佳音乐录影带奖 2004年12月09日...080101 TBS_CountdownTV SP_Premier Live 07-08 Forever Love 080101 TBS_CountdownTV SP_Premier ...

英读廊——电梯里收不到手机信号有什么高大上的解释?
【单词】electromagnetic [ih-lek-troh-mag-'net-ik][ɪˌlektrəʊmæɡ'netɪk] adj. 电磁的 【单词】waves 原型:wave [weyv][weɪv] n. 波浪;波纹;波 【单词】passing 原型:pass [pas, pahs][pɑːs] v. 通过;经过;传递 it works kind of like an umbrella works for rain. ...

谁可以把corelDRAW和CAD与3DMAX的所有快捷键给我
这个是全部了..好好珍藏 这里列出PhotoShop中的绝大多数常用快捷键,希望会给经常使用PhotoShop的朋友带来方便。取消当前命令:Esc;工具选项板:Enter;选项板调整:Shift+Tab;退出系统:Ctrl+Q;获取帮助:F1;剪切选择区:F2 \/ Ctrl+X;拷贝选择区:F3 \/ Ctrl+C;粘贴选择区:F4 \/ Ctrl+V;...

一台6000千元的台式电脑的配置?(平面设计用的!)
CPU: AMD SP2500+(盒) 590 \/ AMD Sempron 2800+ (64Bit) 630元 主板: 映泰TForce 6100 650 ...nVIDIA nForce4芯片的主板对CPU的支持更强大,超频能力亦强,如果喜欢稳定不超频或小超频的用户,可以考虑...http:\/\/www.westd.net\/news\/diy_list.php 硬件报价: http:\/\/www.itbjs.com\/v4price.html?kind...

急.我的卡巴斯基杀毒软件的使用期限快到了,谁能帮我延长啊?谢了_百度...
http:\/\/c.dx114.net\/soft\/0926\/kbsj.rar 去下吧'KZ6RX-RW67R-7UFEK-CWPA5''WGQYT-2RBEW-MU4FZ-BGY9Y''9VF5D-N5KZQ-NHQYU-JTU74''X...'EPCP9-UPSV1-QZPY7-WX6SP''WUSCR-A3A5P-TMYXJ-BXPDS''FKA4S-BSBB4-RPWE4-BH7V6''99X71-BZMJ8-NWPRE-YECHC''86T8H-AJCD7-E9HSM-YG...

想知道这首歌的信息。
We’ll sail on Spirit Lake,Me, my pappy, and his lemonade Tim and Tina were my parents’ names They got engaged they were inflamed Seduced by the lie of butterflies How they shimmer, how they glimmer Those butterflies We seven kids, we almost died Nearly put to death But ...

我想要几则十分搞笑的英文笑话
"Are we poisonous?" the young snake asked his mother."Yes, dear," she replied - "Why do ..."Can you tell me what fish net is made, Ann?""A lot of little holes tied together with ...sp; 医生懂得多 how to get a seat by the fire a gentleman came to an inn on a very ...

expect是及物动词吗
[ɪkˈspɛkt]vb to regard as probable or likely; anticipate he expects to win to look forward to or be waiting for we expect good news today to decide that (something) is requisite or necessary; require the boss expects us to work late today See expecting 柯...

求牛津英语深圳版的初一下册英语单词(速度!!要具体)..
we \/wI;wi:\/ pron.我们 classmate \/5klA:smeIt\/ n.同学 how old \/«Ud\/ 多大,几岁 twelve \/twelv\/ n.十二 too \/tu:\/ adv.也 polite \/p«5laIt\/ adj.有礼貌的,客气的 and \/Qnd\/ conj.同,和,与 helpful \/5helpfl\/ adj.乐于助人的 big \/bIg\/ adj.块头大的;大的...

网球王子现有多少首主题曲
ED1:You got game?ED2:KEEP YOUR STYLE ED3:walk on ED4:WHITE LINE ED5:风の旅人 ED6:SAKURA ED7:Wonderful Days ED8:LITTLE SKY ED9:ハロー&グッバイ ED10:不条理 ED11:サンキュー!!OP1:future OP2:Driving Myself op3:Make You Free OP4:Long Way op5:FLY HIGH op6...

青山区19133825669: asp.net怎样操作word -
卷雨裕力: 操作WORD配置说明 引入:Word的对象库文件“MSWORD.OLB”(word2000为MSWORD9.OLB) 1.运行Dcomcnfg.exe 2.组件服务――计算机――我的电脑――DCOM配置――找到microsoftword文档 3.点击属性 4.选择“安全性” 5.选定“使用...

青山区19133825669: Word2003表格中如何添加和删除行和列? -
卷雨裕力: 在Word中制作表格完成以后,可能有些地方我们会感觉到不满意,这个时候我们可以删除Word表格中不满的行或列,或者是添加行列. Word中删除表格中的行和列: 进入菜单栏中的“表格”,然后选择“删除”中的“列”或者是“行”.当然,你也可以使用“表格与边框”工具栏中的“删除列”、“删除行”按钮来删除. Word表格中添加行、列: 点击菜单栏上的“表格”,然后根据需要选择“插入”项下的“列(在左侧)”或“列(在右侧)”或者插入“行(在上方)”或“行(在下方)”子命令,来完成添加行和列的方法. 按照上述方法,可以完成对Word中的表格进行添加或删除行和列.下面让就让我们一起来看看下列GIF动画演示吧!

青山区19133825669: asp.net 怎么生成wrod文挡
卷雨裕力: Microsoft.Office.Interop.Word 用这个类 如果.net里没有这个类,要到微软网站上去下载 object nothing=Missing.Value; Microsoft.Office.Interop.Word._Application wordapp=new Microsoft.Office.Interop.Word.ApplicationClass(); Microsoft.Office....

青山区19133825669: Asp.net读取Word -
卷雨裕力: 楼上说的都是利用word自动化技术做的,这种代码在asp.net的后台代码里运行问题多多哦:1. 因为word是单机交互式程序,所以你必须给你的IIS进程模拟成administrator拥有桌面交互权的程序,好像在配置文件里要加个impersonate 否则你的代码运行不了.2. 即使可以运行了,服务器端word自动化也会大量消耗服务器的内存等资源,运行缓慢,还经常会出现word死进程.微软官方文章声明不建议这样编程.3. 你给IIS配置的帐号密码暴露在config文件里好像也不太安全 建议直接使用SOAOffice这个中间件产品,在网页里可以直接显示word文件,甚至还可以在线编辑保存、动态生成word报告等等

青山区19133825669: asp.net在网页上显示Word文档类型的二进制字节数组流byte[] -
卷雨裕力: 1. 从数据库中取出byte[]字节流内容2. 将byte[]字节流解码 string wordString=Encoding.UTF8.GetStrings(byte[]);3. 将wordString显示在html页面就行啦.

青山区19133825669: ASP读取word文档里的全部信息 -
卷雨裕力: 一般的作法(讨论的是ASP+ACCESS环境下,服务器端):把内容做到ACCESS数据表备注字段中,用ASP把它读出来,成为我们看到的网页内容. 楼主想的可能是客户端,不太容易做到.

青山区19133825669: asp.net 如何调用客户端word程序打开服务器上的word文档进行查看 -
卷雨裕力: 做一个超连接,链接地址直接指向服务器上的word就可以了,这样客户端点击这个连接的时候会跳出一个窗口提示保存,打开.

青山区19133825669: asp.net 操作word时候进程不会关掉 -
卷雨裕力: asp.net操作word的确是有时候会有这种情况,所以建议你在操作的最后加上GC.Collage();强制回收空间,同时for循环遍历进程,kill掉winword.exe这个进程.

青山区19133825669: 求ASP.NET的Hello World -
卷雨裕力: 新建ASP.NET网站,新建ASPX文件,在CS页面写 protected void Page_Load(object sender, EventArgs e) { Response.Write("Hello World"); }

青山区19133825669: asp中怎么插入像word一样的文本编辑器? -
卷雨裕力: 如果,你要调用系统的话,要用API编程. 不过,文本编辑器,网上很多,现成的,直接调用就行了. 用得最多的是eWebEditor 下载地址:http://down.china-code.net/1/20/2357/cc5bwahe.html

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网