c#iText7-通过pdf图像交互并更改大小和dpi

c#iText7-通过pdf图像交互并更改大小和dpi,c#,pdf,itext,C#,Pdf,Itext,我有很多非常大的PDF文件,其中包含巨大的图像(扫描)。 目标是打开PDF,读取所有图像,更改dpi,分辨率并压缩它 如何使用Itex7管理它? 通常情况下,如何遍历PDF格式的所有图像 using (iText.Kernel.Pdf.PdfReader pdfReader = new iText.Kernel.Pdf.PdfReader(inputPdfFile)) { using (iText.Kernel.Pdf.PdfDocument pdfDocument = new iTex

我有很多非常大的PDF文件,其中包含巨大的图像(扫描)。 目标是打开PDF,读取所有图像,更改dpi,分辨率并压缩它

如何使用Itex7管理它? 通常情况下,如何遍历PDF格式的所有图像

using (iText.Kernel.Pdf.PdfReader pdfReader = new iText.Kernel.Pdf.PdfReader(inputPdfFile))
{
    using (iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader))
    {
        //??
        //foreach (var image in pdfDocumentImagesList)
        //{
            //  //image.SetNewDPI()                 
        //}
    }
}

如何浏览所有PDF图像?

如何更改图像的dpi和分辨率?

这不是iText功能的一部分,因为iText是PDF格式的,而不是图像处理库。我建议您使用其他工具处理提取的图像,然后将其放入新文档或替换PDF中的图像。后者并不容易。也许下一个答案会对此有所启发: (其代码为iText7:)

如何压缩图像?


希望这会有用

您好,谢谢您的简短回答,但您的示例是java,Itex7和c#并不完全相同(并非所有方法都实现了),不幸的是,这些示例尚未移植到c#。然而,API是一样的(或者至少应该是一样的)。通常,将meThOdNames与meThOdNames一起使用就足够了。例如,itext很少使用:演示了如何使用PdfReader和NumberOfPages属性,但根本没有实现(PdfReader类中不存在)有大量调用(目前不支持的方法属性)所以我要举个简单的例子:)对不起,我不明白你的意思。不用说,iText7与iText5是不同的。iText7的PdfDocument和PdfReader与iText5不同,但ITEXT7Java和iText7.Net版本之间的API没有区别。从问题的描述中,我得到了您想要一个iText7解决方案的答案。那么问题是什么呢?:)例如,要获得iText7 Java中的页数,可以调用PdfDocument#getNumberOfPages()和iText7.Net-PdfDocument#getNumberOfPages()