Origami-pdf Origami是一个Ruby框架
来源:互联网 发布:淘宝凑单什么意思 编辑:程序博客网 时间:2024/05/22 06:23
前言
因为在分析一个ruby脚本,里面用了Origami,只找到英文的资料,就翻译一下,希望能上百度,
原文地址:
http://code.google.com/p/origami-pdf/wiki/GettingStarted
关于Origami
Origami是一个用于操作PDF的Ruby框架。它具有一个PDF解析器,并可以分析,修改,创建恶意的PDF文件。尽管它的用途很多,但是它主要当作安全工具使用。正因为如此,它不关心图形的内容而且不包括PDF渲染器。Origami支持如下的PDF规范:
- 加密,直到Adobe Reader X
- 数字签名
- 表单 (Acrobat and XML)
- JavaScript
- 注释
- Flash
- 文件附件
- 对象流
安装
最近的方法安装最新版的Origami是使用Rubygems:
gem install origami
你也能Mercurial(Mercurial是一种轻量级分布式版本控制系统,采用Python语言实现)复制开发树
hg clone 'https://code.google.com/p/origami-pdf/' origam
可选依赖关系
根据你的需要,可选包可以安装来扩展Origami的功能
获得图形界面的支持:
gem install gtk2
获得JavaScript环境支持:
gem install therubyracer
用法
这里有几种方法来使用Origami:
- 图形界面
- shell界面
- 用Origami API编写自己的脚本
图形界面(PDF Walker)
假如你安装了gtk2,你可以尝试Origami的图形界面。它可以让你快速的浏览文档的内容,而不用修改文档。
你能在上面使用双击跟随一个对象引用,并且用Esc键回去。
启动命令:
$ pdfwalker
命令界面
Origami命令行会启动一个标准Ruby命令行并包含了Origami命令空间。这会方便在一个文档上使用几行代码执行简单的操作。
$ pdfsh>>>
创建一个新的空白文件:
>>> PDF.new.save('blank.pdf')
感染并加密一个存在的文档:
>>> pdf = PDF.read 'foo.pdf' >>> pdf.onDocumentOpen Action::JavaScript[ 'app.alert("Hello!")' ] >>> pdf.encrypt.save 'bar.pdf'
在对象里搜索数据
>>> pdf.grep "/bin/sh"
检查PDF对象
>>> pdf = PDF.read 'sample.pdf' >>> page = pdf.pages.first 33 0 obj <<% /MediaBox [ 0 0 243.78 153.071 ] /Parent 24 0 R /Contents 38 0 R /Resources 34 0 R /CropBox [ 0 0 243.78 153.071 ] /Rotate 0 /Type /Page >> endobj >>> page.xrefs[0] [ 33 0 R 1 0 R ] >>> page.xrefs[0].parent 24 0 obj <<% /Count 2 /Kids [ 33 0 R 1 0 R ] /Type /Pages >> endobj >>> page.Parent 24 0 obj <<% /Count 2 /Kids [ 33 0 R 1 0 R ] /Type /Pages >> endobj >>> pdf[24] 24 0 obj <<% /Count 2 /Kids [ 33 0 R 1 0 R ] /Type /Pages >> endobj
编辑页面行内容(你也许需要打开编辑环境变量):
>>> pdf.pages[2].edit
编辑流:
>>> pdf.Catalog.Metadata.edit
你也能使用JavaScript引擎,加入你添加了支持了:
>>> pdf.Catalog.OpenAction.JS.eval_js >>> pdf.js_engine.shell js> this [object Doc] js> console.println('foo') foo nil js> this.numPages 2
自定义脚本
Origami是一个Ruby框架,你也能编写自己的Ruby脚本,是适合的地方使用Origami脚本。这能用于执行特别的操作,在一堆文档中。
Origami已经完成了一些通常有用的脚本:
- pdfencrypt/pdfdecrypt (加密和解密一个脚本)
- pdfdecompress (去掉一些压缩层)
- pdfmetadata (打印文档元数据)
- pdfextract (从一个文档提取不同的对象)
- pdfcop (自动分析引擎)
- 一些混杂的脚本(pdf2ruby, pdf2graph, pdf2pdfa, ...)
你可以看看Origami的samples目录,找到的一些基本的脚本示例。
PS:其实是不想分析代码了,就来写翻译了,唉~~~
- Origami-pdf Origami是一个Ruby框架
- Origami 用于Quartz 的免费的交互设计框架
- origami is 'xboy' ?
- 65 Origami part 3
- 55 Origami Part 2
- Quartz Composer 和 Origami
- BZOJ1074: [SCOI2007]折纸origami
- 交互神器 Facebook Origami
- Facebook发布Origami Live for iOS,并更新Origami
- Origami五分钟入门秘籍
- Origami五分钟入门秘籍
- 次时代交互原型神器Origami档案
- 动效神器 Origami Studio 汉化
- 新闻聚合阅读应用Facebook Paper的幕后功臣Origami
- 【工具推荐】Facebook正在用的用户界面设计工具:Origami
- iOS 动效设计 Origami五分钟入门秘籍
- iOS 动效设计 Origami动画进阶教程
- Origami Airplanes Folds In 3D:非常给力的3D折纸应用
- EM算法
- 让Mysql在查询时区分大小写?
- c++温习日记 12-8 -引用与指针的区别
- WEB应用中资源文件的读取和常用配置文件
- 64位机器上安装plsql-(第一二种方法:64位windows7 上安装32位oracle 10g)
- Origami-pdf Origami是一个Ruby框架
- hbase建表命令
- 阿里巴巴数据平台火热招聘中
- win7下简单搭建Qt开发环境(不需安装vs)
- C语言关键字
- MFC中int转化cstring
- 视频播放
- 黑马程序员---java高新技术之枚举
- iOS 中的strong和weak关键字