Origami-pdf Origami是一个Ruby框架

前言

因为在分析一个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:其实是不想分析代码了,就来写翻译了,唉~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值