PDF转单层PDF

感谢您的查看和帮助!

1,我的PDF上面有一层文本层,有没有API可以实现把搜索的PDF转成单层图片PDF,保存后的PDF只有图片PDF。
下面的代码可以删除PDF文本层,但是有些特殊的PDF,如非扫描文件(可编辑的PDF),删除文本层会导致PDF文字全部丢失,所以如何把搜索的PDF转成只有图片PDF。

        //https://docs.aspose.com/pdf/net/replace-text-in-pdf/
        // 打开文档
        Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(filename);

        //循环遍历所有 pdf 文档页
        for (int i = 1; i <= pdfDocument.Pages.Count; i++)
        {
            Aspose.Pdf.Page page = pdfDocument.Pages[i];
            Aspose.Pdf.OperatorSelector operatorSelector = new Aspose.Pdf.OperatorSelector(new Aspose.Pdf.Operators.TextShowOperator());
            //选择页面上的所有文本
            page.Contents.Accept(operatorSelector);
            //删除所有文本
            page.Contents.Delete(operatorSelector.Selected);
        }


        //获得新的文件存放位置
        string newpathfilename = Path.Combine(pdfdeletetextlayer, Path.GetFileName(filename));

        pdfDocument.Save(newpathfilename, Aspose.Pdf.SaveFormat.Pdf);

@fhn123456

您能否在这里分享您输入的 PDF 和预期输出以供我们参考? 然后,我们将为您提供更多相关信息。

感谢您的回复和帮助!

输入的是有文本层的PDF
input.pdf (891.8 KB)
输出的是只有图片的PDF
out.pdf (755.5 KB)

@fhn123456

您可以使用以下代码示例从 PDF 中删除文本。 希望这对你有帮助。

Document pdfDocument = new Document(MyDir + @"input.pdf");

foreach (var page in pdfDocument.Pages)
{
    TextFragmentAbsorber absorber = new TextFragmentAbsorber();
    absorber.Visit(page);
    absorber.RemoveAllText(page);
}
pdfDocument.Save(MyDir + "output.pdf");

您好,感谢您的回复和解答!

@fhn123456

如果您对 Aspose.PDF 有任何疑问,请随时提出,我们将很乐意为您提供帮助。