我正在创建一个小型应用程序,在其中打开现有的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 == 595
,b == 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/