我花了几个小时研究这个,似乎无法找到答案。 我已经在我的wpf .net应用程序中下载并引用了itextsharp。 (VB)
我正在做的是需要关闭在默认情况下在Autocad中创建的现有.pdf中的特定图层(ocg对象)。
我已成功打开并显示.pdf,但我似乎无法正确使用setOCGstate控件 pdf名称是“random.pdf”
打开.pdf后,我可以看到的图层名称是“选项1”
我被卡住了,我知道图层名称存储在.pdf内的数组中。我知道我想要关闭的图层的名称,所以我如何引用该图层并使用setocgstate将其关闭。
示例代码
dim doc1 as New PdfReader(“random.pdf”)
PdfAction.SetOCGstate(“confused”,False)
答案 0 :(得分:0)
我创建了一个关闭特定图层可见性的示例。见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代码。请阅读它,好像它是伪代码,并使其适应您选择的语言。