我花了几个小时研究这个问题,但似乎找不到答案。 我已经在我的 wpf .net 应用程序中下载并引用了 itextsharp。 (动词)
我正在做的是需要关闭在默认打开的 Autocad 中创建的现有 .pdf 中的特定层(ocg 对象)。
我已经成功打开并显示了 .pdf 但我似乎无法正确使用 setOCGstate 控件 pdf名称是“random.pdf”
打开 .pdf 后可以看到的图层名称是“选项 1”
我卡住的地方是我知道图层名称存储在 .pdf 中的数组中。我知道我要关闭的层的名称,所以我如何引用该层并使用 setocgstate 将其关闭。
示例代码
将 doc1 调暗为新的 PdfReader("random.pdf")
PdfAction.SetOCGstate(“困惑”,假)
最佳答案
我创建了一个关闭特定图层可见性的示例。参见 ChangeOCG
这个概念真的很简单。您已经有一个 PdfReader
对象,并且您想要对文件应用更改。如文档所述,您创建了一个 PdfStamper
对象。当您想要更改 OCG 层时,您可以使用 getPdfLayers()
方法并按名称选择要更改的层。 (在我的示例中,我要关闭的图层名为“嵌套图层 1”)。您使用 setOn()
方法更改其状态,您就完成了:
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
Map<String, PdfLayer> layers = stamper.getPdfLayers();
PdfLayer layer = layers.get("Nested layer 1");
layer.setOn(false);
stamper.close();
reader.close();
这是 Java 代码。请像阅读伪代码一样阅读它,并根据您选择的语言进行调整。
关于wpf - 使用 itextsharp 设置现有 pdf 的 ocg 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23415419/