2

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

4

3 回答 3

10

我想获取 pdf 页面的尺寸。

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

PdfReader pdfReader = new PdfReader(fileName);

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

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

于 2013-09-19T07:31:15.753 回答
1

如何使用这个: -

PdfReader reader = new PdfReader(m);
PdfImportedPage page = writer.GetImportedPage(pdfReader, i);
// size information
page.PageSize.Width;
page.PageSize.Height;
于 2013-09-18T18:50:13.257 回答
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
于 2020-01-29T21:53:45.077 回答