如何获取PDF页面尺寸

问题描述 投票:1回答:3

我有一个现有的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页面的尺寸。我需要尺寸,因此我可以创建一个包含此信息的包装器类。然后,该类可以确定矩形是否超出范围。

c# pdf itextsharp
3个回答
8
投票

我想获取pdf页面的尺寸。

PdfReader类提供了检索方法:

PdfReader pdfReader = new PdfReader(fileName);

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

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


1
投票

如何使用它:-

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

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
© www.soinside.com 2019 - 2024. All rights reserved.