Subscribe: 博客园-RubyPdf 的中文博客
http://hardrock.cnblogs.com/rss.aspx
Added By: Feedage Forager Feedage Grade B rated
Language: Chinese simplified
Tags:
archive  cnblogs hardrock  cnblogs  col  current response  data  hardrock archive  hardrock  httpcontext current  rubypdf  sqlite 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: 博客园-RubyPdf 的中文博客

博客园_RubyPdf 的中文博客



专注PDF技术



Updated: 2014-03-24T01:30:10Z

 



content-disposition attachment filename 在Firefox和IE中得到不同的结果 - RubyPDF

2009-09-30T00:18:00Z

在Firefox中需要把filename 用双引号包起来,才能得到想要的名字,不然如果含有空格,会丢掉空格后面的部分。而IE会把空格转为_,因此也需要HttpUtility.UrlPathEncode方法处理下名字。如果Firefox中也用HttpUtility.UrlPathEncode处理名字,空格将被替换成"%20".[代码]Firefox does not handle filenames...在Firefox中需要把filename 用双引号包起来,才能得到想要的名字,不然如果含有空格,会丢掉空格后面的部分。而IE会把空格转为_,因此也需要HttpUtility.UrlPathEncode方法处理下名字。如果Firefox中也用HttpUtility.UrlPathEncode处理名字,空格将被替换成"%20". 1            HttpContext.Current.Response.Buffer = true; 2            HttpContext.Current.Response.ClearContent(); 3            HttpContext.Current.Response.ClearHeaders(); 4            HttpContext.Current.Response.ContentType = "Application/pdf"; 5            string doc1 = System.IO.Path.GetFileNameWithoutExtension(doc) + "_" + intNewID.ToString() + ".pdf"; 6             7            if(HttpContext.Current.Request.Browser.Browser != "IE") 8                HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" +doc1+"\""); 9            else10            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename="+ HttpUtility.UrlPathEncode( doc1));11            byte[] buffer=System.IO.File.ReadAllBytes(doc);12            HttpContext.Current.Response.AddHeader("Content-Length", buffer.Length.ToString());13            HttpContext.Current.Response.BinaryWrite(buffer);Firefox does not handle filenames with spaces . When a user clicks on an attachment with spaces, the filename is truncated to the first whitespace. While IE & Safari both handle this, Firefox refuses to accept mime headers with unquoted filename parameters. According to Firefox's bugzilla/knowledgebase, Firefox's behavior is the correct behavior and it's a problem with most webservers or web applications. This problem can be easily corrected by surrounding the filename parameter with double quotes.本文链接:http://www.cnblogs.com/hardrock/archive/2009/09/30/1576709.html,转载请注明。[...]



Google Voice开始发送邀请函 - RubyPDF

2009-06-27T06:24:00Z

今天收到了Google Voice的邀请函,标题为“You've been invited to Google Voice”。最近关于Google Voice 的新闻不少,出于好奇登录http://www.google.com/voice 递交了申请,没有想到这么快得到了邀请函。邮件特别强调“ Please note that Google Voice is o...

今天收到了Google Voice的邀请函,标题为“You've been invited to Google Voice”。

最近关于Google Voice 的新闻不少,出于好奇登录http://www.google.com/voice 递交了申请,没有想到这么快得到了邀请函。

邮件特别强调“ Please note that Google Voice is only available for sign up in the US.”(请注意,Google Voice 只能在美国申请)。

点击邮件提供的链接,按照提示逐步申请,可以根据自己喜好选择电话号码。需要注意的是你需要一个美国电话号码来激活Google Voice,这可怎么办? 还好我很久之前就知道可以通过申请Gizmo5 来获得一个美国电话号码,然后利用这个号码来激活Google Voice(当然那时还叫GrandCentra)。

另外Google Voice在twitter也有自己的帐号, http://twitter.com/googlevoice, 可以到那里了解最新动态。

(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2009/06/27/1512240.html,转载请注明。




ASP.NET空间使用SQLite遇到的麻烦 - RubyPDF

2009-03-12T15:57:00Z

曾经在自己的ASP.NET空间上安装过一个基于SQLite的开源CMS-Eucalypto ,很顺利。 这次客户的系统,由于客户端的数据库使用了SQLite,客户希望把整理好的数据放到网上方便各offer查询,因为只保留3个月的数据,而且只提供查询功能,SQLi...

     曾经在自己的ASP.NET空间上安装过一个基于SQLite的开源CMS-Eucalypto ,很顺利。     

     这次客户的系统,由于客户端的数据库使用了SQLite,客户希望把整理好的数据放到网上方便各offer查询,因为只保留3个月的数据,而且只提供查询功能,SQLite应该够用,而且这样我不用再做太多修改了。客户购买的是Godaddy的ASP.NET hosting, 上传后遇到麻烦了,

Parser Error Message: Could not load file or assembly ‘System.Data.SQLite, Version=1.0.51.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139′ or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0×80131417)

      一开始没有反应过来,跑到网上搜索答案,原来是System.Data.SQlite是对dynamic library sqlite.dll的封装,出于安全考虑Godday只允许使用manged code library。 很无奈,我还是得考虑使用别的数据库了。

      网上很多资料对SQLite的评价很高,尤其是和MS Access对比,这次却遇到了个大麻烦,几乎所有的ASP或者ASP.NEThosting都支持MS Access,但SQLite呢?

      不过网上也有一个managed code version SQLite.dll--ManagedSQLite,也许必须在ASP.NET hosting使用SQLite的朋友可以尝试下,由于时间的关系,暂时还没有做过测试。

      这里顺便扯点题外话,在.net商业组件领域有个名气很响的外国企业(老板是中国人,开发团队也在中国)的一个组件中的某几个功能的实现就用到了基于GPL协议和商业协议(价格很贵)的exe程序改的dynamic library(有些拗口),但却说是100% managed library, 而且刻意对那个非.net library进行了伪装,我曾经和他们的管理人员聊过这个话题,他们对我警惕性很高,怀疑我是敌方派来的,我无意揭发他们,只是提他们担心纸能否保住火。


(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2009/03/12/1410101.html,转载请注明。




PDF数字签名免安装版本发布-Portable PDF Digital Signature(Portable PDF Signer) - RubyPDF

2009-03-04T10:31:00Z

Portable PDF Signer是一款实现PDF文档数字签名功能的免费绿色软件。主要特色如下: 实现Adobe Acrobat 的数字签名功能,但不需要Adobe Acrobat; 免费软件(Free Soft); 免安装软件(Portable Software,绿色软件,不修改注册表),因此你可以把它放在你的移动硬盘上。 使用.NET开发,但不需要.net Framework(MS或者MO...

Portable PDF Signer一款实现PDF文档数字签名功能的免费绿色软件。

主要特色如下: 

  • 实现Adobe Acrobat 的数字签名功能,但不需要Adobe Acrobat;
  • 免费软件(Free Soft);
  • 免安装软件(Portable Software,绿色软件,不修改注册表),因此你可以把它放在你的移动硬盘上。
  • 使用.NET开发,但不需要.net Framework(MS或者MONO);
  • 使用了MONO的静态编译(Static compilation)技术;
  • 支持对一个PDF进行多重签名mulitply signature);

感兴趣的可以到RubyPdf Software下载。

P.S.
择日会发布一个支持时间戳数字签名PDF 时间戳数字签名(姑且叫它PDF Timestamp signer)软件,这是我2007年完成的一个小项目,详情请看:

Digital Signature and Timestamp to PDF Documents with iTextSharp

(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2009/03/04/1403291.html,转载请注明。




Dreamhost 开始提供免费空间了 - RubyPDF

2009-02-15T12:58:00Z

当然是支持PHP+MySql的。支持使用自己的域名和Dreamhost的二级域名。有兴趣的可以到http://www.dreamhostapps.com/申请。我有自己付费空间,所以没有尝试这个空间。支持One Click式安装的程序有: WordPress Drupal ZenPhoto phpBB MediaWiki

当然是支持PHP+MySql的。支持使用自己的域名和Dreamhost的二级域名。

有兴趣的可以到http://www.dreamhostapps.com/申请。我有自己付费空间,所以没有尝试这个空间。

支持One Click式安装的程序有:

  • WordPress
  • Drupal
  • ZenPhoto
  • phpBB
  • MediaWiki

(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2009/02/15/1391087.html,转载请注明。




SQLite Manager - RubyPDF

2009-02-15T12:45:00Z

SQLite Manager 是一个开源的SQLite管理工具,可以作为firefox, thunderbird, sunbird, seamonkey, songbird, komodo, flock等的插件,也可以作为独立程序(XULRunner application)。Features dialogs for creation, deletion of tables, index...

SQLite Manager 是一个开源的SQLite管理工具,可以作为firefox, thunderbird, sunbird, seamonkey, songbird, komodo, flock等的插件,也可以作为独立程序(XULRunner application)。

Features


(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2009/02/15/1391084.html,转载请注明。




Sqlite使用中的几点体会。 - RubyPDF

2009-02-15T12:34:00Z

最近接了个美国的小项目,主要需求是把盘点机导出的数据(DBF格式)和另外的数据(csv格式)合并生成新的数据表,方便查询纠错。对方没有安装ms Access,考虑到对方使用方便,就采用了sqlite,开发语言使用.net 2.0。 下面简单罗列下用过程中的几点体会。Provider:通过使用其他开源软件的体会和网上搜索,Provider决定使用System.Data.SQLite。 事务...最近接了个美国的小项目,主要需求是把盘点机导出的数据(DBF格式)和另外的数据(csv格式)合并生成新的数据表,方便查询纠错。对方没有安装ms Access,考虑到对方使用方便,就采用了sqlite,开发语言使用.net 2.0。 下面简单罗列下用过程中的几点体会。Provider:通过使用其他开源软件的体会和网上搜索,Provider决定使用System.Data.SQLite。 事务(DbTransaction):因为涉及数据导入合并,批量插入和更新等工作是必须的了,一开始没有显式调用事务,速度别提多慢,于是想当然觉得sqlite速度比access还慢,后来搜索发现,原来SQLite 缺省为每个操作启动一个事务,其实这是数据库操作的基本常识,不仅仅Sqlite需要注意这些,当然Access等不支持事务的不在此列。索引(index):数据导入合并,插入和更新时都需要查询数据是否有重复以及存在,所以索引是不可以缺少的。SQLiteParameter:批量插入的时候,为了省懒事,使用string.format来格式化插入,结果碰到“near "s": syntex error.”,经过跟踪,原来是单引号(')的问题,看来还是乖乖使用SQLiteParameter来规范地导入,并可以避免很多字符上的问题。Update ...From(Cross Join in Update):Sqlite 不支持类似“UPDATE tbl1 SET col2 = tbl2.col2 FROM table1 tbl1 INNER JOIN table2 tbl2 ON tbl1.col1 = tbl2.col1”的update,替代的解决办法是:UPDATE table1 SET col2 = (select col2 from table2 where table2.col1=table1.col1 limit 1)where exists(select * from table2 where table2.col1=table1.col1); 查询分析器:我选择SQLite Administrator,后来发现Firefox的插件(addons) Sqlite Manager也是不错的选择。下面顺便列些和DotNet开发的和SQLite有关的项目:Convert SQL Server DB to SQLite DB:C# utility to automatically do the conversion from SQL Server DB to SQLite DB(一个把ms SQL Server数据库自动转为SQLite DB的工具,包括源代码)。 SQLite Membership, Role, and Profile Providers:Complete,production-ready Membership, Role, and Profile providers for SQLite.Includes instructions for migrating data between SQL Server and SQLite.本文链接:http://www.cnblogs.com/hardrock/archive/2009/02/15/1391079.html,转载请注明。[...]



Thinkpad T60 Fan Error及重新启动windows后画面静止 - RubyPDF

2009-02-15T10:16:00Z

使用了2年的T60(2007-D64)上星期四罢工了,开机风扇噪音非常大,然后没有声音,屏幕显示”Fan error“,尝试几次都无法成功启动。QQ上咨询卖水货笔记本的,说风扇坏了,要换,400元,这么贵? 心疼400大洋,加上网上搜索说这种问题一般是风扇缺油,决定自己动手试下。楼下修车师傅要了些清...

     使用了2年的T60(2007-D64)上星期四罢工了,开机风扇噪音非常大,然后没有声音,屏幕显示”Fan error“,尝试几次都无法成功启动。QQ上咨询卖水货笔记本的,说风扇坏了,要换,400元,这么贵?

    心疼400大洋,加上网上搜索说这种问题一般是风扇缺油,决定自己动手试下。楼下修车师傅要了些清洁的机油,第一次拆笔记本,找来图解教程按照图片一步步操作,顺利拆下风扇,清理干净,放了2滴机油,安装上去,开机,连以前经常听到的有些吵的风扇的声音都没有了,真安静,看到了开机画面(鄙视奸商)。

    接下来的另外一个问题有出现了,因为我一直使用休眠模式,当看到重新启动windows时,进度条没有了任何动作,尝试几次无效;想这下系统没有希望了,可又不像重新安装系统,继续找解决办法。

    印象中休眠模式会保存一个系统文件,网上确认下叫”hiberfil.sys“(hibernate file)的隐藏文件,使用超级Dos启动盘,发现的确有这么个文件,几经折腾(超级DOS启动盘下似乎那隐藏文件没有办法,把硬盘拔下来当移动硬盘挂到另外的电脑上),把那个文件的名字改掉,重新启动,这次是全新启动Windows XP,成功了。

    心得:提防奸商;自动动手,笔记本维修也没有那么难;碰到系统问题不要总想着重装,因为那太浪费时间,还把自己熟悉的环境给改了。

(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2009/02/15/1391021.html,转载请注明。




PdfCrypt 1.0 for Windows 发布 - RubyPDF

2008-11-19T02:29:00Z

PdfCrypt 是一个免费的命令行模式的PDF 加密和解密(PDF Encrypt/Decrypt)软件,支持48 bits, 128 bits 和AES-128加密以及解密。更多信息请访问 PdfCrypt - Another Free Pdf Encrypt and Decrypt Software配合PdfCrack, 可以去除Owner Password 加密的PDFPdfCrypt 可...

PdfCrypt 是一个免费的命令行模式的PDF 加密和解密(PDF Encrypt/Decrypt)软件,支持48 bits, 128 bits 和AES-128加密以及解密。

更多信息请访问 PdfCrypt - Another Free Pdf Encrypt and Decrypt Software

配合PdfCrack, 可以去除Owner Password 加密的PDF

PdfCrypt 可以去除User Password加密的PDF而不需要知道User Password


目前已知问题,不支持中文路径,这个会在下一个版本中实现中文路径的支持。

(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2008/11/19/1336456.html,转载请注明。




XMP Remover:批量删除PDF 文档的XMP data - RubyPDF

2008-10-21T02:08:00Z

Adobe XMP(可扩展元数据平台,Adobe's Extensible Metadata Platform)是一种标签技术,可以帮助用户将文件信息(元数据)添加到以 PNG、GIF、JPEG、Photoshop、TIFF 和PDF等格式保存的文件中。XMP 为 Adobe 应用程序间的元数据交换提供了便利。例如,用户可以将一个文件中的元数据另存为模板,然后将元数据导入到其它文件中。 主要用于工作流中重要信息的传递工作。

应客户的要求,利用Acrobat API写了一个批量删除PDF 文档中XMP的小工具。

Acrobat 支持删除XMP信息,但必须一个节点一个节点删除,一个文件一个文件删除,非常麻烦,利用XMP Remover可以可以快速删除指定目录下所有PDF 文档的XMP信息。

P.S.

Adobe XMP(可扩展元数据平台,Adobe's Extensible Metadata Platform)是一种标签技术,可以帮助用户将文件信息(元数据)添加到以 PNG、GIF、JPEG、Photoshop、TIFF 和PDF等格式保存的文件中。XMP 为 Adobe 应用程序间的元数据交换提供了便利。例如,用户可以将一个文件中的元数据另存为模板,然后将元数据导入到其它文件中。 主要用于工作流中重要信息的传递工作。

Adobe's Extensible Metadata Platform (XMP) is a labeling technologythat allows you to embed data about a file, known as metadata, into thefile itself. With XMP, desktop applications and back-end publishingsystems gain a common method for capturing, sharing, and leveragingthis valuable metadata — opening the door for more efficient jobprocessing, workflow automation, and rights management, among manyother possibilities. With XMP, Adobe has taken the "heavy lifting" outof metadata integration, offering content creators an easy way to embedmeaningful information about their projects and providing industrypartners with standards-based building blocks to develop optimizedworkflow solutions. 

(image)

本文链接:http://www.cnblogs.com/hardrock/archive/2008/10/21/1315664.html,转载请注明。