如何解决iText 7,从文档中提取图层
我正在尝试使用 IText 7 库从 PDF 文件中按名称提取特定图层以创建一个新图层。
主要问题 - 我实现的是一个文档,其中提取的图层可见,其他图层锁定/不可见。我想将它们移除。 Method input and result
第二个问题 - 多页文档代码失败,结果文件只有一页
public string ExtractLayer(string pdfLayerName,string sourceFilePath)
{
// returns empty 0b file with .pdf extension
var layerFile = TmpFilesProvider.GetTemporaryFile.Pdf();
PdfDocument pdfDoc = new PdfDocument(new PdfReader(sourceFilePath),new PdfWriter(layerFile));
List<PdfLayer> layers = pdfDoc.GetCatalog().GetOCProperties(true).GetLayers().ToList();
foreach (var layer in layers)
{
var layerName = (layer.GetPdfObject().Get(PdfName.Name));
if (layerName == null) continue;
if (layerName.ToString() != pdfLayerName)
{
layer.SetOn(false);
layer.SetLocked(true);
}
else
{
RectangleEventHandler handler = new RectangleEventHandler();
pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE,handler);
}
}
pdfDoc.Close();
return layerFile;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。