- 浏览: 19131 次
- 性别:
- 来自: 北京
最新评论
文章列表
在服务器端将pdf解析为json格式发送到前端用js渲染成HTML
效果参见附件文件
主要采用的技术有:
HTML5的transform
HTML5的canvas绘制pdf中的矢量图
将pdf中的内嵌字体转换成Web OpenType字体保证100%的字体渲染效果
数学家罗素曾经这样说过,“数学是这样的一门学问,它既不知道自己说的是什么,也不知道自己说得是否正确”(大意,找不到原文了)。这句话看上去很让人吃惊,毕竟大部分人认为数学是最精确最不会出错的学科。
其实他的话可以这么来理解。
数学的各种命题都会涉及到很多概念,有些概念是用另外的概念定义的。比如“三角形是三个首尾相接的线段组成的图形”,这里三角形是用线段来定义的。那么总会有些概念是无法定义的,这些被成为原子概念。比如几何学里面的“点”、“线”、“面”等。这样这些原子概念数学就不在追究它们究竟是什么,于是“数学就不知道自己说得是什么了”。
数学里面有很多定理,很多定理都 ...
下面以RedHat Fedora Core5(Linux 2.6.15-1.2054_FC5)为基础说说Linux的启动流程。
打开计算机电源后,第一个执行的程序是ROM BIOS,该程序根据设置选择一个引导设备,比如软盘、硬盘、光盘或者USB盘等,然后读入引导设备上的一小段程序(称为BootLoader,常见的有lilo,grub等)。
BootLoader会读入相关的引导选单并执行。一般的引导选单上会指定从哪个设备的哪个分区读入操作系统内核,给操作系统传入哪些命令行参数(cmdline)、初始的RAMDISK(initrd)等等。BootLoader将系统核心以及initrd读入内存并传递好 ...
1.用户层应用程序调用select()
2.核心层调用sys_select() ------> do_select()
最终调用文件描述符fd对应的struct file类型变量的struct file_operations *f_op的poll函数。
poll指向的函数返回当前可否读写的信息。
1)如果当前可读写,返回读写信息。
2)如果当前不可读写,则阻塞进程,并等待驱动程序唤醒,重新调用poll函数,或超时返回。
核心层的相关函数(select.c):
do_select( ... )
{
poll_table *wait;
...
for (;;)
{
set_cu ...
OCX打包成CAB的方法
- 博客分类:
- C/C++
以下假定ggg.ocx依赖于bbb.dll,要打包这两个文件需要一个ggg.inf文件,内容如下
;--------------------------------
[Add.Code]
ggg.ocx=ggg.ocx
bbb.dll=bbb.dll
[bbb.dll]
file-win32-x86=thiscab
FileVersion=
DestDir=11
[ggg.ocx]
file-win32-x86=thiscab
clsid={3B951750-8218-4BAC-87EA-C12FCEAB4B6E}
FileVersion=
DestDir=11
RegisterServer=Y ...
jQuery UI的CSS框架
- 博客分类:
- javascript
jQuery UI的CSS框架设计得非常鲁棒方便用于定制用户界面控件。框架包括很多适合多数用户界面需要的CSS类,这些类能用jQuery UI ThemeRoller来所见即所得地修改。如果你的控件也采用本框架,你的控件就可以和社区的其它大量控件或者代码更容易地集成。
框架类
The following CSS classes are split between ui.core.css and ui.theme.css, depending on whether styles are fixed and structural, or themeable (colors, fonts, bac ...
jQuery的"特别事件"扩展
- 博客分类:
- javascript
特别事件
翻译自http://brandonaaron.net/blog/2009/03/26/special-events
原作者:Brandon Aaron
jQuery自1.2.2版开始引入称为"特别事件"的扩展API。These events are special because they have the ability to do some extra work for specific events and even the option to bypass some of the internal jQuery event system. 有了 ...
自己定义小语言的有力工具
- 博客分类:
- C/C++
C/C++语言可用的工具太多了,我觉得最好用的是 lemon(http://www.hwaci.com/sw/lemon/)和 re2c(http://re2c.org/)
Ruby语法分析可以采用racc, 词法分析没有好的工具,哪天我有空了也许自己写一个呵呵
Javascript也有很多工具,我觉得最好用的是jscc(http://jscc.jmksf.com/),但不支持中文,我简单改了一下就能支持了
有了这些工具支持,可以在一两个小时内写出一个小语言的分析器来
一个功能强大的基于jQuery的grid控件SlickGrid的自定义单元格编辑器对象接口的详细定义:(翻译自http://wiki.github.com/mleibman/SlickGrid/writing-custom-cell-editors)
基本接口
function IEditor(args) {
// 参数args有如下成员:
// container: 待编辑的cell容器
// item: 待编辑的row数据项
// 执行一些代码来初始化UI
this.destroy = funct ...
Google Map以及VirtualEarth等web gis都采用一种特殊的投影坐标系EPSG:900913,其实这个900913并不是EPSG分配的编号,而是设计Google Map的工程师自己选定的一个编号。该投影坐标系一开始不被EPSG组织承认(EPSG认为这个坐标系的参数设定非常不符合地理科学),后来因为使用的人越来越多,不得已承认了,但分配了一个别的编号epsg:3785而不是900913。但是大多数程序员不知道,还一直使用900913,呵呵。
关于epsg:3785投影坐标系的详细参数如下:(参考 http://spatialreference.org/ref/eps ...
下载最新(2010.04)版本的Qt之后,运行QtCreator,打开其examples工程,编译,出现"main.moc: No such file or directory"错误。
在网上找了一下,发现下面这个讨论
http://bugreports.qt.nokia.com/browse/QTCREATORBUG-1889?focusedCommentId=121848&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel
原来是因为Qt发行打包的时候不小心将一 ...
随意改变table的大小
- 博客分类:
- javascript
适用于chrome,firefox和ie8,其它版本未知 定义一个3X3的表格,最中间的那个单元格存放内容,其余的单元格用来做改变大小的手柄
(function($){
$.fn.TableResizer = function(handles) {
if(!handles) handles = "0123456789";
this.each(function() {
var tab = $(this);
$.each(tab.find(">tbody>tr>td"), function(i) ...
自动改变大小的textarea
- 博客分类:
- javascript
基本来自 https://github.com/jaz303/jquery-grab-bag/blob/master/javascripts/jquery.autogrow-textarea.js 略有修改
/*
Auto-growing textareas; technique ripped from Facebook
(Textarea need set style "overflow:hidden" under IE)
*/
(function($) {
function times(string, number) {
for (var i = ...