如何获取PDF页面尺寸

时间:2013-09-18 18:46:49

标签: c# pdf itextsharp

我有一个现有的pdf并从pdf中提取文本。这是我已经的代码

using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;

public string ReadPdfFile(string fileName)
{
    StringBuilder text = new StringBuilder();

    if (File.Exists(fileName))
    {
        PdfReader pdfReader = new PdfReader(fileName);

        for (int page = 1; page <= pdfReader.NumberOfPages; page++)
        {
            ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
            string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

            currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
            text.Append(currentText);
        }
        pdfReader.Close();
    }
    return text.ToString();
}

我想获得pdf页面的尺寸。我需要维度,所以我可以创建一个包含此信息的包装类。然后该类可以确定矩形是否超出范围。

3 个答案:

答案 0 :(得分:8)

  

我想获得pdf页面的尺寸。

PdfReader类提供了检索它们的方法:

PdfReader pdfReader = new PdfReader(fileName);

Rectangle mediabox = pdfReader.GetPageSize(pageNr);
Rectangle cropbox = pdfReader.GetCropBox(pageNr);

根据您实际需要的尺寸,使用其中任何一个。

答案 1 :(得分:0)

如何使用它: -

PdfReader reader = new PdfReader(m);
PdfImportedPage page = writer.GetImportedPage(pdfReader, i);
// size information
page.PageSize.Width;
page.PageSize.Height;

答案 2 :(得分:0)

尝试一下:

using iText.Kernel.Pdf;

PdfReader pdfReader = new PdfReader(yourfile);
PdfDocument pdf = new PdfDocument(pdfReader);

var height = pdf.GetPage(1).GetPageSize().GetHeight();
var width = pdf.GetPage(1).GetPageSize().GetWidth();

其中1是要提取尺寸的页面编号。如果要将结果转换为mm,只需执行以下操作:

var widthMM = width*25,4/72