前言

因为在分析一个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.first33 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].parent24 0 obj<<%/Count 2/Kids [ 33 0 R 1 0 R ]/Type /Pages>>endobj>>> page.Parent24 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.shelljs> this[object Doc]js> console.println('foo')fooniljs> this.numPages2

自定义脚本

Origami是一个Ruby框架,你也能编写自己的Ruby脚本,是适合的地方使用Origami脚本。这能用于执行特别的操作,在一堆文档中。
Origami已经完成了一些通常有用的脚本:

  • pdfencrypt/pdfdecrypt (加密和解密一个脚本)
  • pdfdecompress (去掉一些压缩层)
  • pdfmetadata (打印文档元数据)
  • pdfextract (从一个文档提取不同的对象)
  • pdfcop (自动分析引擎)
  • 一些混杂的脚本(pdf2ruby, pdf2graph, pdf2pdfa, ...)

你可以看看Origami的samples目录,找到的一些基本的脚本示例。

PS:其实是不想分析代码了,就来写翻译了,唉~~~

Origami-pdf Origami是一个Ruby框架相关推荐

  1. springboot入门(一)--快速搭建一个springboot框架

    原文出处 前言 在开始之前先简单介绍一下springboot,springboot作为一个微框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框 ...

  2. 一个iOS 框架介绍:MKNetworkKit

    2019独角兽企业重金招聘Python工程师标准>>> ASIHTTPRequest (作者:BenCopsey) 是一个使用简单,可用于各种从简单到复杂的 HTTP 请求,或者可用 ...

  3. AngularJS介绍 - 下一个大框架

    AngularJS AngularJS是web应用的下一个巨头. AngularJS如果为创建web应用而设计,那它就是HTML的套路了.具有数据绑定, MVW, MVVM, MVC, 依赖注入的声明 ...

  4. python 静态文件以及一个项目框架

    在网上浏览网页,由于现在网速也快了,大概你很少注意网页中那些所谓的静态文件.怎么找出来静态文件呢? 查看一个网页: 上图中,查看其源码,打开<head>,发现里面有不少<script ...

  5. 如何搭建一个Spring框架超详细

    如何搭建一个Spring框架,首先我们要先了解Spring的核心构成部分 1.Spring 的构成 IOC 控制反转 spring 框架最核心的部分 DAO spring 对 访问数据库的支持 MVC ...

  6. 【quickhybrid】架构一个Hybrid框架

    前言 虽然说本系列中架构篇是第一章,但实际过程中是在慢慢演化的第二版中才有这个概念, 经过不断的迭代,演化才逐步稳定 明确目标 首先明确需要做成一个什么样的框架? 大致就是: 一套API规范(统一An ...

  7. 框架有几层_如何设计一个自动化框架

    对于如何设计一个自动化框架之前,首先得清楚什么是自动框架,设计时有哪些是需要注意的,然后该怎么去做? 什么是自动化测试框架? 1.什么是框架? 特指为解决一个开放性问题而设计的具有一定约束性的支撑结构 ...

  8. 怎样从0开始搭建一个测试框架_0

    怎样从0开始搭建一个测试框架_0 在开始之前,请让我先声明几点: 这个"从0开始"并不是说你不需要任何基础知识,而是指框架从无到有的过程,要开始搭建还是需要一定基础 请确保你已经掌 ...

  9. ai中如何插入签名_如何在PDF中插入一个或多个空白页?

    在编辑或修改PDF文档时,一般都需要新增空白页后再添加文本或图片等内容,那么如何在PDF中插入一个或多个空白页呢? 首先打开极速PDF编辑器,或打开需要编辑的PDF文档后,点击右上角"文档& ...

最新文章

  1. linux禁止路由器,FCC 新规可能禁止在 WiFi 路由器安装 OpenWRT
  2. linux c 内核 ISO C90 forbids mixed declarations and code 警告
  3. kafka集群安全化之启用kerberos与acl
  4. json vs obj
  5. 怎么分辨学校计算机sql版本,怎么筛选出每个年级每个学校有多少个班级
  6. Java 查找链表中的元素
  7. Spring自学日志04(java的方式配置Spring)
  8. C语言中指针的基类型,c – 将指针从一种基类型转换为另一种基类型
  9. 基于JAVA社团管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  10. 【信息系统项目管理师】信息系统项目管理师计算题汇总
  11. 牛客练习赛53.老瞎眼 pk 小鲜肉(线段树思维)
  12. 游戏一、脑洞大开3(密文破译)
  13. armadillo matlab,科学网—C++下媲美MATLAB矩阵运算的Armadillo 库 - 吴泓润的博文
  14. 关于武汉蔡甸•九真山第三届登山节活动临时暂停致歉全体参赛及相关工作人员的一封信!
  15. 删除服务 MySQL mysql删除服务 无法删除服务
  16. Feign的远程调用nacos配置中心
  17. 自助云打印服务,路边打字复印店的终结者?V印产品体验
  18. 校园网无法拨号的一些解决方案
  19. Acwing第 58 场周赛【完结】
  20. 计算机相关制度体系,计算机实验室管理制度范本

热门文章

  1. 关于项目需要—工控机及基于UC3846的开关电源设计
  2. 将XPS转换成PDF的免费方法
  3. 稀疏矩阵csc_matrix函数的使用理解
  4. 每日三省吾身——打分
  5. Google出新闻站了
  6. RTCP、一次装夹、双转台……这是一份五轴应用说明书
  7. 在“互联网+”时代下,专为餐饮行业量身打造的智能管理系统!
  8. matlab 色温图,一张图看懂“色温”的通用范围标准!摄影白平衡其实就这么简单...
  9. 计算机物流管理,大学饮食管理计算机物流管理程序作用
  10. 华为云——AI人脸编辑让Lena微笑