C# 如何使用iText7在PDF中隐藏一个部分

C# 如何使用iText7在PDF中隐藏一个部分,c#,itext,C#,Itext,根据条件,我需要隐藏一个部分,下面的部分应该移到上面。因此,在生成PDF时,隐藏部分不应显示为空白。一些说明: 如果使用现有的pdf进行此操作,则不太可能工作。Pdf文档不是所见即所得格式。与其说它们是文本的容器,不如说它们是绘图说明的容器 移动现有文档的节将不起作用,因为: 文档本身不包含关于哪些指令一起组成行、段落和部分的信息 文档使用压缩和字节偏移量,移动或删除其中的一部分意味着您需要重新计算所有字节偏移量 如果你放弃了文本重排的要求,这当然是可能的。iText已经有一个名为pdfSw

根据条件,我需要隐藏一个部分,下面的部分应该移到上面。因此,在生成PDF时,隐藏部分不应显示为空白。

一些说明:

如果使用现有的pdf进行此操作,则不太可能工作。Pdf文档不是所见即所得格式。与其说它们是文本的容器,不如说它们是绘图说明的容器

移动现有文档的节将不起作用,因为:

  • 文档本身不包含关于哪些指令一起组成行、段落和部分的信息
  • 文档使用压缩和字节偏移量,移动或删除其中的一部分意味着您需要重新计算所有字节偏移量
如果你放弃了文本重排的要求,这当然是可能的。iText已经有一个名为pdfSweep的附加组件,它查看所有绘图和渲染操作,并删除与给定矩形相交的操作(或调整它们,例如当路径穿过矩形时)

如果您正在生成pdf,这当然是微不足道的。您可以简单地执行以下操作:

File outputFile = new File(System.getProperty("user.home"),"output.pdf");
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outputFile));
Document layoutDocument = new Document(pdfDocument);

if(some_condition)
{
   layoutDocument.add(new Paragraph("Lorem Ipsum Dolor Sit Amet"));
}
layoutDocument.add(new Paragraph("Never gonna give you up. Never gonna let you down."));

查看

您是否可以提供一些您尝试过的代码,以及您发现的一些具体问题?您的问题是错误的。你不能谈论PDF,因为你的要求违背了PDF规范。您可能正在谈论HTML、.docx、.txt、RTF,。。。