首页 > 解决方案 > 如何使用pdfbox获取pdf中选定文本的字体信息

问题描述

我有 pdf 中所选文本的坐标。我正在使用 PDFTextStripperByArea 添加和提取区域以获取文本信息。

但我想获取所选文本的字体信息。当我使用 PDFTextStripperByArea 类的 getResources() 方法时,它返回 null。这是示例代码-

    PDFTextStripperByArea stripper = new PDFTextStripperByArea();
    stripper.setSortByPosition(true);
    Rectangle2D rect = new Rectangle(96, 150, 101, 11);
    stripper.addRegion("selectedText", rect);
    PDPage firstPage = document.getPage(0);
    stripper.extractRegions(firstPage);
    System.out.println(stripper.getTextForRegion("selectedText"));
    PDResources resources = stripper.getResources();
    // gives a null pointer exception for resources object in the below line
    for (COSName fontName : resources.getFontNames())
    {
        PDFont font = resources.getFont(fontName);

        System.out.println(font.getFontDescriptor().getFontName());
        System.out.println(font.getFontDescriptor().getFontFamily());
        System.out.println(font.getFontDescriptor().getFontWeight());
        System.out.println(font.getName());
        System.out.println(font.getSubType());
    }

我做错了什么还是有其他方法可以实现这一目标?

标签: javapdfpdfboxtext-extractionpdf-parsing

解决方案


推荐阅读