我正在创建一个小型应用程序,在其中打开现有的PDF,然后检查各个页面是否在A4中。如果页面不在A4中,则将其转换为A4。

我现在面临两个问题:


如何检查PDF页面是否在A4中?
在将非A4页面转换为A4的过程中,将忽略A4页面框架之外的文本。因此,这会导致内容损失。


如何解决这两个问题?

最佳答案

使用PdfReader类加载文件。

 PdfReader reader = new PdfReader("path to your file");
 Rectangle rect = reader.GetPageSizeWithRotation(i); // i page number, index starts at 1
 for (int i = 1; i <= reader.NumberOfPages; i++)
 {
      Rectangle rect = reader.GetPageSizeWithRotation(i);
      var a = rect.Width;
      var b = rect.Height;
 }


对于A4,肖像格式变量应为a == 595b == 842。谈论页面尺寸时公差很小。More information.

我有一个这样的方法:

public static bool CheckFirstPageSizeA4Portret(Document doc)
    {

        var a = doc.PageSize.Width;
        var b = doc.PageSize.Height;
        pageFormat format = PageFormat.GetPageFormat(a, b);
        if (format == pageFormat.A4_Portret)
            return true;
        else
            return false;
    }


pageFormat是静态PageFormat类返回的枚举。
PageFormat类很长,但是很简单,在这里发布会很愚蠢,它几乎有500行。
做什么类,它将检查给定的尺寸是否与任何正式的A,B或C页面格式相对应,并返回格式名称。

对于第二个问题,请查看here.那里是Java代码,但我认为您应该明白这一点。

关于c# - 如何检查PDF页面是否为A4,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14331760/

10-13 06:51