PDF之OCProperties

基于文本内容精准移除PDF水印:从原理到Python实战 PDF文档处理中,水印去除是常见的需求。从技术原理看,PDF水印本质上是文档内容流中的特定绘制指令序列,包括文本对象或路径对象。理解PDF的对象模型和内容流结构是实现精准操作的基础。通过编程方式解析和操作这些底层对象,可以避免传统图像处理方法的失真问题,实现高保真、可批量的自动化处理。在Python生态中,pikepdf库提供了直接操作PDF对象模型的能力,结合文本匹配和指令过滤逻辑,能够精准定位并删除特定文本内容的水印对象。这种方法特别适用于处理大量具有统一文字水印的商业文档和技术手册,在文档自动化预处理 阅读详情

  PDF根目录下有个字典OCProperties,这里保存了图层信息,在《PDF的图层处理笔记》里面我已经提到过PDFium的处理渲染的问题,但是PDFium将PDF拆分单页PDF后就会丢失OCProperties的信息。于是就有了今天的笔记。

其中OCProperties包含OCGs(映射集合或称为引用集合)和D(配置字典),在页面中标识OCG属性的映射一般是在页面属性下“/Resources/Properties/...”

 图中的Pr12,Pr104,Pr105实际上是Reference类型(映射),指向的实体类型是字典,Reference类型无法直接和OCProperties产生联系,但是有一个顺序表是一一对应的。所有的包含OC的Reference都是按顺序在OCGs下排列好的。想要知道顺序,完全可以先取得页面OC的顺序,然后在OCGs里面找到对应的字典引用,再通过引用在ON或OFF两个表单上查询。这样可以简单判断Pr12这些实体隐藏与否。

PDF格式分析(三十六)Document Catalog 详细说明 文档对象层次结构的根是 Catalog 字典,通过PDF文件 trailer 中的Root条目进行定位。 该目录包含对定义文档内容,大纲(outline),文章线程(article threads),命名目标(named destinations)和其他属性的其他对象的引用。 此外,它还包含有关如何在屏幕上显示文档的信息,例如是否应自动显示其大纲(outline)和缩略图页面图像(thumbnai... 阅读详情

相关推荐

PDF格式分析(二十三)Action动作

Action动作,除了跳转到文档中的某个页面之外,还可以指定其他类型的动作,例如启动应用程序,播放声音,改变注释的外观状态。 这些动作可以通过鼠标点击来触发,还可以通过其他的触发事件进行触发,如:OpenAction,可以指定在打开文档时应执行Action动作。 下面列出PDF支持的标准的Action类型: GoTo:转到当前文档中的目标位置。 定位操作将视图更改为指定的目标(页面...

steve_cui的博客 3697

源码:基于borb对PDF图片识别后写入PDF的OCG图层(可选内容组)

OCRAsOptionalContentGroup初始化时除了需要tessdata之外,还会默认一个minimal_confidence=0.75最小置信度, 对图片进行识别之后, 会对置信度进行判断。ChunkOfText对象: borb/pdf/canvas/layout/text/chunk_of_text.py。运行成功的话,会生成两个pdf文件,第二个output_002.pdf打开之后,图片的文字就是可复制的,主要目的主要是对bord源码进一步跟进,了解其图层绘制流程。

zoeou的博客 765

全面功能PDF文件编辑器的设计与实现

本文还有配套的精品资源,点击获取 简介:PDF文件编辑器是一种允许用户直接编辑PDF内容的专业工具,它解决了传统PDF文件不易修改的问题。编辑器支持文本添加、文字删除、字体修改、大小调整、图片插入、文本高亮或注释等操作,并可能包含页面管理功能,如插入、删除、旋转和页面重新排列。此外,该编辑器还提供表格编辑功能,适合处理报告和合同文档。安装文件、使用说明和版本信息的文件也是其...

weixin_35761094的博客 648

PDF的图层处理笔记

近期使用PDFium做了一下关于PDF的渲染,提取文本,提取图片等测试。 其中图片貌似能完整提取出来,如果用FPDFImageObj_GetRenderedBitmap返回NULL,可以考虑再用FPDFImageObj_GetBitmap补刀,从文档上看FPDFImageObj_GetBitmap得到的位图可能还要对矩阵信息处理。其中测试到一个PDF,在PDF阅读器上完全看不到,但是却能导出来图片,于是找啊找,发现mark是对象类型为“OCG”的建议隐藏(在PDFium读出来是“OC”,我在M...

随风动,心飞翔 2208

基于Godot 4的战术RPG开发:模块化架构与核心系统实现

在游戏开发领域,模块化架构和回合制战斗系统是构建复杂策略游戏的基础。模块化设计通过关注点分离,将游戏逻辑分解为独立、可复用的组件,如数据模型、功能模块和场景,从而提升代码的可维护性和扩展性。回合制战斗系统则依赖于清晰的状态机循环,管理从单位选择、行动决策到伤害结算的完整流程,这是策略游戏体验的核心。这些技术为独立开发者提供了高效起点,能快速验证游戏原型。本文聚焦于一个专为Godot 4引擎设计的开源战术RPG模板,它正是运用了模块化架构和回合制状态机,实现了网格移动、相机控制和基础AI等核心功能。该模板通过

weixin_27021789的博客 615

嘉立创封装图下载后必做的3步优化(附批量删除机械层技巧)

本文针对从嘉立创下载的封装图,系统讲解了三步核心优化流程,以解决其直接使用时的常见问题。重点介绍了如何高效批量删除冗余的机械层,避免制造错误;并详细说明了规范丝印层间距、统一焊盘命名等关键步骤,帮助工程师将第三方封装转化为可靠、合规的设计资源,从而提升PCB设计效率与文件质量。

weixin_29227585的博客 433

终于明白了PDF图层的概念

pdf, 两层, 图层

qiandayong的专栏 5727

物理与工程中的‘黑话’:Kronecker delta和Levi-Civita符号到底简化了什么?

本文深入解析了物理与工程中常用的Kronecker delta和Levi-Civita符号的简化作用。通过对比传统表示与张量表示,展示了这些符号在向量运算、矩阵迹计算及流体力学模拟中的高效应用,显著提升计算效率和代码可读性。特别适合理论物理和工程数学领域的学习者与从业者。

weixin_27215403的博客 397

PDF Layers合并图层部分双层丢失

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33894640的博客 602

关于并网继电器的继电器自检逻辑及实现方式

对于常规的光伏并网逆变器来说,继电器控制至关重要。继电器一般位于逆变电感后,共模电感前,用于将逆变电压与电网电压脱开,一般国外有双继电器的安规强制认证要求,国内目前只需要单继电器要求(后续应该会有双继电器要求,个人感觉)

weixin_29982209的博客 2613

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py和Pandas库,详细演示了如何高效读取HDF5格式文件、理解数据结构、提取关键特征(如传感器数据与剩余使用寿命RUL),并整合为可用于预测性维护分析的DataFrame,帮助研究者和工程师快速上手这一重要的工业时序数据集。

weixin_29083373的博客 278

基于 PDFBox 的 PDF 水印管理:使用 OCG 层实现精准添加与一键去除

在企业级应用开发中,给 PDF 文件添加水印是常见的需求。然而,传统的加水印方式(直接在内容流中绘制文本)往往面临一个痛点:添加容易,去除难。由于 PDF 是指令式绘图,普通文本水印会与正文混杂,导致后期无法精准剔除。本文将介绍一种利用 OCG (Optional Content Groups,可选内容组) 的方案。通过将水印放置在独立的“层”中,我们可以像使用 Photoshop 的图层一样,轻松实现水印的添加、隐藏与管理。

qq_38854558的博客 290

基于STM32的智能快递柜设计(全部资料)

本文设计了一种基于STM32F407ZGT6的智能快递柜系统,通过模块化硬件设计和软件算法优化,实现了24小时无人值守、温湿度智能调控、远程监控等功能。系统集成OLED显示、GSM通信、舵机控制、超声波检测等模块,存取响应时间≤3秒,识别准确率达99.2%,较传统模式效率提升60%。测试表明系统运行稳定,用户满意度达92%,具有成本低、安全性高、可扩展性强等特点,为智慧物流末端配送提供了创新解决方案。未来可引入AI算法、太阳能供电等功能进一步优化系统性能。

3254968421的博客 585

OC 类中的属性与成员变量的理解

在iOS开发中,对与类的属性和成员变量的理解如下:  1.  属性是供其他类进行调用的,而成员变量仅仅在本类和继承该类的子类中使用。简单言之就是:属性时对外的,成员变量是内部的。  2. 声明一个属性,Xcode 可以默认自动生成一个与之对应的成员变量进行关联。 3. 属性是增加了成员变量的set和get方法。 4. 成员变量的调用可以是这样的 self->***  或直接*** , 属性

u014231427的专栏 1344

如何在 R 中使用 Gamma 分布(附示例)

在统计学中,伽马分布通常用于模拟与等待时间相关的概率。我们可以使用以下函数来处理 R 中的 gamma 分布:dgamma(x, shape, rate) – 找到具有特定形状和速率参数的 gamma 分布的密度函数值。 pgamma(q, shape, rate) – 找到具有特定形状和速率参数的伽马分布的累积密度函数值。 qgamma(p, shape, rate) – 找到具有特定形状和速率参数的 gamma 分布的逆累积密度函数值。 rgamma(n, shape, rate) – 生成 n 个随机

Mrrunsen的博客 4415

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(二)校园网接入层交换机配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 1219

OC基础-@property,@synthesize和@dynamic 16

@property     1). 作用: 自动生成getter、setter方法的声明.     因为是生成方法的声明,所以应该写在@interface类的声明之中.     2). 语法:     @property 数据类型 名称;     @property int age;     3). 原理:

liuyinghui523的专栏 548

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

iOS runtime探究(三): 从runtime开始理解OC的属性property

你要知道的runtime都在这里转载请注明出处 http://www.jianshu.com/p/0623addb6b74本文主要讲解runtime相关知识,从原理到实践,由于包含内容过多分为以下五篇文章详细讲解,可自行选择需要了解的方向: 从runtime开始: 理解面向对象的类到面向过程的结构体 从runtime开始: 深入理解OC消息转发机制 从runtime开始: 理解OC的属性proper

什么都不会的小菜鸟 3051

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java修改properties文件

[java] view plaincopy package com.bohui.ipview.common;   import java.io.File;   import java.io.FileInputStream;   import java.io.FileNotFoundException;   import java.io.FileOutputSt

OC筆記 913

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OC运行时获取对象的所有属性、所有方法

一、创建NSObject的Category文件。引入runtime头文件。 Runtime各种方法属性参见:http://blog.youkuaiyun.com/sharktoping/article/details/59486347 #import <objc/runtime.h> 获取对象的所有属性 + (NSArray *)getAllProperties{ ...

Holothurian 5366

pdf.js 不显示中文解决方案(iis发布网站不支持 properties文件)

我使用该插件,浏览时候不显示中文,只需要设置下 iis 服务器的MIME即可。 如图所示:

HKP1992的博客 2661

java pdf设置页面大小,使用iText pdfHTML的PDF页面大小和格式

I am trying to export 3 HTML pages (all with same content) into a PDF using iText7.1.0 and pdfHTML2.0.0 using this example. For some reason, the pages have formatting issue at the footer. The jsFiddle...

weixin_39985365的博客 2015

oc渲染器中文手册_OC最全中文材质库来了,学习C4D必备

如今,C4D越来越火爆,除了影视包装行业必须掌握之外,只要你去招聘网站随便浏览一下,就能看到电商设计、平面设计、工业设计等岗位技能要求里就有要求会C4D。C4D被业界誉为“新一代的三维动画制作软件”,功能异常强大,操作却极为简易。能和各类软件结合,特别是AE软件无缝结合,还能和Redshift、OCtane等渲染器完美兼容。Octane渲染器简称:OC渲染器,不仅快速,而且完全交互,简单快捷。相比...

weixin_31876475的博客 3965
上一篇: 微博分享iOS实现
下一篇: 关于PDF加密的算法【PDFium笔记】
狼风123
博客等级 码龄19年 1058粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值