如果大家用过 SharePoint Portal Server 2001,一定会记得增加型文件夹中的一些很不错的特性,如文档检出/检入、发布、审批流程等,其中最吸引我的就是它通过在文档的图标上加一个特别的标记,来表示文档的状态,如下图所示:
自己在做文档管理系统时,也借鉴了这种做法,其实和给图片加水印的作法类似,主要代码如下:
function codedisplay()
{
if(document.all(“code”).style.display == “none”)
{
document.all(“code”).style.display = “”;
document.all(“codeop”).innerText = “Hide Code>>”;
}
else
{
document.all(“code”).style.display = “none”;
document.all(“codeop”).innerText = “Show Code>>”;
}
}
//取源图像
Image imgPhoto = Image.FromFile(sSourceFile);
Bitmap bmPhoto = new Bitmap(imgPhoto.Width, imgPhoto.Height, PixelFormat.Format24bppRgb);
bmPhoto.MakeTransparent();
//设置绘图面属性,呈现质量等
Graphics grPhoto = Graphics.FromImage(bmPhoto);
grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
grPhoto.DrawImage( imgPhoto, new Rectangle(0, 0, imgPhoto.Width, imgPhoto.Height), 0, 0, imgPhoto.Width, mgPhoto.Height, GraphicsUnit.Pixel);
//打开要附加的水印图片
Image imgWatermark = new Bitmap(sWatermarkFile);
Bitmap bmWatermark = new Bitmap(bmPhoto);
bmWatermark.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);
Graphics grWatermark = Graphics.FromImage(bmWatermark);
int xPosOfWm = imgPhoto.Width – imgWatermark.Width;
int yPosOfWm = imgPhoto.Height – imgWatermark.Height;
//画
grWatermark.DrawImage(imgWatermark,
new Rectangle(xPosOfWm,yPosOfWm,imgWatermark.Width,imgWatermark.Height),
0,
0,
imgWatermark.Width,
imgWatermark.Height,
GraphicsUnit.Pixel);
//保存最终图片
imgPhoto = bmWatermark;
imgPhoto.Save(sIconFileName,ImageFormat.Png);
如果文档有审阅流程,那文档的流转图就非常受欢迎了,这样用户可以方便地查看文档正处于那个阶段。
其实与工作流有关软件可能都有这样要求,我目前没有找到更好的办法,利用 <table> ,将各个阶段
用线条和图形表示出来,办法虽有点笨,但好象显示效果还不错。
曾经试过 VML ,发现要动态地画这种图,就得很精确地控制屏幕上位置,比较麻烦,后来放弃了这种作法。
还曾经想用 Visio Automation 来试一下,发现 Visio 的对象模型和 VBA 比 Word 和 Excel 的难多了,工作量更大。
Cool! 原来你做图像叠加是干这个用…… 🙂
如果大家都像你似的发表随笔,我也没有必要要关闭20个博客了。
不知道SVG好用不
谢谢夸奖 🙂
我觉得在 blog 上其实也是可以问题的,但一定要有技巧,即首先要有你自己的观点,那怕不成熟。
等着大家给我的“经验”提意见,共同交流,共同提高。
SVG 其实和 VML 差不多,我的意见 🙂
而且需要浏览器安装其它插件(如 Acrobat SVG Viewer 等)支持,而 VML 是 IE 不用安装东西就可以支持的。
一觉刚睡醒 硬是把asp.net看成了access.net
然后心里琢磨了半天
svg有前途呀,vml是不是已经要死掉拉?
一个字,赞!
确实,现在已经很少有人再关注 VML 了,MSDN 中关于 VML 的资料都是两三年前的,一点儿都没有更新 。
不过,现在流行起来的一些 XUI 对 SVG 的影响也是很大的,将来还很难说 😛
我在我做的Workflow里曾经考虑过用SVG 来显示文档的流转状态,因为我们自己作了一个流程设计工具,各个状态的位置坐标我都有记录,而且我的流程定义是Xml格式的文本,理论上说。我只需要Xslt就可以把它转换成SVG。
不过后来还没有开始作这个,就离开了
两个问题:
下面那个流程图的箭头和线条都是已有图片?
也就是那个图是完全的HTML的了吗?
Thanks.
To: mmkk
是已有图片,本来是用 VML 画的,发现还不如用已有图片。
图是完全的 HTML ,是一个 <table> ,便于居中,对齐, VML 就不容易做 🙂
至少大家都知道moslem叫“李彦智”了。
还有选择, 如flash
不错不错,我正需要这方面的资料,谢谢了:)
李彦智,兄弟最近可好。
看了之后,脑子里蹦出一个问题,生成临时文件而又不删除会不会增加了人工维护(磁盘空间和权限等)的成本呢?
提出另外一个思路,使用response,直接将生成的图片“写”到<img>中,基本上在打开html后看到的应该是^DLKJHFDLSJA7之类的编码。
这个方法在asp时代就已经有很好的案例,asp.net使用gdi+和response对象(或者相关对象),应该能更好的实现。
这种方法还可以用来在报表中生成实时的生成饼图。
没有试过这种方法,但肯定是可行的。
To Samvel:直接将二进制流写到Reponse.OutStream中即可。
To 开心就好 : 更正一下,是Samuel.
😉
我正在开发这样的文档管理系统
能不能提供一个版本的系统源码给与参考啊?
带流程图和图片处理的程序~~
偶得信箱:[email protected]
多谢支持阿
我的朋友去年已经实现过用VML+Script生成工作流图形了
不知道这跟贴能不能被看见 ^_^。
就是有关WEB页的精确打印问题,既是用IE打印从服务器读来的数据,而且要对应到外部单据上。
请教:
用楼主方法能行吧:我把单据扫描成底图,再把数据一点点印上去,在服务器端生成图像,response到IE,然后IE打印那张图像。
可行否?
多谢!^_^
附:我想用ASP.NET的GDI+实现它。
我都不知你们在上面说些什么
有什么好的方法能拿出来处理上面的问题才是最好的
讲那么多没有一句切入正题
编译器错误信息: CS0117: “System.Web.UI.WebControls.Label”并不包含对“text”的定义
源错误:
行 6: void page_load()
行 7: {
行 8: text1.text="hello world!";
行 9: }
行 10: </script>
源文件: C:Documents and SettingsAdministratorMy DocumentsVisual Studio ProjectsHTMLPage1.aspx 行: 8
显示详细的编译器输出:
C:WINNTsystem32> "c:winntmicrosoft.netframeworkv1.1.4322csc.exe" /t:library /utf8output /R:"c:winntassemblygacsystem.enterpriseservices1.0.5000.0__b03f5f7f11d50a3asystem.enterpriseservices.dll" /R:"c:winntassemblygacsystem.data1.0.5000.0__b77a5c561934e089system.data.dll" /R:"c:winntassemblygacsystem.drawing1.0.5000.0__b03f5f7f11d50a3asystem.drawing.dll" /R:"c:winntassemblygacsystem.web.mobile1.0.5000.0__b03f5f7f11d50a3asystem.web.mobile.dll" /R:"c:winntassemblygacsystem.xml1.0.5000.0__b77a5c561934e089system.xml.dll" /R:"c:winntassemblygacsystem.web.services1.0.5000.0__b03f5f7f11d50a3asystem.web.services.dll" /R:"c:winntassemblygacsystem1.0.5000.0__b77a5c561934e089system.dll" /R:"c:winntassemblygacsystem.web1.0.5000.0__b03f5f7f11d50a3asystem.web.dll" /R:"c:winntmicrosoft.netframeworkv1.1.4322mscorlib.dll" /out:"C:WINNTMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Filesroot31059c34aa7ea0b0qlzoges8.dll" /debug- /optimize+ /warnaserror /w:1 "C:WINNTMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Filesroot31059c34aa7ea0b0qlzoges8.0.cs"
Microsoft (R) Visual C# .NET 编译器版本 7.10.3052.4
用于 Microsoft (R) .NET Framework 版本 1.1.4322
版权所有 (C) Microsoft Corporation 2001-2002。保留所有权利。
C:Documents and SettingsAdministratorMy DocumentsVisual Studio ProjectsHTMLPage1.aspx(8,9): error CS0117: “System.Web.UI.WebControls.Label”并不包含对“text”的定义
显示完整的编译源:
TO moslem: 能把你QQ告诉我吗?我的是 312781,看了你的随笔后我有些不明白的地方..希望能得到你的指点
楼主:请问你做的文档管理系统或流程设计模块出售么?我有兴趣,请与我联系:[email protected],谢谢!
楼主:请问你做的文档管理系统或流程设计模块出售么?我有兴趣,请与我联系:[email protected],谢谢!
果然强啊
我的web图形设计是使用svg来实现的,我也用VML做过,效果甚至比svg还好,但是文字处理的效果不好
我也有兴趣购买你的系统,请与我联系[email protected]
用vml完全可以的,我作过
这个应该很少用到吧
我们用.NET只能客户端模式实现,效果更好。 欢迎大家看看我们的工作流平台展示。
公司网站下载地址:
http://www.linjon.cn 在首页左边导航栏的软件下载进入。
FTP下载地址:
ftp://210.41.107.38 用户名与密码都是openlabftp 在linjon目录下有我公司产品资料。
邮箱下载地址:
[email protected] ,密码:JLKEngine
我们用.NET智能客户端技术与webservice技术实现,效果更好。 欢迎大家看看我们的工作流平台展示。
公司网站下载地址:
http://www.linjon.cn 在首页左边导航栏的软件下载进入。
FTP下载地址:
ftp://210.41.107.38 用户名与密码都是openlabftp 在linjon目录下有我公司产品资料。
邮箱下载地址:
[email protected] ,密码:JLKEngine
联系方式:028-85470042 ,1 3982071140
QQ:2 6326507
MSN:JLK [email protected]
E-Mail:[email protected]