技术细节

PDF格式文件和其他文件格式的互相转换

有很多很多种软件可以做到标题中的要求。这里只选择和推荐最简单的一种方式来介绍:使用Adobe Acrobat (不是Acrobat Reader)这款软件来实现文件格式的互换。推荐使用Adobe Acrobat 6.0以上版本。

1) 将其他格式的文件转换成PDF格式

有三种做法。

1.1) 把文档打印成PDF。这里以一个word文档"deminy.doc"为例。在Microsoft Word中打开"deminy.doc"文件,选择“文件->打印”,在弹出的打印窗口中选择打印机为"Adobe PDF",然后打印。这里"Adobe PDF"是一个虚拟的打印机,会把当前的文档"deminy.doc"打印成一个PDF文件。这是最好的选择,不会产生乱码。其它任何格式的文档操作都是类似的。例如在记事本中打开"deminy.txt",选择“文件->打印”操作……

1.2) 用"Acrobat Distiller"转换。安装Adobe Acrobat 专业版后一般会自动生成一个叫"Acrobat Distiller"的程序。从"开始->程序"中找到"Acrobat Distiller"这个程序,运行它。把你要转换的文档用鼠标托拽到"Acrobat Distiller"运行的窗口上面,会自动在文档所在目录下生成对应的pdf文件。

1.3) 用Adobe Acrobat内置的创建PDF功能。运行该软件后,按下"Ctrl+N",或者选择菜单"File->Create PDF->From File" (文件->创建PDF->从文件...),打开你要转换的那个文件,就自动生成对应的PDF了。如果你的文件包含中文,那么生成的PDF很可能包含乱码。

2) 将PDF格式转换成其他格式的文件

PDF文件具有较好的安全性。极少数PDF文件设定了很高的安全等级,是不允许被转换、打印的。这时候,可以用"PDF Password Remover"这款软件,去除掉该PDF文件的有关限制,然后执行下面的操作。

运行Adobe Acrobat 专业版后,打开PDF文件,然后按下"Shift+Ctrl+S"快捷键,或者选择菜单"File->Save As..." (文件->另存为...),选择保存格式为doc、jpg、html、txt等,然后保存。这种方法支持把PDF转换成Encapsulated PostScript格式、HTML格式、微软Word格式、文本格式、HTML网页格式、PNG或JPG图片格式、TIFF格式、XML格式、RTF格式等。这是首选方式。

3) 关于转换效果

我只能说在我测试过的同类软件中,还没有其它软件能够在这方面达到比Adobe Acrobat更好的效果。Adobe Acrobat 6.0及其后续产品的推出让很多PDF软件生产厂商苦不堪言。不过在将PDF格式转换成Word格式的时候,我一般会优先选用BCL Drake这款软件。

4) 题外话:想要PDF文件里面的一张图片

把PDF转换成HTML网页文件,然后到你所保存的网页所在文件夹,里面会有个和你保存的网页几乎同名的文件夹,点进去,里面就有你要的图片。没有??嘿嘿,那就麻烦了,只有用图片编辑软件来截取了。

类别:

在mycust回复关于在英文版XP中显示中文的一个问题

网友问题:

求助: 我是英文WINDOW XP, 无法显示FTP中文目录,

有高手知道什么好办法让我看FTP目录?


我的回复:

1. 首先打开IE,访问一个中文网站,例如“http://www.tom.com”,这时候可能会出现一个窗口,要求安装中文语言包,选择"yes"或者"OK"按钮。做这步的时候你可能需要将一张XP安装盘放入光驱 (需要从光盘里读取中文语言包信息)。

如果没有出现上述窗口,则表明你的电脑上已经有中文语言包了,不用继续执行访问中文网站的操作(例如上面提问的网友就不用执行这步操作),继续下一步。

2. 点start,然后选择"control panel",进入控制面板。

3. (选择"Date, Time, Language, and Regional Options"图标,)然后选择"Regional and Language Options"图标,会打开一个新的窗口,这时选择第三个小面板"Advanced"。这时候你会在这个小面板上看到一个下拉框,有全球各国的名字,在这个下拉框中选择"Chinese (PRC)",然后点"OK"按钮。

4. 这时开始安装中文语言,你可能会碰到一个新的小窗口,选择"Yes"就可以了。

5. 安装完毕后可能还要重新启动电脑一下。

OK了。

[补充说明]:回复于 2005-03-06 11:54:58 (北京时间),有部分改动。

类别:

在mycust回复关于电脑安全的问题:如何应对别人ping你?

网友问题:

[求助]电脑大虾请来看看这个!

本人算是半个(计算)机盲或(电)脑盲,最近装了瑞星的放火墙.经常发现其会阻止外来IP拼(PING)入.想知道这些IP的用户想进来干嘛?他们是HEKER么?刚刚抓了个图,查其地址显示广东江门市的,大虾们能告诉偶么?


我的回复:

瑞星这些东西杀毒不错,可惜都做得很垃圾。尤其是金山毒霸,在我眼里它就是软件中的一个大垃圾,对用户使用来讲很不友好。我只是说这些软件的用户界面、用户使用流程设计得垃圾 (跟技术没多少关系),不容易使用,并没有否定它们的杀毒技术。

要用好杀毒软件,看看有什么“选项”、“工具”之类的菜单或者按钮,点进去一条一条看清楚,自己做好个性化的软件配置。不懂的话点“帮助”。不难的。

好好研究研究软件配置会非常有帮助的。不然你用这些杀毒软件纯粹是活受罪。

别人ping你,是别人在尝试是否能够通过网络从他的电脑上跟你的电脑建立联系。ping是一个极其基本的网络操作。你在网上随时都可能被人ping,就像别人敲你家门一样。但是敲门不等于他有那个水平破门而入,因为你们家的门也不是纸糊的。在我看来,别人ping你是完全没有关系的,(完全)不用担心,因为你的电脑上没什么东西值得他感兴趣的,人家更感兴趣的是服务器,而不是你的个人电脑。相反,当你上网访问网站、接收email和文件的时候倒是要很小心,因为这相当于你自己打开了门,就看人家有没有骗过你的眼睛进门的本领了。

另外,一定要经常点点IE上面“工具”菜单里面的"Windows更新",经常(一个星期一次或者一个月一次)给Windows打打补丁,相当于定期检测你们家的门是不是有螺钉松了的痕迹。


[补充说明]:回复于 2005-03-08 04:10:03 (北京时间)。

类别:

关于GeSHi处理多字节编码时的bug

GeSHi很可能是迄今为止最出色的PHP源代码加亮程序,本站就采用它来共享源代码资源。

非常遗憾的是GeSHi有一个很严重的bug:对于含有多字节编码的字符串的源代码不能正常显示。访客们也可以看到本站共享的源代码相当部分处于乱码状态,因为源代码里面含有中文(在电脑里,中文需要多字节进行编码)。

我知道,这不是一个严重的bug,因为根据我的使用经验来看,PHP在多字节处理方面很棒。我也相信,GeSHi的这个bug也不难解决。只是虽然这个bug已经被提出来好几个月了,但是GeSHi的作者(老外)迄今为止都没有解决这个问题。没什么好奇怪的,谁叫这些老外只使用abcdefg,不使用中文呢。

今天晚上无所事事,夜里的时候终于决定好好看看GeSHi的源代码,调试、跟踪来看看。终于发现原因了:GeSHi使用了一些字符串处理函数,而这些函数只对单字节编码字符串有效,对多字节编码字符串无效。

解决方案似乎也就很显然了:把使用到的substr、strpos、strlen等函数根据具体情况换成mb_substr、mb_strpos、mb_strlen等函数就大体解决问题了。

随后发了份email给GeSHi的作者,相信不久这个bug就能得到妥善的解决的。

类别:

[Lab 03] File Size = Number of Characters + 1?

[Note] This message was posted on Forum 60-256 at Ataraxis (BBS ofComputer Sicence).

This is a discussion about Part 2 in Lab 03.

Many students find that the size of the test file is the number of characters in the test file plus 1, and there is an empty line between the original string and the reversed string in the output file.

Suppose we want to create a test file which contains a string "abc" ONLY, and we do it in three ways: using vi, using echo, and using cat.

1. create the test file "test1.txt" using vi;
2. create the test file "test2.txt" using echo; like this:
echo abc > test2.txt
3. create the test file "test3.txt" using cat;
For more info about how to use cat to create a new file, see this page.

Now use "ls -la test<1-3>.txt" to see the size of the files:

yin6@socr:~/test$ ls -la test<1-3>.txt
-rw-r--r-- 1 yin6 students 4 2005-02-10 23:59 test1.txt
-rw-r--r-- 1 yin6 students 4 2005-02-10 23:59 test2.txt
-rw-r--r-- 1 yin6 students 3 2005-02-10 23:59 test3.txt


We can see that using the first two methods, the test files contain an extra character (at the end of the file). The special character is a backspace character which was appended by the OS.

On some OS,the backspace character will output a new line, like what the new line character does.

That's why the size of the test file is the number of characters in the test file plus 1, and why there is an empty line between the original string and the reversed string in your output file.

类别:

A Trick about Shell Programming and C Programming: Always Add a New Line at the End of Your Code

[Note] This message was posted on Forum 60-256 at Ataraxis (BBS ofComputer Sicence).

Most of us know that we should add a new (empty) line at the end of our C code. In the same way we need to add a new (empty) line in Shell Programming.

In C, if u didn't add a new line, you can't compile your C code. But in Shell programming, generally you can run your shell script correctly, but sometimes ......

Suppose we have a piece of shell script named "test.sh":

#!/bin/csh -f

if ("$1" == "a") then
echo "equal"
else
echo "not equal"
endif
# Here is a new line at the end of the script



when you use commands "./test.sh a" and "./test.sh b" to test the script, both of them work fine.

But if you change the script to:

#!/bin/csh -f

if ("$1" == "a") then
echo "equal"
else
echo "not equal"
endif # No new line at the end of the script



when you use command "./test.sh b", it runs fine. But if you use command "./test.sh a", some problem happens ......

类别:

GMail申请

本来我对GMail的申请算是漠不关心的。但是晚上想起来万一要是deminy这个ID在GMail上被注了,我以后就拿不回来了。要知道Google可是网络巨人,因此我决定一定要把Google网站中deminy这个ID稳稳地拿在手里才行。

起先想通过GMail现有用户邀请的方式得到GMail帐户,于是通过MSN Messenger问了几个朋友,居然他们都没有GMail邀请他人的资格。于是只好打算自力更生了。

随后研究了一下mitbbs.com上贴的一篇文章:“如何获取GMAIL最佳推荐方法[原创啊]”,觉得该文很有指导意义。

首先按照文中所述的第一个方法:去blogger.com灌水碰运气。去了之后,首先要注册一个ID。注册的时候敲入“deminy”做用户名,系统居然提示“该用户名不可用!”,吓了一跳。猜测是否该ID自己曾经在此注册过?好像不记得啊。于是用“deminy”这个ID尝试登陆该网站,用常用的几个密码试了试,居然登陆进去了。进去后查查个人信息,才知道自己去年就在该网站登记过了,只是后来再也没有来过就是了。

一口气在blogger.com灌了14篇水,还是无缘得到Google的GMail使用邀请函,于是准备换种申请方法试试。因为上文所述的第二个方法稍显麻烦,于是打算采用第三种方法:上gmailswap.com通过和他人交易的方式得到帐户。在gmailswap.com首先把“deminy”注册了,然后熟悉一下该网站功能,盘算一下自己有什么合法的东西可以拿来在网上做交易的。电子书和软件肯定不行啦,有风险的。忽然想起来昨日在softicp.com曾经下载浏览过一批很棒的壁纸(不过下载下来看了看就删掉了),拿这个做交易应该会有人要的。于是登陆softicp.com把那批壁纸重新下载下来,挑了三张好的放到网上作为样品,再在gmailswap.com上发了个帖子寻求交易者。结果大概半分钟那个帖子就被浏览了6次,而且有人给我回复要求交易了。于是马上应答交易,几分钟后,“deminy@gmail.com就被我顺利注册下来了。 :D

[补充说明1] 我正式停止提供gmail邀请的服务。想获得gmail邀请的访客,请参见、尝试此文中的方法。2006-03-24 09:33:50

标签:

类别:

回复“请教:ASP中怎么判断一个页面是否第一次打开!”

1. 关于用URL做“页面是否第一次打开”的判断

1.1 如果是用JavaScript来在客户端做这种判断,是很不合适的。因为完全可以被非常轻意的伪造(伪造第一次打开的行为)。

1.2 如果是用ASP在服务器端做判断,可以。但是属于事倍功半。真能做好用URL做好(不是“做到”)“页面是否第一次打开”的判断,还不如用SESSION或者COOKIE做这类判断。因为前者需要使用的技术包含了后者需要使用的技术。

2. SESSION
SESSION是客户端和服务器端信息沟通的桥梁之一。大致来讲主要有2种SESSION信息传递方式。

2.1 将SESSION通过COOKIE来传递。ASP就是这样的。如果客户端禁止了COOKIE,SESSION也会失效的。

2.2 通过HTTP的GET或者POST方式传递。例如在PHP中,GET方式时,将SESSION信息通过URL查询串带入(也就是常见的SESSIONID);POST时,在FORM中增加一INPUT标签来记录SESSION信息。如果脚本语言解释器不支持这样做(例如ASP语言应该就不支持这样),手工脚本编程也可以实现这点,但一定要很小心,否则容易丢失SESSION。相信有免费的ASP代码实现这种SESSION(或者类似信息)传递。

作 者: deminy(deminy) 2004-02-27 02:32:51

http://fe2.gz.163.com/cgi/read?b=ASP&t=117333&i=117333&al=5&n=0&l=40&back=6

标签:

类别:

页面