问题标签 [ocg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用 pdfbox 从 pdf 中删除可选内容组及其内容?
我已经实现了从 pdf 中删除图层的功能,但问题是,我在图层上绘制的内容没有被删除。这是我用来删除图层的代码:
pdf - 如何在 PDPage 中查找 OC COSName 属于哪个可选内容组?
我已经实现了允许用户使用 PDPageContentStream 类的曲线方法在 pdf 上绘制云形状的功能。而且,我在单独的图层 (OCG) 上绘制每个云。现在我想实现删除这个标记的功能。我正在使用以下代码来获取 PDPage 内容:
对于标记,我首先获得一个 COSName{OC} 令牌,然后获得 BDC 命令。所以,我需要做的就是检测这个OC标签属于哪个层。然后我会知道下面的标记序列属于该层。因此,我可以删除 BDC 和 EMC 之间的所有标记以删除标记。但是我怎么知道,这个 OC 标签属于哪一层呢?
java - iText 7 - 将 PDF 图层 (OCG) 与基础 PDF 合并
是否可以将 PDF (OCG) 的图层与基础 PDF 合并以生成没有图层的 PDF?
我看到可以使用 Adobe Acrobat DC 等应用程序使用“Flatten Layers”选项来完成此操作,但我需要使用 iText7 在我的 Java 应用程序中对此进行编程。
编辑:
@joelgeraci 有一个有用且很好的答案来解决上一个问题,但我最初有一些隐藏层,当从目录中删除 OCProperties 时无论如何都会显示这些隐藏层。
java - 使用 PDFBox 删除未启用的可选内容组
我正在使用来自 java 的 apache PDFBox,并且我有一个包含多个可选内容组的源 PDF。我想要做的是导出仅包含标准内容和启用的可选内容组的 PDF 版本。对我的目的而言,保留原件的任何动态方面很重要......所以文本字段仍然是文本字段,矢量图像仍然是矢量图像等。需要这样做的原因是因为我打算最终使用一个 pdf 表单编辑器程序,它不知道如何处理可选内容,并且会盲目地渲染所有这些内容,所以我想对源 pdf 进行预处理,并在不太混乱的目标 pdf 上使用表单编辑程序。
我一直在试图找到一些可以给我任何关于如何用谷歌做到这一点的提示,但无济于事。我不知道我是否只是使用了错误的搜索词,或者这是否超出了 PDFBox API 的设计目的。我宁愿希望不是后者。此处显示的信息似乎不起作用(将 C# 代码转换为 java),因为尽管我尝试导入具有可选内容的 pdf,但当我检查每个页面上的令牌时似乎没有任何 OC 资源。
我真的很抱歉没有更多的代码来展示我到目前为止所做的尝试,但我已经研究了大约 8 个小时的 java API 文档,试图弄清楚我可能需要做什么,只是无法弄清楚。
我所知道的是将文本、线条和图像添加到新的PDPage,但我不知道如何从给定的源页面中检索该信息以将其复制过来,也不知道如何区分这些信息是哪个可选内容组是(如果有的话)的一部分。我也不确定如何将源 pdf 中的表单字段复制到目标,也不知道如何复制字体信息。
老实说,如果有一个网页我无法通过我尝试的搜索在谷歌上找到,我会非常乐意阅读更多关于它的信息,但我真的很困在这里,我不不认识任何知道这个图书馆的人。
请帮忙。
编辑:尝试我从下面的建议中理解的内容,我编写了一个循环来检查页面上的每个 XObject,如下所示:
但是,在 OC 键之后,tokens
数组中的下一个条目始终是Operator
标记为“BMC”。我在任何地方都找不到任何可以从命名的可选内容组中识别的信息。
python - 通过 OCG(按层)从 PDF 中提取几何元素
所以我在这个问题上花了一个月的大部分时间。我正在寻找一种从由文件的 OCG(可选内容组)组织的矢量化 PDF 中提取几何元素(折线、文本、弧线等)的方法,这些 OCG 基本上是 PDF 图层。使用 PDFminer 我能够提取几何图形(LTCurves、LTTextBoxes、LTLines 等);使用 PyPDF2,我能够查看 PDF 中有多少 OCG,尽管我无法访问与该 OCG 关联的几何图形。我在网上看到并尝试了一些 hacky 脚本,它们可能能够解决这个问题,但无济于事。我什至求助于在文本编辑器中打开原始 PDF 数据,并半危险地删除其中的一部分,看看我是否能想出一些自定义解析技术来做到这一点,但还是无济于事。Adobe的PDF手册充其量是最少的,因此,当我尝试创建解析器时,这无济于事。有谁知道解决这个问题。
在这一点上,我对任何语言的解决方案持开放态度,使用任何操作系统(尽管我更喜欢在 Windows 或 Linux 上使用 Python 3 的解决方案),只要它是开源/免费的。
这里有人能帮助结束这个黑暗的兔子洞吗?非常感激!
python - 将 PDF 与 Python 合并,同时保留 OCG(图层控制)
是否可以在保留 OCG(图层控制)的同时使用 Python 合并 PDF。
我已经进行了测试PyPDF2
,但没有取得太大的成功,并且通过调查,这似乎是不可能的。
有没有人使用“PyPDF2”或其他软件包实现了这一点?
java - itext7 - 如何在保持隐藏的 OCG 隐藏的同时将页面复制为表单 XObject
然后我使用PdfFormXObject pageCopy = sourcePage.CopyAsFormXObject(pdf);
将 pageCopy 插入到新的 PDF 页面中pdfCanvas.AddXObjectFittedIntoRectangle
。正如预期的那样,复制的页面在新 PDF 中可见,但它是如何“隐藏”的 OCG 可见的。
我这样做的原因是能够获取 PDF 页面,对其进行缩放和裁剪,并将其添加到新的 PDF 中,以便与其他内容进行整理。
有没有办法在创建 XObject 之前删除 OCG PDF 内容,或者有没有不同的方法可以在不使用 XObject 路由的情况下实现我的目标,让我保持隐藏 OCG 的“关闭”状态