iTextSharp:复制PDF会在生成的PDF中输出隐藏文本

iTextSharp:复制PDF会在生成的PDF中输出隐藏文本,itextsharp,Itextsharp,我们正在使用iTextSharp创建PDF文件页面范围的副本。这工作得很好,但是当复制包含隐藏文本的PDF文件时,该文本无论如何都会输出到复制结果中 这是PDF复制逻辑: using (var reader = new DisposablePdfReader(filePath)) { int pageCount = reader.NumberOfPages; Document doc = null; PdfCopy copy = null; var stream

我们正在使用iTextSharp创建PDF文件页面范围的副本。这工作得很好,但是当复制包含隐藏文本的PDF文件时,该文本无论如何都会输出到复制结果中

这是PDF复制逻辑:

using (var reader = new DisposablePdfReader(filePath))
{
    int pageCount = reader.NumberOfPages;
    Document doc = null;
    PdfCopy copy = null;
    var stream = new MemoryStream();

    doc = new Document();
    copy = new PdfCopy(doc, stream);

    doc.Open();

    foreach (int pageNumber in pages)
        if (pageNumber > 0 && pageNumber <= pageCount)
        {
            copy.AddPage(copy.GetImportedPage(reader, pageNumber));
        }

    return new MemoryStream(stream.ToArray());
}
使用(var reader=newdisposablepdfreader(filePath))
{
int pageCount=reader.NumberOfPages;
单据单据=空;
PdfCopy copy=null;
var stream=newmemoryStream();
doc=新文档();
复制=新的PdfCopy(文档、流);
doc.Open();
foreach(整版页码)

如果(pageNumber>0&&pageNumber猜测:您复制的是页面流,而不是OCG字典?或者文本是通过OCG以外的其他方式隐藏的?或者隐藏是否依赖于某些JavaScript代码的执行?PDF本身的内容不受我们的控制,因此我不知道文本是如何隐藏的。我不相信我们的客户使用JavaSc他们提供给我们的PDF中有cript代码,但我会把它放在我的调查清单上。关于OCG,我已经查阅了API文档,很难找到如何访问或复制这些设置的参考资料。有什么可供我参考的建议吗?非常感谢你的评论!请提供一个样本PDF供检查。我很抱歉很抱歉,我从来没有回来过,因为版权问题,我不可能提供准确的PDF。但是我可以看到iTextSharp输出的PDF根本没有图层,而原来的有很多。