pdf2swf 转换时报This file is too complex to render- SWF only supports 65536 shapes at once

2012-12-12 foooy linux

pdf2swf 转换时报:

ERROR   ID Table overflow
ERROR   This file is too complex to render- SWF only supports 65536 shapes at once

是因为需要转换的那个文件太复杂,该软件只能支持65536shapes 的文件转换。
后台的处理命令为:
 pdf2swf 1.pdf -o 1.swf -f -T 9 
解决方法:
 pdf2swf 1.pdf -o 1.swf -f -T 9 -G -s poly2bitmap    只对文件中的图形转成点阵
 pdf2swf 1.pdf -o 1.swf -f -T 9 -G -s bitmap    对everything 转成点阵
pdf2swf 1.pdf -o 1.swf -f -T 9 -G -s enablezlib  bitmap    对everything 转成点阵,并通过enablezlib压缩
处理这个问题可以按上面的方法,在转换时加入参数-s poly2bitmap 或者其他的来将文件中的图形转成点阵,这个是由于文件大太或者文件图形过多而引起的异常,所以建议在转换的过程时加入了文件的大小的判断,当文件过大时,就加入这个参数,不然就直接转,不加入这个参数时,转换的速度快一点。

标签: pdf2swf

评论(0) 浏览(166986)

北大计算所词性标注集简表

2012-10-9 foooy other

    代码    名称        帮助记忆的诠释

    Ag      形语素      形容词性语素。形容词代码为a,语素代码g前面置以A。

    a       形容词      取英语形容词adjective的第1个字母。

    ad      副形词      直接作状语的形容词。形容词代码a和副词代码d并在一起。

    an      名形词      具有名词功能的形容词。形容词代码a和名词代码n并在一起。

    b       区别词      取汉字“别”的声母。

    c       连词        取英语连词conjunction的第1个字母。

    Dg      副语素      副词性语素。副词代码为d,语素代码g前面置以D。

    d       副词        取adverb的第2个字母,因其第1个字母已用于形容词。

    e       叹词        取英语叹词exclamation的第1个字母。

    f       方位词      取汉字“方” 的声母。

    g       语素        绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。

    h       前接成分    取英语head的第1个字母。

    i       成语        取英语成语idiom的第1个字母。

    j       简称略语    取汉字“简”的声母。

    k       后接成分

    l       习用语      习用语尚未成为成语,有点“临时性”,取“临”的声母。

    m       数词        取英语numeral的第3个字母,n,u已有他用。

    Ng      名语素      名词性语素。名词代码为n,语素代码g前面置以N。

    n       名词        取英语名词noun的第1个字母。

    nr      人名        名词代码n和“人(ren)”的声母并在一起。

    ns      地名        名词代码n和处所词代码s并在一起。

    nt      机构团体    “团”的声母为t,名词代码n和t并在一起。

    nz      其他专名    “专”的声母的第1个字母为z,名词代码n和z并在一起。 

    o       拟声词      取英语拟声词onomatopoeia的第1个字母。

    p       介词        取英语介词prepositional的第1个字母。

    q       量词        取英语quantity的第1个字母。

    r       代词        取英语代词pronoun的第2个字母,因p已用于介词。

    s       处所词      取英语space的第1个字母。

    Tg      时语素      时间词性语素。时间词代码为t,在语素的代码g前面置以T。

    t       时间词      取英语time的第1个字母。

    u       助词        取英语助词auxiliary 的第2个字母,因a已用于形容词。

    Vg      动语素      动词性语素。动词代码为v。在语素的代码g前面置以V。

    v       动词        取英语动词verb的第一个字母。

    vd      副动词      直接作状语的动词。动词和副词的代码并在一起。

    vn      名动词      指具有名词功能的动词。动词和名词的代码并在一起。

    w       标点符号   

    x       非语素字    非语素字只是一个符号,字母x通常用于代表未知数、符号。

    y       语气词      取汉字“语”的声母。

    z       状态词      取汉字“状”的声母的前一个字母。

评论(0) 浏览(49268)

......

2012-10-8 foooy 随笔

    来深圳整整7个月了,不管哪方面收获都不如预期。

    今天看到一个同事说“盼完十一盼过年,人总要有一个盼头”,接下来我要好好想想我的盼头。

    .

    .

    .

    .

    .

    .

    .

    .

    做错了决定,就应该付出代价。

    .    

    .

评论(0) 浏览(36490)

ucenter用户中心头像修改,不使用自带方法,不使用flash

2012-10-4 foooy PHP

     项目中用户中心用的是ucenter,需要直接把开放平台的用户图像保存到本系统,uc自带的uc_avatar方法无法满足需求,通过用SocketSniff对该flash上传图片抓包分析,该flash先把用户选择的图片上传到ucenter根目录的data/tmp目录下,然后返回地址,用户选择区域后,生成三张图片的16进制代码,post给ucenter,就完成了用户的图像保存。知道了原理,程序就好写了。

 

在项目目录中的uc_client文件夹中的client.php增加一个uc_avatar_code函数,作用是返回input
function uc_avatar_code($uid, $type = 'virtual', $returnhtml = 1){
	$uid = intval($uid);
	$uc_input = uc_api_input("uid=$uid");
	$input =str_replace('25', '', $uc_input);
	return $input;
}
项目是用thinkPHP开发,下面是主要代码,其中checkTitle为php判断文件类型中的方法,由于整个过程可能会比较耗时,修改用户图像放到后端消息队列处理,先把用户的在开放平台的用户图像,保存在Public/tmp/文件夹下,名为$uid的文件,没有扩展名,直接下载的,不处理是不知道扩展名的。保存图像只需要请求saveOpenFace方法,加上用户id,即可保存用户图像。
/*
	 * 保存开放平台用户图像到uc
	 * 
	 * @uid : 用户id
	 * */
	public function saveOpenFace(){
		$uid = intval($_GET['id']);
		$path = 'Public/tmp/';
		$local = $path.$uid;		
		$suffix = checkTitle($local);
		$file = $local.'.'.$suffix;
		rename($local,$file);
		import("ORG.Util.Image");
		import("ORG.Net.Snoopy");
		$Image = new Image();
		$Snoopy = new Snoopy();
		$imgB = $path.'b_'.$uid.'.'.$suffix;
		$imgM = $path.'m_'.$uid.'.'.$suffix;
		$imgS = $path.'s_'.$uid.'.'.$suffix;
		$Image->img2thumb($file,$imgB,200,200,1);
		$Image->img2thumb($file,$imgM,120,120,1);
		$Image->img2thumb($file,$imgS,48,48,1);
		$input = uc_avatar_code($uid);		
		$formvars["avatar1"] = $this->imgTo16Code($imgB);
		$formvars["avatar2"] = $this->imgTo16Code($imgM);
		$formvars["avatar3"] = $this->imgTo16Code($imgS);
		$action = C('UC_HOST').'/index.php?m=user&inajax=1&a=rectavatar&appid=1&input='.$input.'&avatartype=virtual';
		$Snoopy->submit($action,$formvars);
		unlink($file);
		unlink($imgB);
		unlink($imgM);
		unlink($imgS);
		echo true;	
	}
	/*
	 * 把图片转换成16进制
	 * @file : 文件路径
	 * */
	public function imgTo16Code($filename){
		$file = file_get_contents($filename);
		$code = strtoupper(bin2hex($file));
		return $code;
	}

 PS:由于用的消息队列,后端是程序提交,POST提交用的Snoopy,伪造HTTP_USER_AGENT老是不成功,而无法提交,暂时把验证注释了,有时间在看看,注释的文件为ucenter/model/base.php84行即//exit('Access denied for agent changed');

标签: ucenter用户头像 消息队列

评论(2) 浏览(36375)

服务器返回状态码明细

2012-9-15 foooy Nginx

HTTP 400 – 请求无效
HTTP 401.1 – 未授权:登录失败
HTTP 401.2 – 未授权:服务器配置问题导致登录失败
HTTP 401.3 – ACL 禁止访问资源
HTTP 401.4 – 未授权:授权被筛选器拒绝
HTTP 401.5 – 未授权:ISAPI 或 CGI 授权失败
HTTP 403 – 禁止访问
HTTP 403 – 对 Internet 服务管理器 (HTML) 的访问仅限于 Localhost
HTTP 403.1 禁止访问:禁止可执行访问
HTTP 403.2 – 禁止访问:禁止读访问
HTTP 403.3 – 禁止访问:禁止写访问
HTTP 403.4 – 禁止访问:要求 SSL
HTTP 403.5 – 禁止访问:要求 SSL 128
HTTP 403.6 – 禁止访问:IP 地址被拒绝
HTTP 403.7 – 禁止访问:要求客户证书
HTTP 403.8 – 禁止访问:禁止站点访问
HTTP 403.9 – 禁止访问:连接的用户过多
HTTP 403.10 – 禁止访问:配置无效
HTTP 403.11 – 禁止访问:密码更改
HTTP 403.12 – 禁止访问:映射器拒绝访问
HTTP 403.13 – 禁止访问:客户证书已被吊销
HTTP 403.15 – 禁止访问:客户访问许可过多
HTTP 403.16 – 禁止访问:客户证书不可信或者无效
HTTP 403.17 – 禁止访问:客户证书已经到期或者尚未生效
HTTP 404.1 – 无法找到 Web 站点
HTTP 404 – 无法找到文件
HTTP 405 – 资源被禁止
HTTP 406 – 无法接受
HTTP 407 – 要求代理身份验证
HTTP 410 – 永远不可用
HTTP 412 – 先决条件失败
HTTP 414 – 请求 – URI 太长
HTTP 500 – 内部服务器错误
HTTP 500.100 – 内部服务器错误 – ASP 错误
HTTP 500-11 服务器关闭
HTTP 500-12 应用程序重新启动
HTTP 500-13 – 服务器太忙
HTTP 500-14 – 应用程序无效
HTTP 500-15 – 不允许请求 global.asa
Error 501 – 未实现
HTTP 502 – 网关错误

标签: 服务器 返回状态码

评论(0) 浏览(32839)

js判断IE浏览器

2012-8-24 foooy javascript

<script language="javascript">
if(window.ActiveXObject)
    alert("is IE")
else
    alert("not's IE")
</script>

评论(0) 浏览(30469)

php中对象@输出

2012-8-15 foooy PHP

$dataArr为下面内容

object(SimpleXMLElement)#11 (5) {
  ["id"] => string(37) "http://api.douban.com/people/54819991"
  ["title"] => string(5) "foooy"
  ["link"] => array(3) {
    [0] => object(SimpleXMLElement)#12 (1) {
      ["@attributes"] => array(2) {
        ["href"] => string(37) "http://api.douban.com/people/54819991"
        ["rel"] => string(4) "self"
      }
    }
    [1] => object(SimpleXMLElement)#13 (1) {
      ["@attributes"] => array(2) {
        ["href"] => string(38) "http://www.douban.com/people/54819991/"
        ["rel"] => string(9) "alternate"
      }
    }
    [2] => object(SimpleXMLElement)#14 (1) {
      ["@attributes"] => array(2) {
        ["href"] => string(43) "http://img3.douban.com/icon/u54819991-2.jpg"
        ["rel"] => string(4) "icon"
      }
    }
  }
  ["content"] => string(6) "我艹"
  ["uri"] => string(37) "http://api.douban.com/people/54819991"
}

 

 得到第一个href

echo $dataArr->link[0]->attributes()->href

评论(0) 浏览(51981)

centos下Samba配置 解决没有权限问题

2012-7-29 foooy linux

1、安装samba(CentOS Linux):
yum install samba system-config-samba samba-client samba-common
2、创建www账号 
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data/
chown -R www:www /data/
chmod 777 /data/
cat /etc/passwd | mksmbpasswd.sh> /etc/samba/smbpasswd
3、创建samba配置文件
mv -f /etc/samba/smb.conf /etc/samba/smb.conf.bak
vim /etc/samba/smb.conf
输入以下内容:
[global]
server string = Samba Server
security = user  //如果需要匿名访问这个修改成share,下文的net目录就可以匿名访问
encrypt passwords = yes 
smb passwd file = /etc/samba/smbpasswd
[net]
public = yes
path = /data/net
[web]
workgroup = www
netbios name = www
path = /data/ 
browseable = yes
writeable = yes

4、为samba用户www设立一个密码:

smbpasswd -a www

 

5、启动samba:

/sbin/service smb start


6添加到系统启动

vim /etc/rc.d/rc.local

末行加入

/etc/init.d/smb restart

7、在iptables中139端口,或者关闭iptables, /sbin/service iptables stop

 

8、在我的电脑上右键--映射网络驱动器,输入samba服务器的ip,输入www用户名和设置的密码,即可进入,如果提示没有权限可能是selinux问题,处理方法见  关闭SELinux的两种方法

 

断开共享连接cmd命令

net use * /del

评论(0) 浏览(265528)

nginx上传模块nginx_upload_module使用

2012-7-27 foooy Nginx

以下在nginx1.2.7上测试通过

1、安装模块

cd /data/software
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.tar.gz
或者在https://github.com/vkholodkov/nginx-upload-module/tree/2.2下载
tar zxvf nginx_upload_module-2.0.12.tar.gz
进入nginx源码目录 
./configure --with-http_stub_status_module \ --add-module=/data/software/nginx_upload_module-2.0.12
make#新增模块,不用make install
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/nginx

2、修改配置文件,在server中增加一下内容

        location /upload {
            upload_pass   /info.php;#上传完成后端接受处理文件
            upload_store /data/uptmp;#上传文件夹
            upload_limit_rate 1024k;# 限制上传速度
            upload_set_form_field "${upload_field_name}_name" $upload_file_name;#文件名称
            upload_set_form_field "${upload_field_name}_content_type" $upload_content_type;#文件类型
            upload_set_form_field "${upload_field_name}_path" $upload_tmp_path;#上传到的路径
            upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;#md5
            upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;#文件大小
            upload_pass_form_field "^submit$|^description$";
            #如果希望把所有的表单字段都传给后端可以用upload_pass_form_field "^.*$";
        }

 

3、前端代码

up.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题文档</title>
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="upload" method="POST" enctype="multipart/form-data" action="/upload"><!--提交到上面的/upload-->
<input type="file" name="file"><br>
<input type="submit" name="submit" value="Upload">
</form>
</body>
</html>
info.php
<?php
    header("Content-Type:text/html; charset=utf-8");
    print_r($_POST);

上传会返回如下图数据

点击查看原图

标签: linux centos api

评论(5) 浏览(40756)

php判断文件类型

2012-7-27 foooy PHP

<?php
/**
* 读取文件前几个字节 判断文件类型
*
* @return String
*/
function checkTitle($filename) {
	$file = fopen ( $filename, rb );
	$bin = fread ( $file, 2 ); // 只读2字节
	fclose ( $file );
	$strInfo = @unpack ( c2chars, $bin );
	$typeCode = intval ( $strInfo ['chars1'] . $strInfo ['chars2'] );
	switch ($typeCode) {
		case 7790 :
			$fileType = exe;
			break;
		case 7784 :
			$fileType = midi;
			break;
		case 8297 :
			$fileType = rar;
			break;
		case 255216 :
			$fileType = jpg;
			break;
		case 7173 :
			$fileType = gif;
			break;
		case 6677 :
			$fileType = bmp;
			break;
		case 13780 :
			$fileType = png;
			break;
		default :
			$fileType = unknown . $typeCode;
	}
	// Fix
	if ($strInfo ['chars1'] == - 1 && $strInfo ['chars2'] == - 40) {
		return jpg;
	}
	if ($strInfo ['chars1'] == - 119 && $strInfo ['chars2'] == 80) {
		return png;
	}
	return $fileType;
}
echo checkTitle('err.gif');

评论(0) 浏览(266875)

Powered by emlog 鄂ICP备14000186号-1 sitemap