【发布时间】:2010-03-12 16:46:21
【问题描述】:
是否可以使用 ABCPdf 或其他框架从 PDF 中删除或隐藏图层?
【问题讨论】:
标签: pdf pdf-generation abcpdf ocg
是否可以使用 ABCPdf 或其他框架从 PDF 中删除或隐藏图层?
【问题讨论】:
标签: pdf pdf-generation abcpdf ocg
以下 C# 示例显示了如何删除第 1 页的第 2 层:
Doc theDoc = new Doc();
theDoc.Read("source.pdf");
int thePages = theDoc.GetInfoInt(theDoc.Root, "Pages");
int thePage = theDoc.GetInfoInt(thePages, "Page 1");
int theLayer = theDoc.GetInfoInt(thePage, "Content 2");
theDoc.Delete(theLayer);
【讨论】:
或者您可能正在寻找Flatten() 函数?
【讨论】:
ABCpdf 包含一个名为 OCGLayers 的示例项目。该项目向您展示了如何识别和编辑图层中的所有项目。
例如:
Properties props = Properties.FromDoc(_doc, false);
Page page = (Page)_doc.ObjectSoup[_doc.Page];
Reader reader = Reader.FromPage(props, page);
List<OptionalContent.Layer> layers = reader.GetLayers();
foreach (OptionalContent.Layer layer in layers) {
if (layer.Visible == false) {
if (reader == null)
reader = Reader.FromPage(props, page);
Reader.Redact(ref reader, layer);
}
}
UpdateLayers();
UpdatePreview();
【讨论】: